PAXGy Integration
This guide covers integrating PAXGy on-chain: checking access, reading the share rate, minting with PAXG, and redeeming back to PAXG.Minting and redemption are available on Ethereum mainnet only. PAXGy can be held and transferred on Ethereum and X Layer. See Supported networks.
Prefer not to manage ABIs and addresses yourself? API Calldata Integration returns ready-to-sign transactions for every flow on this page.
Prerequisites
- An approved wallet address (see Access). Minting and redemption calls from a non-approved address will revert.
- An Ethereum mainnet RPC endpoint.
- A wallet library (viem, ethers, wagmi, etc.).
- PAXG to deposit (for minting).
Contract addresses (Ethereum mainnet)
Contract addresses (X Layer, chain ID 196)
Checking access
A wallet must be approved before it can mint or redeem. If your integration surfaces mint/redeem actions, gate them on the wallet’s approval status and poll it, so that access granted by Paxos Labs takes effect without a reconnect. The exact approval check (contract and parameters) is provided during onboarding.Reading the share rate
PAXGy accrues value through a share rate that increases over time, so one PAXGy is always worth an increasing amount of PAXG. Read the current rate from the Rate oracle to preview mints and redemptions:Treat any client-side conversion of PAXGy ↔ PAXG as an estimate derived from this rate.
Minting PAXGy
Minting is a two-step flow: approve PAXG to the deposit entrypoint, then deposit.-
Approve PAXG. Grant the deposit entrypoint an allowance for the PAXG amount you intend to deposit.
-
Deposit. Call the deposit entrypoint with the PAXG amount and a minimum PAXGy amount to protect against rate movement.
The trailing attestation tuple is left empty for PAXGy, which gates access at the wallet level rather than per deposit. Pass the empty values shown above.
Sizing minimumMint
minimumMint is your floor on PAXGy received. Two things move between reading the rate and the transaction landing:
- The share rate, which is read when you prepare and can change before the transaction lands.
- The deposit fee, which is derived from the live PAXG:gold price. When PAXG trades below its gold peg, a fee is charged equal to that shortfall, so the depositor is credited at the lower of peg and market. When PAXG is at or above peg the fee is zero.
PAXG can carry an on-transfer fee. If one is ever enabled, the vault receives less than
depositAmount; size minimumMint with that in mind as well.Redeeming PAXGy
Redemption is not instant. You submit a withdrawal request to the Withdraw queue offering PAXGy for PAXG. The request is fulfilled and PAXG is delivered to your wallet.- Submit.
submitOrdercreates a redemption request. Each request is represented on-chain as an order NFT owned by your wallet. - Track.
getOrderStatusreturns the request’s current state. - Cancel.
cancelOrdercancels a request while it is still pending (not yet processed).
Cross-chain (Ethereum ↔ X Layer)
PAXGy balances move between Ethereum (chain ID 1) and X Layer (chain ID 196) via Chainlink CCIP. The tokens are burned on the source chain and issued on the destination. There is no wrapped representation. X Layer supports exactly these two operations on PAXGy: receiving it (issued on arrival) and sending it back (burned on departure). Minting from PAXG and redeeming to PAXG stay on Ethereum, because PAXG itself is not deployed on X Layer. Transfers go through the cross-chain transfer entrypoint. Both the quote and the transfer take the same routing struct:chainSelectoris the destination chain’s EVM chain ID, not a CCIP selector. The entrypoint maps it to CCIP’s own identifier internally.bridgeFeeTokenis the0xEeee…EEeEsentinel, not the zero address. Passingaddress(0)reverts.
Quote, then send the exact fee
Route constraints
messageGas must fall inside the range configured for the destination route. Read it before transferring:
allowMessagesTo === false or a zero targetTeller is not open, and the transfer will revert.
Cross-chain transfers are permissioned per wallet, the same as minting and redemption. An address that has not been enabled for transfers will revert even on an open route.
Depositing and transferring together
The transfer entrypoint also exposesdepositAndBridge, which mints and transfers in one transaction. Because it consumes PAXG, it is callable on Ethereum only. Use it to put PAXGy on X Layer without a separate transfer step:
minimumMint from the gross deposit amount, not a post-fee amount. It takes no to argument: the PAXGy is issued to destinationChainReceiver on the destination chain.
Settlement is not immediate
The source transaction confirming does not mean the PAXGy has arrived. CCIP finalizes on its own schedule; poll the destination balance rather than treating the source receipt as completion.What’s next
Overview
What PAXGy is, how the share rate works, and who can access it.
PAXG
The gold-backed asset that underpins PAXGy.