> For the complete documentation index, see [llms.txt](https://docs-zkevm.cronos.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs-zkevm.cronos.com/for-developers/using-zkcro-veth-and-vusd/yield-rewards.md).

# Yield rewards

vETH and vUSD rewards are distributed through rewarder contracts.

Read on to learn how to claim vETH and vUSD from those contracts.

## Step 1. Query Proof for a given address

Call the rewards claim API under <https://token-rewards-api.zkevm.cronos.org/claim/>\<walletaddress>/\<tokenaddress>.

You need to replace \<walletaddress> with the account address for which you are claiming for, in the URLs listed below:

* For vETH
  * [https://token-rewards-api.zkevm.cronos.org/claim/\<walletaddress>/0x271602a97027ee1dd03b1e6e5db153eb659a80b1](https://token-rewards-api.zkevm.cronos.org/claim/0x79CFC29830DC4cBcF47807b77Bbb5896a900864c/0x271602a97027ee1dd03b1e6e5db153eb659a80b1)&#x20;
* For vUSD:
  * [https://token-rewards-api.zkevm.cronos.org/claim/\<walletaddress>/0x5b91e29ae5a71d9052620acb813d5ac25ec7a4a2](https://token-rewards-api.zkevm.cronos.org/claim/<walletaddress>/0x5b91e29ae5a71d9052620acb813d5ac25ec7a4a2)

Example response:

<figure><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXdfJJVr6cdqc_dVdhJj88rI4vq7EU4nOCrQurC-26FzV98F-yDyGDfFX9mMr3gRta9KdZcuIshz4LP0lLv4UtCXRu3RXXkv4r9DKlVlIex6MCnPSX9bbDu5pF3WhSWKm4c4cJcR73fUYmEqP8p_g2bvDdqD?key=FvR-TTIFj0BRmdHRZkmrfg" alt=""><figcaption></figcaption></figure>

Response explained:

* pending\_amount: The amount of the token in wei that the address has earned, but cannot be claimed yet.
* claimable\_amount: The amount of the token in that the address has earned, is ready to claim and has not been claimed yet
* earliest\_expiration\_time: When the first unclaimed rewards will expire
* next\_claimable\_time: When the pending\_amount will become claimable
* claim: the data needed to claim rewards from the rewarder contract
  * recipient: The address that will receive the rewards, this is the same as the provided wallet address in the URL.
  * total\_earned: the amount that has been tracked in the rewarder contract. The rewarder contract keeps track of the amount that is already claimed.
  * total\_expired: the amount that has already been expired.
  * merkle\_proof: The merkle proof needed to claim rewards

## Step 2. Claim the rewards using the proof

There are 2 rewarder contracts, one for each token:

* vETHRewarder:
  * [0x5F254945A318f7ca93496320767E6b640aB9f730](https://explorer.zkevm.cronos.org/address/0x5f254945a318f7ca93496320767e6b640ab9f730)
* vUSD:
  * [0xfcd9ca1968af3274a5e327dbfa7c80a99a0c0f52](https://explorer.zkevm.cronos.org/address/0xfcd9ca1968af3274a5e327dbfa7c80a99a0c0f52)

Once you have obtained all the necessary claim information from the claim API, use the \<walletaddress> account to call the claim method on the rewarder contract for the given token:

{% code overflow="wrap" lineNumbers="true" %}

```
function claim(address _recipient, uint256 _reward, uint256 _expired, bytes32[] calldata _proof)
```

{% endcode %}

\
Parameters explained:

* \_recipient: Recipient that will receive the rewards, should be the same as returned in the claim object by the claim API
* \_reward: the total\_earned  as returned by the claim API
* \_expired: the total\_expired as returned by the claim API
* \_proof: the merkle\_proof as returned by the claim API

If the call is successful, the unclaimed rewards are transferred from the rewarder contract to the \_recipient.

Make sure that the \_recipient can access the rewards transferred to them.

## Important note for app developers

If your app is designed in such way that rewards are accumulated by a smart contract address, this smart contract can probably not call the claim function.

In that case, please [contact Cronos Labs](https://crofam.me/contact) for assistance.
