{"name":"Liquid Bridge","tagline":"The one-signature USDC bridge for x402 agents.","pitch":"Move USDC from Base to 16 chains (Arc, Arbitrum, OP Mainnet, Polygon, Avalanche, Unichain, Linea, World Chain, Sonic, Monad, Sei, Ink, HyperEVM, XDC, Plume and Codex), or from Arc to Base, with a single x402 payment. No transaction to build, no approvals, no gas token. You receive exactly the amount you ask for, at your own address, usually in 10 to 20 seconds.","referral":"Refer other agents and earn 20% of Liquid's fee on every bridge they make, credited on-chain in the same transaction. The first agent to refer a payer keeps earning on that payer's future bridges.","why":["One signature: a standard x402 exact payment (EIP-3009). Nothing else to sign or send.","Exact delivery: the amount you ask for is the amount you receive. The price is final, all fees included.","Non-custodial: your payment goes to the bridge contract, which burns it through Circle CCTP to your own address in the same transaction. Liquid never holds your funds.","Earn by referring: add ref=<your address> and get 20% of the fee, paid on-chain.","Never stuck: every response includes the burn transaction, which is enough to finish the mint yourself."],"facts":{"sources":["Arc (eip155:5042)","Base (eip155:8453)"],"liveRoutes":["Arc -> Base","Base -> Arc","Base -> OP Mainnet","Base -> Unichain","Base -> Sonic","Base -> World Chain","Base -> Monad","Base -> Sei","Base -> XDC","Base -> Ink","Base -> Plume","Base -> Polygon PoS","Base -> Avalanche","Base -> Arbitrum","Base -> Codex","Base -> HyperEVM","Base -> Linea"],"minimum":"1 USDC delivered","example":"Receive 1 USDC on Arc: pay about 1.035 USDC on Base. Receive 1 USDC on Arbitrum: pay about 1.107 USDC on Base (about 1.07 to OP, Unichain, World Chain, Sonic, Monad, Sei, Ink, XDC). Receive 1 USDC on Base: pay about 1.078 USDC on Arc. All fees included; the live price is at /v1/bridge/quote and changes slightly with Circle's fee and gas.","pricing":"Liquid charges 1% of the amount delivered. Circle's network fee (about $0.016 into Arc, about $0.05 to $0.10 to most other chains, about $0.28 to Linea) and gas are added at cost, so the all-in cost is about 3.5% for 1 USDC Base to Arc and falls toward 1% as the amount grows.","feeCeiling":"Liquid's fee is set per bridge and can never exceed max(3% of the amount, $0.05): enforced by the contract.","speed":"usually 10 to 20 seconds from signature to mint (etaSeconds: 20)","contracts":{"arc":"0x3bc7bf1afc96c1de35ac48e1a0a3cc3d617a77b1","base":"0xbf43e09b91c4d4aa55e033a3487f345ce4ed7557"},"delivery":"Circle CCTP v2 with Circle's Forwarding Service minting on the destination","payer":"a regular (EOA) wallet; smart-contract wallets are rejected before any charge. Your x402 client must support the source chain: Base (eip155:8453, USDC 0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913, signing name \"USD Coin\" v2) or Arc (eip155:5042, USDC 0x3600000000000000000000000000000000000000 = Arc's native USDC through its 6-decimal ERC-20 interface, signing name \"USDC\" v2, RPC https://rpc.mainnet.arc.io). Not every x402 client supports Arc yet; agentcash, for example, pays on Base, so use the Base -> Arc route.","recipient":"always the payer's own address on the destination chain (no recipient parameter)."},"steps":[{"step":1,"do":"Ask for a route","call":"GET https://api.liquidagent.ai/v1/bridge?from=arc&to=base&amount=1&ref=<optional referrer>","returns":"HTTP 402: the exact price, valid 120 s. The quote is also in the JSON body."},{"step":2,"do":"Sign one x402 exact payment","how":"EIP-3009 TransferWithAuthorization on the source chain's USDC to payTo (the bridge contract on that chain) for the quoted amount. The 402 gives the exact signing domain (extra.name / extra.version)."},{"step":3,"do":"Repeat the same call with the payment","how":"PAYMENT-SIGNATURE header (x402 v2) or X-PAYMENT (v1).","returns":"200 {status, receive, burnTx, mintTx, referrerEarned}, or 202 {burnTx, statusUrl} if still confirming. Do not pay twice; follow statusUrl."}],"responses":{"200":"{status, receive, to, recipient, burnTx, mintTx, statusUrl, referrer, referrerEarned}","202":"sent but not yet confirmed: {burnTx, statusUrl}. Do not pay again.","402":"the price (first call), or why the payment was refused (expired, underpaid, smart-contract wallet, insufficient balance); the body always carries a fresh quote","409":"this authorization was already settled, or someone front-ran it and it was refunded to you in full (refundTx)","statusValues":{"waiting_for_circle":"burned on the source chain; Circle has not indexed it yet","pending_attestation":"Circle is attesting the burn","attested":"attested; Circle's Forwarding Service is minting on the destination","minted":"delivered: mintTx is the mint on the destination","submitted":"(202 only) sent, not yet mined","unknown":"(404) no such transaction on a source chain"}},"edgeCases":{"priceChanged":"Quotes are honored for 120 s. If Circle's fee moves slightly, Liquid absorbs it. If it moved more, or your authorization expired, you get a new 402 with the new price: sign again.","payTwice":"Resending the SAME signature is safe: it is settled at most once (409 on a repeat). A NEW signature is a NEW bridge: it delivers again and is charged again. If you get a 202, follow statusUrl instead of paying again.","notSubmitted":"If the API answers 502 'bridge not submitted', your authorization was not used and nothing was charged.","frontRun":"If anyone submits your authorization before us, the funds sit unbridged and are refunded to you in full automatically (our submitter calls refundFrontRun on the contract after checking on-chain that your USDC arrived).","refunds":"A completed bridge cannot be reversed (it is a CCTP burn and mint). There is nothing to refund unless the burn never happened."},"selfMint":{"when":"Only if a bridge is attested but never minted (rare; Circle's Forwarding Service normally mints for you).","steps":["GET https://iris-api.circle.com/v2/messages/<sourceDomain>?transactionHash=<burnTx>  (sourceDomain: Base = 6, Arc = 26)","Take messages[0].message and messages[0].attestation once status is 'complete'.","On the destination chain call MessageTransmitterV2 0x81D40F21F12A8F0E3252Bccb954D722d4c464B64 (same address on every CCTP chain): receiveMessage(message, attestation). Anyone can call it; the USDC always goes to you."],"needs":"a little gas on the destination chain (its native token; USDC on Arc)"},"earn":{"how":"Add ref=<your EVM address> to any bridge URL you call or share.","share":"20% of Liquid's fee on that bridge, credited on-chain to your address in the bridge contract.","where":"Credited in the bridge contract on the chain where the referred agent paid: Base-paid bridges on Base (0xbf43e09b91c4d4aa55e033a3487f345ce4ed7557), Arc-paid bridges on Arc (0x3bc7bf1afc96c1de35ac48e1a0a3cc3d617a77b1).","payout":"Liquid pays out every balance of $0.01 or more once a day (claimFor sends it to your address). You can also call claim() from your address, or anyone can call claimFor(yourAddress), at any time.","checkEarnings":"https://api.liquidagent.ai/v1/bridge/earnings/<your address>","selfReferral":"Allowed: ref may equal the payer (it works as a 20% fee rebate).","override":"The sticky referrer is set once, by the first ref a payer ever uses, and cannot be replaced by a later ref. A payer can never refer itself.","sticky":"The first referrer of a payer earns on all of that payer's later bridges, for life.","check":"https://api.liquidagent.ai/v1/bridge/referrer/<payer address>"},"free":{"quote":"https://api.liquidagent.ai/v1/bridge/quote?from=base&to=arc&amount=1","routes":"https://api.liquidagent.ai/v1/bridge/routes","status":"https://api.liquidagent.ai/v1/bridge/status/<burnTx>","earnings":"https://api.liquidagent.ai/v1/bridge/earnings/<referrer>","referrer":"https://api.liquidagent.ai/v1/bridge/referrer/<payer>"},"wireFormat":"The 402 carries x402 v2 in the PAYMENT-REQUIRED header and a v1-compatible JSON body (both include amount and maxAmountRequired; network names are CAIP-2). Pay with PAYMENT-SIGNATURE (v2) or X-PAYMENT (v1).","specs":{"openapi":"https://api.liquidagent.ai/v1/bridge/openapi.json","llms":"https://api.liquidagent.ai/v1/bridge/llms.txt"},"proof":"https://api.liquidagent.ai/v1/bridge/proof","mcp":{"url":"https://api.liquidagent.ai/mcp","transport":"streamable-http","tools":["bridge_quote","bridge_prepare_payment","bridge_status","bridge_routes","bridge_referral_earnings","usdc_balances","cctp_status","x402_check","payment_readiness"],"note":"Connect any MCP client by URL; the server never signs or pays for you."}}