{"name":"Liquid Bridge","tagline":"The one-signature USDC bridge for x402 agents.","pitch":"Move USDC between Arc and other chains 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"],"minimum":"1 USDC delivered","example":"Receive 1 USDC on Arc: pay about 1.035 USDC on Base. 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.055 out of Arc) 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":"0xecdcd568c40975c1dfe7624265be4debfbd25862","base":"0xf9330df3fe702c6b9a531bc1a1de2caa056361ea"},"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 (refundFrontRun on the contract, callable by anyone).","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 Base and Arc): receiveMessage(message, attestation). Anyone can call it; the USDC always goes to you."],"needs":"a little gas on the destination chain (ETH on Base, 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 (0xf9330df3fe702c6b9a531bc1a1de2caa056361ea), Arc-paid bridges on Arc (0xecdcd568c40975c1dfe7624265be4debfbd25862).","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":"An explicit ref wins for that bridge. The sticky referrer is set once, by the first ref a payer ever uses, and earns only on bridges that carry no ref.","sticky":"The first referrer of a payer earns on that payer's later bridges that carry no ref.","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."}}