# Contracts

## Sherpa **Deployments**

<details>

<summary><strong>SherpaVault / Staked Sherpa USD</strong><br><strong><code>shUSD</code></strong> </summary>

A multi-chain yield vault that issues interest-bearing ERC20 share tokens (shUSD) representing pro-rata ownership of the underlying USDC asset pool. The contract manages round-based deposit/withdrawal cycles with synchronized pricing across all chains, maintaining a critical `accountingSupply` variable that tracks logical share ownership per chain (immune to CCIP bridge fluctuations) to ensure accurate global shUSD price calculations. Primary chain deployments calculate global prices by aggregating state from all chains, while secondary chains apply the propagated price during their cycle rolls.

</details>

* [Ethereum](https://etherscan.io/address/0x96043804D00DCeC238718EEDaD9ac10719778380#code)
* [Base](https://basescan.org/address/0x96043804D00DCeC238718EEDaD9ac10719778380#code)
* [Monad](https://monadvision.com/address/0x96043804D00DCeC238718EEDaD9ac10719778380?tab=Contract\&portfolio=Token)

<details>

<summary><strong>SherpaUSD / USDC Wrapper</strong><br><strong><code>sherpaUSD</code></strong> </summary>

A 1:1 USDC wrapper token that implements epoch-based withdrawal mechanics, providing immediate liquidity for deposits while enforcing a one-epoch delay for withdrawals to ensure the vault has adequate liquidity for operations. The wrapper serves as the intermediary between user USDC deposits and the SherpaVault contract, enabling permissioned minting/burning operations for yield distribution adjustments and cross-chain liquidity rebalancing through operator-controlled `ownerMint()`and `ownerBurn()` functions.

</details>

* [Ethereum](https://etherscan.io/address/0x2E7d6f4ab0f5Ec106CE6985Ca33bd0967412D3e5#code)
* [Base](https://basescan.org/address/0x19F3D065DF4F5296A7b4232C1c88d5994DAa707d#code)
* [Monad](https://monadvision.com/address/0x58fC8a79055519af779308a60A7f1315cAA266Af?tab=Transaction)

<details>

<summary><strong>CCIP Pools</strong></summary>

Chainlink's burn-and-mint token pool contract that enables cross-chain transfers of shUSD by burning tokens on the source chain and minting equivalent amounts on the destination chain, while enforcing rate limits and validating against the Risk Management Network (RMN). Each pool is configured with remote chain mappings via `applyChainUpdates()` and must be registered in the `TokenAdminRegistry` and authorized in the vault's `ccipPools` mapping to execute mint/burn operations. The pool interacts with the CCIP Router's `OnRamp` and `OffRamp` contracts to coordinate token transfers as part of cross-chain messages.

</details>

* [Ethereum](https://etherscan.io/address/0x32b48530f8a2c5CbE79d6b43823bfC9D9584Dbd5#code)
* [Base](https://basescan.org/address/0x498D9AEcF41c440829B7f945224d4ABFDc2544E8#code)
* [Monad](https://monadvision.com/address/0xF9BC71BEDEB6ba90de4cf79f09870d99B0ba2bF0?tab=Contract)

## **Third Party Deployments**

<details>

<summary><strong>CCIP Router</strong></summary>

Chainlink's universal entry point contract for cross-chain messaging that users call via `ccipSend()` to initiate token transfers or arbitrary message passing between supported chains. The Router directs outbound messages to chain-specific `OnRamp` contracts (which handle token pool interactions and emit events for the DON) and receives inbound messages from `OffRamp` contracts (which validate and deliver messages from the DON). While not deployed by Sherpa, the Router is a critical dependency that coordinates the entire CCIP message lifecycle, enabling the vault's burn-and-mint bridging architecture.

</details>

* [Ethereum](https://etherscan.io/address/0x80226fc0Ee2b096224EeAc085Bb9a8cba1146f7D#code)
* [Base](https://basescan.org/address/0x19F3D065DF4F5296A7b4232C1c88d5994DAa707d#code)
* [Monad](https://monadvision.com/address/0x33566fE5976AAa420F3d5C64996641Fc3858CaDB?tab=Contract)


---

# 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.sherpa.trade/sherpaearn-vault/contracts.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.
