getVaultsByConfig() and getSupportedAssets().
GraphQL API (Recommended)
The GraphQL API returns all contract addresses needed for direct integration in a single request. This is the same API the Amplify SDK uses internally.Endpoint
Headers
| Header | Value |
|---|---|
Content-Type | application/json |
x-api-key | Your Amplify API key |
Query
Variables (all optional)
| Variable | Type | Description |
|---|---|---|
chainId | Int | Filter by chain (e.g., 1 for Ethereum, 8453 for Base) |
yieldType | YieldType | Filter by yield type (CORE, TREASURY, FRONTIER, etc.) |
Example Request
Response
Response Types
| Field | Type | Description |
|---|---|---|
id | string | SDK config identifier |
chainId | int | Blockchain network ID |
yieldType | string | Yield strategy (CORE, TREASURY, etc.) |
vault.id | string | Account identifier (use for deduplication) |
vault.name | string | Human-readable account name |
vault.boringVaultAddress | address | BoringVault — ERC-20 share token |
vault.communityCodeDepositorModuleId | address? | DistributorCodeDepositor — deposit entry point |
vault.withdrawQueueModuleId | address? | WithdrawQueue — withdrawal orders |
vault.accountantModuleId | address | Accountant — exchange rate oracle |
vault.tellerModuleId | address | Teller — pause state |
vault.supportedAssets[].address | address | ERC-20 token contract address |
vault.supportedAssets[].depositable | boolean | Whether this token can be deposited |
vault.supportedAssets[].withdrawable | boolean | Whether this token can be used as want asset |
vault.supportedAssets[].symbol | string? | Token symbol (e.g., "USDC") |
vault.supportedAssets[].decimals | int? | Token decimals (e.g., 6) |
Multiple configs can reference the same account (one per deposit token).
Deduplicate by
vault.id — each account has a single set of contract addresses
and a supportedAssets array listing all tokens.Contract Address Mapping
| GraphQL Field | Contract | Used For |
|---|---|---|
vault.boringVaultAddress | BoringVault | Account share token (ERC-20) |
vault.communityCodeDepositorModuleId | DistributorCodeDepositor | deposit(), depositWithPermit() |
vault.withdrawQueueModuleId | WithdrawQueue | submitOrder(), cancelOrder() |
vault.accountantModuleId | Accountant | getRateInQuoteSafe() (exchange rate) |
vault.tellerModuleId | Teller | isPaused() (pause state) |
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.Available Yield Types
| Value | SDK Mapping |
|---|---|
CORE | CORE |
PRIME | CORE |
TREASURY | TREASURY |
TBILL | TREASURY |
FRONTIER | FRONTIER |
LENDING | FRONTIER |
REST API (Simpler Alternative)
If you only need to list account–asset pairs without full contract addresses, you can use the REST endpoint.Endpoint
Query Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
pageSize | int | No | Results per page (default 20, max 100) |
pageToken | string | No | Pagination token from nextPageToken in previous response |
filter | string | No | Filter expression (e.g., chainId=1, withdrawable=true) |
Example Request
Response
Response Types
| Field | Type | Description |
|---|---|---|
vaultAssets[].vaultAddress | address | BoringVault address (share token) |
vaultAssets[].chainId | int | Chain ID |
vaultAssets[].assetAddress | address | ERC-20 token address |
vaultAssets[].depositable | boolean | Whether this token can be deposited |
vaultAssets[].withdrawable | boolean | Whether this token can be used as want asset |
nextPageToken | string? | Token for next page (null if no more pages) |
tokenMetadata | object | Map keyed by chainId:address with token info |
tokenMetadata[].symbol | string | Token symbol |
tokenMetadata[].name | string | Token name |
tokenMetadata[].decimals | string | Token decimals (as string) |
Withdraw-Eligible Assets
Filter bywithdrawable: true in either API:
- GraphQL: Filter
vault.supportedAssetswherewithdrawable == true - REST:
GET /v2/amplify/vaultAssets?filter=withdrawable%3Dtrue&pageSize=100