{"protocol":"AiFinPay","version":"5.3","name":"AiFinPay — Payment Rail for AI Agents","description":"Per-call payment infrastructure for autonomous AI agents: HTTP 402 → POST /v1/quote → on-chain settlement → POST /v1/pay → receipt. The settlement section lists exactly which chains and contracts this backend accepts today.","networks":["polygon-mainnet","base-mainnet"],"settlement":{"source_of_truth":"POST /v1/quote returns the exact contract, function and arguments for a given merchant. Never build a settlement call from this document.","evm_routes":[{"chain":"polygon","chain_id":137,"splitter_version":"1.4","contract":"0x78bed24B8D3A5eB2cf8D9A0D6A9Da6Bc5d7f32eB","treasury":"0x01b80329ff81ce1d22a9e2e8807df5f92414c3c3","admin":"0x01b80329ff81ce1d22a9e2e8807df5f92414c3c3","testnet":false,"call":"settleNative / settleStable with the server-signed quote in POST /v1/quote → settlement_call"},{"chain":"amoy","chain_id":80002,"splitter_version":"1.4","contract":"0xBdC126193FADf38A86Cd509e56018a95d5B6eeFA","treasury":"0x0000DA1886e173C09A4e04723d8226D84d9c5122","admin":"0x00009352dc8a1041A724c01632dc549935e05B98","testnet":true,"call":"settleNative / settleStable with the server-signed quote in POST /v1/quote → settlement_call"},{"chain":"base","chain_id":8453,"splitter_version":"1.4","contract":"0x78bed24B8D3A5eB2cf8D9A0D6A9Da6Bc5d7f32eB","treasury":"0x5AFe07483886DFa0B77C6d60212B6E52D78ac11e","admin":"0x5AFe07483886DFa0B77C6d60212B6E52D78ac11e","testnet":false,"call":"settleNative / settleStable with the server-signed quote in POST /v1/quote → settlement_call"},{"chain":"polygon","chain_id":137,"splitter_version":"1.2","contract":"0xbD1fa5453f212F096c0213788a645eC597FB4DDe","treasury":"0xD31d82c4b35DABaA2ad7023C89A78A052D1f3c8e","admin":"0xD31d82c4b35DABaA2ad7023C89A78A052D1f3c8e","testnet":false,"call":"payNative / payStable — merchants still on the v1.2 route and the B2B bridge"}],"solana":{"status":"disabled","reason":"This backend does not verify Solana settlements, so a Solana payment cannot earn a receipt. Do not pay on Solana.","legacy_program_id":"5g9zWHF1Vv6GiGpA2ZbJQbSCDZd5hAk9AyvabRJvKFx2","legacy_program_state":"closed on mainnet (programdata account removed); it cannot execute and must not be paid"},"economics":{"aifp1":{"model":"gross-inclusive","profile_id":"aifp1-gross-inclusive-100-0-v1","merchant_bps":9900,"treasury_bps":100,"ip_creator_bps":0,"applies_to":"AIFP-1 quotes: 402 → POST /v1/quote → settlement → POST /v1/pay","note":"The agent pays exactly the amount /v1/quote returned. Nothing is added on top."},"aifp2":{"model":"provider-preserving","profile_id":"aifp2-provider-preserving-0-v1","provider_bps":10000,"treasury_bps":0,"status":"canonical AIFP-2 profile; takes effect with splitter v1.3 on mainnet"},"legacy_bridge_v12":{"model":"fee-on-top","merchant_bps":9899,"treasury_bps":100,"ip_creator_bps":1,"applies_to":"bridge.aifinpay.io and /api/b2b/* on B2BSplitter v1.2 only","note":"Fee-on-top applies to the legacy bridge path, not to AIFP-1: the merchant receives the quoted amount and the fees are added to the payer's total."}}},"supported_tokens":{"evm":["POL","USDC"],"released_clients_pay_with":["POL","USDC"]},"min_amount_usd":0.1,"msecco":{"role":"retired 2026-08-06 — no longer credited; kept for older clients","rate":"100 mSECCO = $1 USD","min":1},"agreement_hash":"27b28e3044b56df3332a60c27604686a634f922a184f62398a4e2f85df19c699","compliance":"Agreement ref AiFinPay-DON-2026-001","discovery":{"manifesto":"https://api.aifinpay.io/manifesto.json","registry":"https://api.aifinpay.io/registry","coverage":"https://api.aifinpay.io/registry/coverage","bridge_router":"https://bridge.aifinpay.io","nonce":"https://api.aifinpay.io/nonce","pay_with_split":"https://api.aifinpay.io/b2b/pay-with-split","quote_split":"https://api.aifinpay.io/b2b/quote-split","openapi":"https://api.aifinpay.io/openapi.yaml","openapi_json":"https://api.aifinpay.io/openapi.json"},"sdk":{"node":"npm install @aifinpay/agent","python":"pip install aifinpay-agent","mcp":"npx @aifinpay/mcp","source":"https://github.com/AiFinPay/sdk","pays_aifp1":["@aifinpay/mcp payable_fetch (opt-in)","@aifinpay/agent fetchPaid","aifinpay-agent fetch_paid (Python)"]},"flow_aifp1":["1. Request the merchant's resource → HTTP 402 with merchant_id, resource, tier and how_to_pay","2. POST /v1/quote with merchant_id, resource and payer → amount, expiry and settlement_call","3. Send settlement_call from the payer wallet exactly as returned","4. POST /v1/pay with quote_id, tx_ref, payment_authorization and an Idempotency-Key → receipt","5. Retry the resource with AIFP-Receipt; on a timeout retry /v1/pay with the same key — never pay again"],"flow_legacy_bridge_v12":["1. POST bridge.aifinpay.io/{slug}/... → HTTP 402 with order_id + payment instruction","2. Call payNative on B2BSplitter v1.2 (Polygon) with msg.value = total_wei; paymentId = keccak256(order_id)","3. Retry the bridge request with x-tx-hash + x-order-id headers"],"auth":{"polygon_paid_call":{"applies_to":"legacy bridge v1.2 only; AIFP-1 uses AIFP-Receipt from POST /v1/pay","scheme":"x-tx-hash + x-order-id","signed_by":"agent's Polygon EVM keypair (private key kept by operator)"}}}