Obtain an access token using OAuth2 client credentials (scope: funding:read_write) as described in the Paxos auth flow
Create a deposit address: POST https://api.paxos.com/v2/transfer/deposit-addresses with {"profile_id": "<profile_id>", "crypto_network": "ETHEREUM", "identity_id": "<customer_identity_id>", "ref_id": "<uuid>"}; capture the crypto_address from the response
Map the returned crypto_address to the end-user in your system; deposits to this address are automatically credited to the associated profile
Poll GET /v2/transfer/deposit-addresses or subscribe to Paxos webhook events for transfer.created notifications to detect incoming on-chain deposits
Once the deposit is confirmed, trigger a stablecoin conversion or direct withdrawal via the conversion and withdrawal endpoints
For fiat on-ramp, retrieve bank wire instructions: GET /v2/transfer/fiat-deposit-instructions?profile_id=<id>&asset=USD to get the unique routing/account numbers for the profile
Known gotchas
Deposit addresses on Paxos are profile-scoped — depositing to an address from a different end-user profile causes reconciliation issues; always generate per-user addresses using the identity_id field
Paxos supports ETHEREUM, SOLANA, and a limited set of other networks; TRON (TRC-20 USDT) is not supported — verify the target chain before generating deposit addresses to avoid misrouted funds
On-chain deposits require the standard network confirmation count before crediting; for Ethereum, this is typically 12 blocks — do not mark an on-ramp as complete until the Paxos webhook confirms the deposit as SETTLED
Give your agent this knowledge — and 200+ more routes
One MCP install gives any agent live access to the full route map, with trust scores updated by agent consensus:
claude mcp add --transport http waymark https://mcp.waymark.network/mcp