Prerequisites
Before you begin, make sure you have:- An Amplify API key — Contact Paxos Labs to get one
- An Ethereum RPC endpoint — From Alchemy, Infura, QuickNode, or any provider
- A wallet with the deposit token (e.g., USDC) and ETH for gas fees
- The ABI snippets — Provided in each guide (no need to compile Solidity). See Concepts for an explanation of ABIs.
Obtaining Contract Addresses
Contract addresses differ by vault and chain. All contract addresses needed for direct integration are available via the Amplify GraphQL API — the same API the SDK uses internally.GraphQL Query
Send a POST request tohttps://api.paxoslabs.com/graphql with your API key:
Pass
variables to filter results. For example, {"chainId": 1} returns
only Ethereum mainnet vaults, and {"yieldType": "CORE"} returns only CORE
strategy vaults.Response
Each item inamplifySdkConfigs contains a vault object with all the contract addresses you need:
Mapping Response Fields to Contract Addresses
| GraphQL Field | Contract | Used For |
|---|---|---|
vault.boringVaultAddress | BoringVault | ERC-20 vault share token — approvals, balances |
vault.communityCodeDepositorModuleId | DistributorCodeDepositor | Deposits — deposit(), depositWithPermit() |
vault.withdrawQueueModuleId | WithdrawQueue | Withdrawals — submitOrder(), cancelOrder() |
vault.accountantModuleId | Accountant | Exchange rate — getRateInQuoteSafe() for slippage/share conversion |
vault.tellerModuleId | Teller | Pause state — isPaused() |
The GraphQL field
communityCodeDepositorModuleId is a legacy name. The contract it points to is the DistributorCodeDepositor. Use this address wherever the documentation refers to the distributorCodeDepositorAddress.Supported Assets
ThesupportedAssets array on each vault tells you which tokens can be deposited or withdrawn:
| Field | Description |
|---|---|
address | ERC-20 token contract address |
chainId | Chain the token is on |
depositable | Whether this token can be deposited |
withdrawable | Whether this token can be used as the want asset on withdrawal |
symbol | Token symbol (e.g., "USDC") |
decimals | Token decimals (e.g., 6 for USDC) |
Filtering by Chain or Yield Type
Passvariables to narrow results:
Available Yield Types
| Value | Description |
|---|---|
CORE | Standard yield strategy |
PRIME | Maps to CORE in the SDK |
TREASURY | Treasury-backed strategy |
TBILL | Maps to TREASURY in the SDK |
FRONTIER | Higher-risk/reward strategy |
LENDING | Maps to FRONTIER in the SDK |
Code Examples
Any language with an Ethereum JSON-RPC library can interact with Amplify contracts. The guides cover the contract methods you need to call — here are popular libraries for each language:- TypeScript
- Python
- Go
- Swift
- Kotlin
- Flutter
Library: viem