# Tokens

## Tokens

There are 4 major tokens in the protocol (visit the [tokenomics](https://docs.syno.finance/documentation/tokenomics-and-rewards/syno-tokenomics) for more details)

* SYNO - the protocol token
* tSYNO - locked SYNO for users who want to convert their NEWO tokens to SYNO tokens
* rCT - rewards claim token - veNEWO holders who converted their NEWO tokens to SYNO tokens, can receive also rCT tokens
* vlSYNO - locked Balancer ETH-SYNO LP tokens

### SYNO

A standard ERC20 token

### vlSYNO

A non-transferable ERC20 token. Earns a portion of the protocol fees (visit [tokenomics](https://docs.syno.finance/documentation/tokenomics-and-rewards/syno-tokenomics) for more details)

`vlSYNO.stake(...)`&#x20;

* Allows users to lock their Balancer ETH-SYNO LP tokens for a certain period of time
* Params
  * `amount`
  * `lockPeriod` - `ONE_MONTH` | `THREE_MONTHS` | `SIX_MONTHS` | `TWELVE_MONTHS`
    * the longer the lockPeriod, the more bonus fees it earns, visit the [tokenomics](https://docs.syno.finance/documentation/tokenomics-and-rewards/syno-tokenomics) for more details

`vlSYNO.requestUnstake(...)`

* Initiates the unstaking process, which involves a 7 days cooldown period. After you request an unstake, you have to wait at least 7 days to be able to unstake your vlSYNO and receive your LP tokens
* Params
  * `index` - the index of the sake to be unstaked. Can be retrieved from the `vlSYNO.Staked` events

`vlSYNO.unstake(...)`

* Finalizes the unstaking process initiated by `vlSYNO.requestUnstake(...)`. Retrieves the LP tokens and returns them to the user.
* Params
  * `index` - the index of the sake to be unstaked. Can be retrieved from the `vlSYNO.Staked` events

`vlSYNO.restake(...)`

* When a vlSYNO stake expires, it no longer earns bonus APY, instead of unstaking it, waiting 7 days cooldown period and then staking it again, a user can immediately restake it.
* Params
  * `index` - the index of the sake to be restaked. Can be retrieved from the `vlSYNO.Staked` events

### TokenConverter

This smart contract allows users to convert their NEWO tokens to tSYNO and rCT tokens.

`TokenConverter.ClaimInput`

The input for `TokenConverter.convertWithProof(...)` function. The input values must match the merkle tree leafs:

* `amount`&#x20;
  * must be lesser or equal to `rCTCap/multiplier`
  * this much NEWO will be converted to tSYNO
* `proof` - merkle tree proof
* `index` - merkle tree index
* `rCTCap`
* `multiplier`

`TokenConverter.convertWithProof(...)`

* This function converts NEWO to tSTYNO and rCT tokens
* This function should called once only. If you want to convert your NEWO in stages, use `TokenConverter.convert(...)` for subsequent conversions
* Should be only called if the user is eligible to rCT token (veNEWO stakers, visit the [tokenomics](https://docs.syno.finance/documentation/tokenomics-and-rewards/syno-tokenomics) for more details)
* It's required to use this function if the user is eligible to rCT tokens
* Params
  * `ethereumClaim` - a proof of rCT eligibility from Ethereum
  * `avalancheClaim` - a proof of rCT eligibility from Avalanche
  * `disclaimerSignature` - a signed disclaimer (`TokenConverter.disclaimer`)

`TokenConverter.convert(...)`

* **If your are eligible to rCT token (veNEWO stakers, visit the** [**tokenomics**](https://docs.syno.finance/documentation/tokenomics-and-rewards/syno-tokenomics) **for more details), call `TokenConverter.convertWithProof(...)` first.**
* This function converts NEWO to tSTYNO and rCT tokens
  * For users who are veNEWO stakes and called `TokenConverter.convertWithProof(...)` first
  * For all the other users
* Params
  * `network`
    * The origin network for the NEWO you want to convert
    * `ITokenConverter.Network`: `ETHEREUM` | `AVALANCHE`
  * `amount`&#x20;
    * this much NEWO will be converted to tSYNO
    * if you are eligible to rCT tokens and called `TokenConverter.convertWithProof(...)` previously, you'll receive rCT tokens as well.
  * `disclaimerSignature` - a signed disclaimer (`TokenConverter.disclaimer`)

### tSYNO

A non-transferable ERC20 token. Earns a portion of the protocol fees (visit [tokenomics](https://docs.syno.finance/documentation/tokenomics-and-rewards/syno-tokenomics) for more details). Can be obtained through NEWO token conversion through `tSYNO.unstake(...)`.&#x20;

`tSYNO.unstake(...)`

* tSYNO tokens will be converted to SYNO tokens when unstaked. If unstaked before the lock period elapses, a penalty is applied. The penalty starts at 90% and decreases linearly to 0% over the lock period. The penalty is transferred to the protocol treasury.
* Unstaking tSYNO tokens will result in permanently burning corresponding rCT tokens.&#x20;
* If you have a suprplus of tSYNO tokens over your vlSYNO allowance, unstaking them will not result in burning rCT tokens (visit the [tokenomics](https://docs.syno.finance/documentation/tokenomics-and-rewards/syno-tokenomics) for more details)
* Params
  * `amount`&#x20;

### rCT

A non-transferable ERC20 token. Earns a portion of treasury yield (visit [tokenomics](https://docs.syno.finance/documentation/tokenomics-and-rewards/syno-tokenomics) for more details). Only staked rCTs earn the yield. You can stake/unstake any time with `rCT.stake()` and `rCT.unstake()`.

### RewardsDistributor

For every asset distributed by the protocol to the users (rewards, emissions, yield) there is a `RewardsDistributor` instance.

`RewardsDistributor.claim(...)`&#x20;

* Allows to claim rewards for multiple epochs
* Params
  * `inputs` - a list of merkle tree proofs (`RewardsDistributor.ClaimInput`) for the distribution claims


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.syno.finance/developer-docs/tokens.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
