Skip to main content
The Amplify SDK wraps several API endpoints and on-chain reads behind convenient functions like getVaultAPY() and getWithdrawalRequests(). When integrating directly, you call these yourself. This section covers every read-only operation the SDK provides, with the raw API calls and contract reads you need.
All API endpoints require an API key passed via the x-api-key header. Contact Paxos Labs to get one. The GraphQL endpoint (POST /graphql) returns account contract addresses needed for integration. See Account Discovery for the full query.

Account Discovery

Discover accounts, contract addresses, and supported assets via the GraphQL API.

Account APY

Fetch the latest annual percentage yield for an account.

Account TVL

Fetch total value locked for an account.

Withdrawal Requests

Query withdrawal order history and status for a user.

Token Balances

Read ERC-20 balances directly from the blockchain.

Allowances

Check ERC-20 approval allowances for deposits and withdrawals.

Exchange Rate

Read the share-to-asset exchange rate from the Accountant contract.

Withdrawal Fees

Calculate withdrawal fees via the FeeModule contract.

Pause State

Check whether account operations are paused before submitting transactions.

SDK-to-Direct Mapping Reference

v1.0.0 SDK callDirect contract / API equivalent
new AmplifyClient({ apiKey })No equivalent needed — configure your HTTP client and contract addresses directly
client.amplify.vaults.list({ filter? })Amplify GraphQL API — see vault-discovery
client.amplify.vaults.listAssets({ filter? })GET /v2/amplify/vaultAssets — filter by depositable: true or withdrawable: true
client.amplify.vaults.getApys({ filter? })GET /v2/amplify/vaultApys
client.amplify.vaults.getTvls({ filter? })GET /v2/amplify/vaultTvls
client.amplify.vaults.getSupplyCaps({ filter? })On-chain: DistributorCodeDepositor.supplyCapInBase() per asset
client.amplify.withdraw.listRequests({ filter? })GET /v2/amplify/withdrawalRequests
client.amplify.withdraw.calculateFee({...})On-chain: WithdrawQueue.feeModule()FeeModule.calculateOfferFees()
client.amplify.users.getPositions({...})On-chain: BoringVault.balanceOf(user) + Accountant.getRateInQuoteSafe(quote)
client.core.authorization.detect({...})allowance for already_approved/approval; permit requires additional reads (nonces, DOMAIN_SEPARATOR, name, version)
client.amplify.deposit.prepare({...})Encode DistributorCodeDepositor.deposit() or depositWithPermit() directly
client.amplify.withdraw.prepare({...})Encode WithdrawQueue.submitOrder() directly
client.amplify.withdraw.cancel({...})Encode WithdrawQueue.cancelOrder() directly