For full control over contract calls without an API dependency, see Direct
Contract Integration.
Prerequisites
- A Paxos Labs API key (format:
pxl_<public_id>_<secret>), sent as thex-api-keyheader - An approved wallet address. See Access. Where an unapproved wallet is rejected depends on the flow: cross-chain transfers fail at preparation with a
403, while mint and redeem prepare successfully and revert when the transaction executes. Gate the action in your UI on approval status rather than relying on either. - An EVM signer and an HTTP client
Endpoints at a glance
Every endpoint takesvaultAddress (the PAXGy token address) and chainId.
Transaction preparation
Display helpers
Contract addresses
Rather than hard-coding these, read them fromGET /v2/amplify/vaults at runtime, which returns the current addresses per chain.
Ethereum mainnet (chain ID 1)
X Layer (chain ID 196)
Amounts are base units
Every amount in this API is a decimal string in base units. PAXG and PAXGy are both 18-decimal, so 1 PAXG is"1000000000000000000". Never send a float or a human-readable string.
Fees move with the market
PAXGy’s mint and redemption fees are derived from the live PAXG:gold price rather than a fixed schedule. InGET /v2/amplify/vaults, those fees are marked "type": "dynamic":
dynamic rate is a point-in-time reading and will move. Treat it as indicative for display, and let the prepare endpoints compute the actual limits that go into the transaction.
Next
Minting
Deposit PAXG and receive PAXGy.
Redemption
Offer PAXGy and receive PAXG.
Cross-chain
Move PAXGy between Ethereum and X Layer.
Direct Contract
Call the contracts without the API.