> For the complete documentation index, see [llms.txt](https://yupana-finance.gitbook.io/yupana-document-portal/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://yupana-finance.gitbook.io/yupana-document-portal/developer-space/ytoken-contract-methods/admin-methods/setup-entrypionts/settokenaction.md).

# setTokenAction

This entrypoint sets [`FA2`(TZIP-12)](https://gitlab.com/tezos/tzip/-/blob/master/proposals/tzip-12/tzip-12.md) functions to storage of contract.

Each function packed to bytes and setted to corresponding index

Indexes of functions:

```pascaligo
transfer              -> 0n
update_operators      -> 1n
getBalance            -> 2n
get_total_supply      -> 3n
```

Lambdas could be found on [git](https://github.com/madfish-solutions/yupana-protocol-core/contracts/partial/yToken/fa2Methods.ligo).

### Usage

{% tabs %}
{% tab title="🌮 Taquito" %}

```typescript
const yupana = await tezos.contract.at(yTokenAddress);
const operation = await yupana.methods.setTokenAction(index, bytes).send();
await operation.confirmation();
```

{% endtab %}

{% tab title="🐍   Pytezos" %}

```python
yupana = ContractInterface.from_michelson(code) # or client.contract(contract_address)...
call = yupana.setTokenAction(index, bytes)
opg = call.inject()
```

{% endtab %}
{% endtabs %}

### Errors

* `yToken/token-lambda-already-set` - lambda with passed index is already set.
* `yToken/you-not-admin` - `sender` is not contract admin.
