> ## Documentation Index
> Fetch the complete documentation index at: https://developers.paxoslabs.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Account Queries & Monitoring

> Discover accounts, read APY/TVL, check balances and fees, and monitor withdrawal status — using REST API calls and on-chain reads

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.

<Info>
  All API endpoints require an API key passed via the `x-api-key` header.
  Contact [Paxos Labs](mailto:support@paxoslabs.com) to get one. The GraphQL
  endpoint (`POST /graphql`) returns account contract addresses needed for
  integration. See [Account Discovery](/v1.0.0/intro/products/earn/developers/guides/direct-contract/vault-queries/vault-discovery)
  for the full query.
</Info>

<CardGroup cols={2}>
  <Card title="Account Discovery" icon="magnifying-glass" href="/v1.0.0/intro/products/earn/developers/guides/direct-contract/vault-queries/vault-discovery">
    Discover accounts, contract addresses, and supported assets via the GraphQL API.
  </Card>

  <Card title="Account APY" icon="chart-line" href="/v1.0.0/intro/products/earn/developers/guides/direct-contract/vault-queries/vault-apy">
    Fetch the latest annual percentage yield for an account.
  </Card>

  <Card title="Account TVL" icon="coins" href="/v1.0.0/intro/products/earn/developers/guides/direct-contract/vault-queries/vault-tvl">
    Fetch total value locked for an account.
  </Card>

  <Card title="Withdrawal Requests" icon="clock-rotate-left" href="/v1.0.0/intro/products/earn/developers/guides/direct-contract/vault-queries/withdrawal-requests">
    Query withdrawal order history and status for a user.
  </Card>

  <Card title="Token Balances" icon="wallet" href="/v1.0.0/intro/products/earn/developers/guides/direct-contract/vault-queries/token-balances">
    Read ERC-20 balances directly from the blockchain.
  </Card>

  <Card title="Allowances" icon="shield-check" href="/v1.0.0/intro/products/earn/developers/guides/direct-contract/vault-queries/allowances">
    Check ERC-20 approval allowances for deposits and withdrawals.
  </Card>

  <Card title="Exchange Rate" icon="arrows-rotate" href="/v1.0.0/intro/products/earn/developers/guides/direct-contract/vault-queries/exchange-rate">
    Read the share-to-asset exchange rate from the Accountant contract.
  </Card>

  <Card title="Withdrawal Fees" icon="receipt" href="/v1.0.0/intro/products/earn/developers/guides/direct-contract/vault-queries/withdrawal-fees">
    Calculate withdrawal fees via the FeeModule contract.
  </Card>

  <Card title="Pause State" icon="circle-pause" href="/v1.0.0/intro/products/earn/developers/guides/direct-contract/vault-queries/pause-state">
    Check whether account operations are paused before submitting transactions.
  </Card>
</CardGroup>

***

## SDK-to-Direct Mapping Reference

| v1.0.0 SDK call                                     | Direct 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](./vault-discovery)                                                               |
| `client.amplify.vaults.listAssets({ filter? })`     | [`GET /v2/amplify/vaultAssets`](/v1.0.0/api-reference/introduction) — filter by `depositable: true` or `withdrawable: true`  |
| `client.amplify.vaults.getApys({ filter? })`        | [`GET /v2/amplify/vaultApys`](/v1.0.0/api-reference/introduction)                                                            |
| `client.amplify.vaults.getTvls({ filter? })`        | [`GET /v2/amplify/vaultTvls`](/v1.0.0/api-reference/introduction)                                                            |
| `client.amplify.vaults.getSupplyCaps({ filter? })`  | On-chain: `DistributorCodeDepositor.supplyCapInBase()` per asset                                                             |
| `client.amplify.withdraw.listRequests({ filter? })` | [`GET /v2/amplify/withdrawalRequests`](/v1.0.0/api-reference/introduction)                                                   |
| `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                                                                                |
