[{"data":1,"prerenderedAt":165},["ShallowReactive",2],{"content-\u002Fprompts\u002Fintegrate-offramp-wallets":3,"prompts-category-integrations":99},{"id":4,"title":5,"author":6,"body":7,"categories":6,"category":83,"categoryType":6,"date":84,"description":85,"extension":86,"faq":6,"howto":6,"isBlog":87,"isChangelog":87,"meta":88,"navigation":89,"path":90,"pillar":87,"products":91,"rawbody":95,"seo":96,"stem":97,"thumbnail":6,"updated":6,"__hash__":98},"content\u002Fprompts\u002Fintegrate-offramp-wallets.md","Integrate offramp wallets for auto-conversion",null,{"type":8,"value":9,"toc":77},"minimark",[10,14,19,30,34,47,51],[11,12,13],"p",{},"Paste this prompt into your coding agent to build the zero-touch offramp: users deposit stablecoins to an address, fiat lands in their bank account.",[15,16,18],"h2",{"id":17},"prompt","Prompt",[20,21,27],"pre",{"className":22,"code":24,"language":25,"meta":26},[23],"language-text","You are integrating BlindPay offramp wallets into my application: a dedicated crypto deposit address tied to a bank account, where any supported stablecoin deposit auto-converts and pays out over the local rail with no per-transaction API call from me.\n\nBefore writing code, read these sources and follow them over any prior knowledge:\n- https:\u002F\u002Fblindpay.com\u002Fdocs\u002Fllms.txt (read the offramp wallets, bank accounts, and webhooks pages)\n- The OpenAPI spec: curl https:\u002F\u002Fapi.blindpay.com\u002Fdoc\n\nBuild the flow:\n1. Prerequisites: approved customer (KYC\u002FKYB) and a bank account (ba_) on the right rail (pix for BRL, spei for MXN, ach\u002Fwire\u002Frtp for USD, and so on).\n2. Create the offramp wallet: POST \u002Fv1\u002Finstances\u002F{instance_id}\u002Fcustomers\u002F{customer_id}\u002Fbank-accounts\u002F{bank_account_id}\u002Fofframp-wallets, choosing the chain (Ethereum, Polygon, Base, Arbitrum, Solana, or Tron). Persist the returned deposit address against my user record.\n3. Surface the deposit address safely in my UI: show the chain and token explicitly, warn that deposits on the wrong chain are lost, and respect the documented per-chain minimum deposit amounts before showing the address as ready.\n4. Drive state from webhooks: wallet.inbound for the deposit, then payout.new\u002Fupdate\u002Fcomplete for the automatic conversion and payout, all Svix-verified and reconciled to my user via the wallet and bank account IDs.\n5. Build the reporting view: for each deposit show received amount, FX applied, fees, and the fiat amount settled, from the webhook payloads.\n\nConstraints:\n- API keys stay server-side; never log full webhook payloads with PII.\n- Test on a development instance with USDB on a testnet before production.\n- One offramp wallet maps to one bank account; model that constraint in my schema.\n\nDeliverables: offramp wallet provisioning service, the deposit-address UI component with chain\u002Fminimum warnings, webhook handlers, and the per-deposit settlement report.\n","text","",[28,29,24],"code",{"__ignoreMap":26},[15,31,33],{"id":32},"how-to-use","How to use",[35,36,37,41,44],"ol",{},[38,39,40],"li",{},"Paste the prompt with your stack details.",[38,42,43],{},"Decide which chains you want to expose; fewer chains means fewer wrong-chain support tickets.",[38,45,46],{},"Verify the full deposit-to-payout loop on a development instance.",[15,48,50],{"id":49},"related-docs","Related docs",[52,53,54,63,70],"ul",{},[38,55,56],{},[57,58,62],"a",{"href":59,"rel":60},"https:\u002F\u002Fblindpay.com\u002Fdocs\u002Fofframp-wallets",[61],"nofollow","Offramp wallets",[38,64,65],{},[57,66,69],{"href":67,"rel":68},"https:\u002F\u002Fblindpay.com\u002Fdocs\u002Fbank-accounts",[61],"Bank accounts",[38,71,72],{},[57,73,76],{"href":74,"rel":75},"https:\u002F\u002Fblindpay.com\u002Fdocs\u002Fkb\u002Fsupported-chains",[61],"Supported chains",{"title":26,"searchDepth":78,"depth":78,"links":79},2,[80,81,82],{"id":17,"depth":78,"text":18},{"id":32,"depth":78,"text":33},{"id":49,"depth":78,"text":50},"integrations","2026-08-26","Give each bank account a dedicated crypto deposit address: stablecoins sent to it convert and pay out to the linked bank account automatically.","md",false,{},true,"\u002Fprompts\u002Fintegrate-offramp-wallets",[92,93,94],"payouts","webhooks","compliance","---\ntitle: \"Integrate offramp wallets for auto-conversion\"\ndescription: \"Give each bank account a dedicated crypto deposit address: stablecoins sent to it convert and pay out to the linked bank account automatically.\"\ndate: \"2026-08-26\"\ncategory: \"integrations\"\nproducts: [\"payouts\", \"webhooks\", \"compliance\"]\n---\n\nPaste this prompt into your coding agent to build the zero-touch offramp: users deposit stablecoins to an address, fiat lands in their bank account.\n\n## Prompt\n\n```text\nYou are integrating BlindPay offramp wallets into my application: a dedicated crypto deposit address tied to a bank account, where any supported stablecoin deposit auto-converts and pays out over the local rail with no per-transaction API call from me.\n\nBefore writing code, read these sources and follow them over any prior knowledge:\n- https:\u002F\u002Fblindpay.com\u002Fdocs\u002Fllms.txt (read the offramp wallets, bank accounts, and webhooks pages)\n- The OpenAPI spec: curl https:\u002F\u002Fapi.blindpay.com\u002Fdoc\n\nBuild the flow:\n1. Prerequisites: approved customer (KYC\u002FKYB) and a bank account (ba_) on the right rail (pix for BRL, spei for MXN, ach\u002Fwire\u002Frtp for USD, and so on).\n2. Create the offramp wallet: POST \u002Fv1\u002Finstances\u002F{instance_id}\u002Fcustomers\u002F{customer_id}\u002Fbank-accounts\u002F{bank_account_id}\u002Fofframp-wallets, choosing the chain (Ethereum, Polygon, Base, Arbitrum, Solana, or Tron). Persist the returned deposit address against my user record.\n3. Surface the deposit address safely in my UI: show the chain and token explicitly, warn that deposits on the wrong chain are lost, and respect the documented per-chain minimum deposit amounts before showing the address as ready.\n4. Drive state from webhooks: wallet.inbound for the deposit, then payout.new\u002Fupdate\u002Fcomplete for the automatic conversion and payout, all Svix-verified and reconciled to my user via the wallet and bank account IDs.\n5. Build the reporting view: for each deposit show received amount, FX applied, fees, and the fiat amount settled, from the webhook payloads.\n\nConstraints:\n- API keys stay server-side; never log full webhook payloads with PII.\n- Test on a development instance with USDB on a testnet before production.\n- One offramp wallet maps to one bank account; model that constraint in my schema.\n\nDeliverables: offramp wallet provisioning service, the deposit-address UI component with chain\u002Fminimum warnings, webhook handlers, and the per-deposit settlement report.\n```\n\n## How to use\n\n1. Paste the prompt with your stack details.\n2. Decide which chains you want to expose; fewer chains means fewer wrong-chain support tickets.\n3. Verify the full deposit-to-payout loop on a development instance.\n\n## Related docs\n\n- [Offramp wallets](https:\u002F\u002Fblindpay.com\u002Fdocs\u002Fofframp-wallets)\n- [Bank accounts](https:\u002F\u002Fblindpay.com\u002Fdocs\u002Fbank-accounts)\n- [Supported chains](https:\u002F\u002Fblindpay.com\u002Fdocs\u002Fkb\u002Fsupported-chains)\n",{"title":5,"description":85},"prompts\u002Fintegrate-offramp-wallets","Y6uwhr1I0bRV_UG8OQdqog7v_LZxyXIYOClnr4g8g3M",[100,104,108,112,116,120,124,128,132,136,140,141,145,149,153,157,161],{"path":101,"title":102,"description":103},"\u002Fprompts\u002Fbuild-contractor-payouts","Build a global contractor payout product","Compose onboarding, bank accounts, quotes, payouts, and reconciliation into a complete pay-your-contractors feature across Pix, SPEI, SEPA, and ACH.",{"path":105,"title":106,"description":107},"\u002Fprompts\u002Fconnect-ai-agent-mcp","Connect an AI agent with the MCP server","Wire Claude, Cursor, or any MCP-compatible host to the BlindPay API with the official MCP server and agent skills, with guardrails for money movement.",{"path":109,"title":110,"description":111},"\u002Fprompts\u002Fintegrate-external-wallet-payouts","Fund payouts from external wallets","Let customers pay out from their own EVM, Solana, or Stellar wallets: signed-message registration plus the on-chain authorization step per chain.",{"path":113,"title":114,"description":115},"\u002Fprompts\u002Fintegrate-circle-wallets","Integrate Circle wallets with BlindPay","Fund BlindPay payouts from Circle developer-controlled wallets: sign the registration challenge and the ERC-20 approve through Circle's API instead of a browser wallet.",{"path":117,"title":118,"description":119},"\u002Fprompts\u002Fintegrate-dfns","Integrate Dfns with BlindPay","Fund BlindPay stablecoin payouts from Dfns MPC wallets: sign the registration challenge and the ERC-20 approve through Dfns's User Action Signature flow.",{"path":121,"title":122,"description":123},"\u002Fprompts\u002Fintegrate-fireblocks","Integrate Fireblocks with BlindPay","Fund BlindPay stablecoin payouts from Fireblocks vault accounts: MPC-signed wallet registration and the ERC-20 approve through Fireblocks' transactions API.",{"path":125,"title":126,"description":127},"\u002Fprompts\u002Fintegrate-privy","Integrate Privy with BlindPay","Fund BlindPay stablecoin payouts from Privy Server Wallets: sign the registration challenge and the ERC-20 approve through Privy's wallet RPC endpoint.",{"path":129,"title":130,"description":131},"\u002Fprompts\u002Fintegrate-virtual-accounts","Integrate US virtual accounts","Give each customer a named US bank account with ACH, RTP, wire, and SWIFT details that settles automatically to USDC or USDT in their wallet.",{"path":133,"title":134,"description":135},"\u002Fprompts\u002Fintegrate-utila","Integrate Utila with BlindPay","Fund BlindPay payouts from Utila MPC vaults: sign the wallet-registration challenge and the ERC-20 approve through Utila's service-account API, with async transaction confirmation handled.",{"path":137,"title":138,"description":139},"\u002Fprompts\u002Fintegrate-customer-onboarding","Integrate customer onboarding with KYC and KYB","Build the full onboarding pipeline: terms of service, individual and business customers, document uploads, RFI handling, and status webhooks.",{"path":90,"title":5,"description":85},{"path":142,"title":143,"description":144},"\u002Fprompts\u002Fintegrate-payins","Integrate payins from bank transfers to stablecoins","Accept Pix, ACH, wire, SPEI, and other local bank transfers and settle them as USDC or USDT in a wallet, with quotes, payment instructions, and webhooks.",{"path":146,"title":147,"description":148},"\u002Fprompts\u002Fintegrate-quotes-fx","Integrate quotes and FX handling","Handle payin, payout, and transfer quotes correctly: expiry windows, currency_type conventions, fees, and displaying rates to users.",{"path":150,"title":151,"description":152},"\u002Fprompts\u002Fintegrate-stablecoin-payouts","Integrate stablecoin payouts end to end","Build a complete stablecoin to fiat payout flow: customer onboarding, bank accounts, quotes, and payout execution over Pix, ACH, SPEI, SEPA, and more.",{"path":154,"title":155,"description":156},"\u002Fprompts\u002Fintegrate-wallet-transfers","Integrate wallet transfers and cross-chain USDC","Move stablecoins from managed wallets to any address with transfer quotes, including cross-chain USDC over Circle CCTP v2.",{"path":158,"title":159,"description":160},"\u002Fprompts\u002Fintegrate-webhooks","Integrate webhooks end to end","Register endpoints, verify Svix signatures correctly, deduplicate retries, and drive payment state from the full BlindPay event catalog.",{"path":162,"title":163,"description":164},"\u002Fprompts\u002Fintegrate-payables","Pay boletos and Brazilian bills with payables","Register boletos, arrecadacao slips, and PIX codes as payables and settle them from stablecoins through the quote-and-execute flow.",1787868849113]