BlindPay MCP Server
This server exposes BlindPay's stablecoin payment platform so AI assistants can manage instances, customers, wallets, and money movement.
Manage instances: view/update settings, onboarding details, members, and RFI submissions.
Onboard customers: create/update/delete individuals and businesses, handle KYC/KYB, terms-of-service, and limit-increase requests.
Manage payout destinations: bank accounts via Plaid or manual entry, offramp wallets, and virtual accounts.
Manage blockchain wallets: create/update/delete wallets, get balances/deposits, enable/disable yield, and view yield history/transactions.
Price and execute payments: get FX rates and quotes, then execute payouts on EVM, Solana, or Stellar (including compliance documents).
Create payins and card payments, and create/manage transfers between wallets.
Create/list/delete payables such as boleto, PIX codes, and invoices.
Configure webhooks, retrieve signing secrets/portal access, and manage partner fees and billing fees.
Look up available rails, required bank-detail fields, NAICS codes, and SWIFT bank details.
Utility actions: presign BlindPay file URLs, mint USDB on Solana/Stellar, prepare Solana delegation, and create Stellar trustlines.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@BlindPay MCP Server Get me a quote for sending 1000 USDC to a bank account in Brazil"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
The official Model Context Protocol server for BlindPay - Stablecoin API for global payments.
What This MCP Server Does
This MCP server provides AI assistants (Cursor, Claude Code, Codex, etc.) with access to BlindPay's stablecoin payment infrastructure. It exposes tools that allow AI assistants to:
Create and manage customers (individuals/businesses)
Process payouts and payins on multiple blockchains
Create quotes and get FX rates
Manage virtual accounts and blockchain wallets
Configure webhooks and API keys
And more...
Related MCP server: @payre/mcp
Two ways to connect
Remote server (recommended) | Local | |
URL / command |
|
|
Auth | OAuth 2.1 sign-in with your BlindPay account (PKCE) |
|
Transport | Streamable HTTP | stdio |
Works in | Claude, ChatGPT, Cursor, VS Code, Grok, any remote-capable client | Any stdio MCP client |
Both expose the same tools, the same server instructions (call order, units, test amounts) and the same webhook event resources at blindpay://webhooks/events. The remote server needs no API key: the client opens a browser, you sign in and pick an instance, and the token is scoped to your role on it.
Tool profiles
Set BLINDPAY_MCP_PROFILE on the local server to choose which tools are exposed:
Profile | Tools | Use when |
| Every public API operation, including payouts and transfers | Building or operating with an AI coding assistant |
|
| Consumer assistants, or any place a tool that moves money is unwanted |
Every tool carries MCP annotations (readOnlyHint, destructiveHint, idempotentHint) derived from its HTTP verb, so clients can gate confirmations themselves.
Prerequisites (local server only)
Get your API key and Instance ID:
Create a development instance
Go to the BlindPay Dashboard
Select your instance and click on the API Keys tab
Create a new API key
Copy your instance ID (format:
in_xxxxxxxxxxxx) from the dashboard url
Dependencies you need to have installed:
You can check if you have Node.js installed by running node -v. Same for Npm, you can check by running npm -v.
Installation
Cursor
One-click install (remote server, OAuth, no API key):
Or add it to ~/.cursor/mcp.json yourself, then select Needs login in Cursor's MCP settings and sign in with your BlindPay account:
{
"mcpServers": {
"blindpay": {
"url": "https://mcp.blindpay.com/mcp",
"auth": {
"CLIENT_ID": "4c2rAa08DqbVvnon",
"scopes": ["profile", "email", "offline_access"]
}
}
}
}Cursor only signs in through dynamic client registration or a fixed client ID, and BlindPay's sign-in has no registration endpoint, so 4c2rAa08DqbVvnon is BlindPay's public OAuth client ID for Cursor. Keep scopes as shown: without it Cursor asks for every scope the sign-in server advertises, and any scope outside these three fails with invalid_scope. An Authorization: Bearer header doesn't work here: Cursor ignores configured headers when the server publishes OAuth discovery. The Cursor plugin in plugins/cursor sets this up with both endpoints.
One-click install (local server with API key):
After installation, add your API key and instance ID to ~/.cursor/mcp.json:
{
"mcpServers": {
"blindpay": {
"command": "npx",
"args": ["-y", "@blindpay/mcp"],
"env": {
"BLINDPAY_API_KEY": "your-api-key-here",
"BLINDPAY_INSTANCE_ID": "your-instance-id-here"
}
}
}
}Claude Code
As a plugin (remote server, OAuth, no API key):
claude plugin marketplace add blindpaylabs/blindpay-mcp
claude plugin install blindpay@blindpayOr as a plain MCP server:
claude mcp add --transport http blindpay https://mcp.blindpay.com/mcpLocal server with an API key:
claude mcp add --transport stdio blindpay --env BLINDPAY_API_KEY=your-api-key-here --env BLINDPAY_INSTANCE_ID=your-instance-id-here -- npx -y @blindpay/mcpClaude Desktop
Add to your Claude Desktop configuration file:
macOS:
~/Library/Application Support/Claude/claude_desktop_config.jsonWindows:
%APPDATA%\Claude\claude_desktop_config.json
{
"mcpServers": {
"blindpay": {
"command": "npx",
"args": ["-y", "@blindpay/mcp"],
"env": {
"BLINDPAY_API_KEY": "your-api-key-here",
"BLINDPAY_INSTANCE_ID": "your-instance-id-here"
}
}
}
}Codex
Remote server (OAuth, no API key):
codex mcp add blindpay --url https://mcp.blindpay.com/mcpLocal server with an API key:
codex mcp add blindpay --env BLINDPAY_API_KEY=your-api-key-here --env BLINDPAY_INSTANCE_ID=your-instance-id-here -- npx -y @blindpay/mcpOr add to your ~/.codex/config.toml (or project-scoped .codex/config.toml):
[mcp_servers.blindpay]
command = "npx"
args = ["-y", "@blindpay/mcp"]
[mcp_servers.blindpay.env]
BLINDPAY_API_KEY = "your-api-key-here"
BLINDPAY_INSTANCE_ID = "your-instance-id-here"VS Code
Click the Install in VS Code badge at the top, or add to .vscode/mcp.json:
{
"servers": {
"blindpay": {
"type": "http",
"url": "https://mcp.blindpay.com/mcp"
}
}
}You can also search @mcp blindpay in the Extensions view once the gallery entry is live.
Windsurf
Add to ~/.codeium/windsurf/mcp_config.json:
{
"mcpServers": {
"blindpay": {
"serverUrl": "https://mcp.blindpay.com/mcp"
}
}
}Raycast
Open the Model Context Protocol Registry extension in Raycast, search for BlindPay and click Install Server. Or install manually with Manage Servers → Add Server using the local config from the Cursor section.
Claude (claude.ai / Claude Desktop, remote)
In Settings → Connectors → Add custom connector, paste https://mcp.blindpay.com/mcp and complete the sign-in. Only read-only tools are exposed to consumer directories.
ChatGPT
Enable Developer Mode in Settings → Connectors → Advanced, then Create a connector with https://mcp.blindpay.com/mcp and OAuth authentication.
Grok
Grok Build plugin (recommended): install blindpay from the xAI plugin marketplace. The plugin ships both remote HTTP MCP endpoints:
Server | URL | Scope |
|
| Full (read + write) |
|
| Read-only |
Both use OAuth 2.1 (PKCE) with your BlindPay account — no API key to paste.
Custom connector (paid Grok tier): go to https://grok.com/connectors → New Connector → Custom, enter https://mcp.blindpay.com/mcp (or the readonly URL), leave client credentials empty, and complete the BlindPay sign-in when prompted.
Cline
Ask Cline to install the BlindPay MCP server from https://github.com/blindpaylabs/blindpay-mcp. It follows llms-install.md.
Gemini CLI
gemini extensions install https://github.com/blindpaylabs/blindpay-mcpDocker
Local stdio server in a container, built from this repo:
docker build -t blindpay-mcp .
docker run -i --rm -e BLINDPAY_API_KEY=your-api-key-here -e BLINDPAY_INSTANCE_ID=your-instance-id-here blindpay-mcpAny other MCP client
Remote: point the client at https://mcp.blindpay.com/mcp (Streamable HTTP, OAuth 2.1 discovery via /.well-known/oauth-protected-resource).
Local: run npx -y @blindpay/mcp over stdio with BLINDPAY_API_KEY set.
Example Prompts
Once configured, you can ask your AI assistant to interact with BlindPay:
"Get me a quote for sending 1000 USDC to a bank account in Brazil"
"List all my recent payouts from the last 7 days"
"Create a virtual account for the customer with ID re_xxxxxxxxxxxx"
"Show me the available payment rails"
"Get all customers for instance in_xxxxxxxxxxxx"SetBLINDPAY_INSTANCE_ID and every instance-scoped tool fills in the instance id for you, the way the remote server does; a value the model sends is ignored. Without it, give the instance id in your prompt.
Documentation
Support
Email: eric@blindpay.com
Issues: GitHub Issues
License
This project is licensed under the MIT License - see the LICENSE file for details.
Made with ❤️ by the BlindPay team
Available Tools
93 toolsDeleteV1InstancesCustomersBankAccountsByIdDelete Instances Customers Bank Accounts By IdCDestructiveIdempotentInspect
Remove Bank Account
Inputs: id (required), customer_id (required), instance_id (required), Idempotency-Key.
DeleteV1InstancesCustomersBlockchainWalletsByIdDelete Instances Customers Blockchain Wallets By IdCDestructiveIdempotentInspect
Remove Blockchain Wallet
Inputs: id (required), customer_id (required), instance_id (required), Idempotency-Key.
DeleteV1InstancesCustomersByIdDelete Instances Customers By IdDDestructiveIdempotentInspect
Delete Customer
Inputs: id (required), instance_id (required), Idempotency-Key.
DeleteV1InstancesCustomersWalletsByIdDelete Instances Customers Wallets By IdCDestructiveIdempotentInspect
Remove Wallet
Inputs: id (required), customer_id (required), instance_id (required), Idempotency-Key.
DeleteV1InstancesMembersByUserIdDelete Instances Members By User IdCDestructiveIdempotentInspect
Delete Member from Instance
Inputs: id (required), user_id (required), Idempotency-Key.
DeleteV1InstancesPartnerFeesByIdDelete Instances Partner Fees By IdCDestructiveIdempotentInspect
Remove Partner Fee
Inputs: id (required), instance_id (required), Idempotency-Key.
DeleteV1InstancesPayablesByIdDelete Instances Payables By IdCDestructiveIdempotentInspect
Delete Payable
Inputs: id (required), instance_id (required).
DeleteV1InstancesWebhookEndpointsByIdDelete Instances Webhook Endpoints By IdDDestructiveIdempotentInspect
Remove Webhook
Inputs: id (required), instance_id (required), Idempotency-Key.
GetInstancesCustomersBankAccountsOfframpWalletsByIdGet Instances Customers Bank Accounts Offramp Wallets By IdDRead-onlyIdempotentInspect
Get Offramp Wallet
Inputs: id (required), customer_id (required), instance_id (required), bank_account_id (required).
GetV1AvailableBankDetailsGet Available Bank DetailsARead-onlyIdempotentInspect
Returns the fields a bank account needs for a payout rail, so a recipient form can collect and validate them before calling create bank account. Each field has a label, the request body key to send it under, a validation regex, and, where the value comes from a fixed list (banks, countries, account types), the allowed items. Get valid rail values from GET /v1/available/rails. Public: no API key required.
Inputs: rail (required).
GetV1AvailableNaicsGet Available NaicsCRead-onlyIdempotentInspect
NAICS list
Inputs: no named parameters.
GetV1AvailableRailsGet Available RailsARead-onlyIdempotentInspect
Lists every payout rail BlindPay supports (ACH, domestic wire, RTP, PIX, SPEI, SEPA, SWIFT, and more) as { label, value, country }. Pass value as the rail query parameter of GET /v1/available/bank-details, and as the type when creating a bank account. country is an ISO 3166-1 alpha-2 flag hint for display, not a statement of coverage. Public: no API key required.
Inputs: no named parameters.
GetV1AvailableSwiftBySwiftGet Available Swift By SwiftCRead-onlyIdempotentInspect
Swift code bank details
Inputs: swift (required).
GetV1InstancesBillingFeesGet Instances Billing FeesBRead-onlyIdempotentInspect
Get all fees for an instance, sorted by payment method (fiat first, then blockchain)
Inputs: instance_id (required).
GetV1InstancesByIdGet Instances By IdARead-onlyIdempotentInspect
Returns the instance your API key or connection is bound to. Check type before moving money: development simulates settlement and moves no real funds, production moves real funds. onboarding_step is completed once the instance can transact.
Inputs: id (required).
GetV1InstancesCustomersGet Instances CustomersDRead-onlyIdempotentInspect
Retrieve Customers
Inputs: instance_id (required), limit, offset, status, +7 more.
GetV1InstancesCustomersBankAccountsGet Instances Customers Bank AccountsCRead-onlyIdempotentInspect
Retrieve Bank Accounts
Inputs: customer_id (required), instance_id (required), name, type, +3 more.
GetV1InstancesCustomersBankAccountsByIdGet Instances Customers Bank Accounts By IdCRead-onlyIdempotentInspect
Retrieve Bank Account
Inputs: id (required), customer_id (required), instance_id (required).
GetV1InstancesCustomersBankAccountsOfframpWalletsGet Instances Customers Bank Accounts Offramp WalletsDRead-onlyIdempotentInspect
Get Offramp Wallets
Inputs: customer_id (required), instance_id (required), bank_account_id (required).
GetV1InstancesCustomersBlockchainWalletsGet Instances Customers Blockchain WalletsCRead-onlyIdempotentInspect
Retrieve Blockchain Wallets
Inputs: customer_id (required), instance_id (required).
GetV1InstancesCustomersBlockchainWalletsByIdGet Instances Customers Blockchain Wallets By IdCRead-onlyIdempotentInspect
Retrieve Blockchain Wallet
Inputs: id (required), customer_id (required), instance_id (required).
GetV1InstancesCustomersBlockchainWalletsSignMessageGet Instances Customers Blockchain Wallets Sign MessageCRead-onlyIdempotentInspect
Retrieve Blockchain Wallet Message
Inputs: customer_id (required), instance_id (required).
GetV1InstancesCustomersByIdGet Instances Customers By IdCRead-onlyIdempotentInspect
Retrieve Customer
Inputs: id (required), instance_id (required).
GetV1InstancesCustomersLimitIncreaseGet Instances Customers Limit IncreaseCRead-onlyIdempotentInspect
Retrieve Limit Increase Requests
Inputs: customer_id (required), instance_id (required).
GetV1InstancesCustomersRfiGet Instances Customers RfiARead-onlyIdempotentInspect
Returns the open (pending) RFI for this customer, or null if the customer has no pending RFI.
Inputs: customer_id (required), instance_id (required).
GetV1InstancesCustomersVirtualAccountsGet Instances Customers Virtual AccountsCRead-onlyIdempotentInspect
Retrieve Virtual Accounts
Inputs: customer_id (required), instance_id (required).
GetV1InstancesCustomersVirtualAccountsByIdGet Instances Customers Virtual Accounts By IdDRead-onlyIdempotentInspect
Retrieve Virtual Account
Inputs: id (required), customer_id (required), instance_id (required).
GetV1InstancesCustomersWalletsGet Instances Customers WalletsCRead-onlyIdempotentInspect
Retrieve Wallets
Inputs: customer_id (required), instance_id (required).
GetV1InstancesCustomersWalletsBalanceGet Instances Customers Wallets BalanceBRead-onlyIdempotentInspect
Returns the balance of a BlindPay-managed wallet for USDC, USDT and USDB, plus EURC (EURB on development instances) on Base. Unlike quote and payout amounts, these values are whole tokens, not cents: amount 10.5 means 10.5 USDC. total_amount is amount plus earning_amount from yield.
Inputs: id (required), customer_id (required), instance_id (required).
GetV1InstancesCustomersWalletsByIdGet Instances Customers Wallets By IdDRead-onlyIdempotentInspect
Retrieve Wallet
Inputs: id (required), customer_id (required), instance_id (required).
GetV1InstancesCustomersWalletsDepositsGet Instances Customers Wallets DepositsCRead-onlyIdempotentInspect
Incoming stablecoin deposits to a managed wallet, newest first.
Inputs: id (required), customer_id (required), instance_id (required), limit, +4 more.
GetV1InstancesCustomersWalletsYieldGet Instances Customers Wallets YieldCRead-onlyIdempotentInspect
Retrieve Wallet Yield
Inputs: id (required), customer_id (required), instance_id (required).
GetV1InstancesCustomersWalletsYieldHistoryGet Instances Customers Wallets Yield HistoryCRead-onlyIdempotentInspect
Retrieve Wallet Yield History
Inputs: id (required), customer_id (required), instance_id (required), to, +2 more.
GetV1InstancesCustomersWalletsYieldTransactionsGet Instances Customers Wallets Yield TransactionsCRead-onlyIdempotentInspect
Retrieve Wallet Yield Transactions
Inputs: id (required), customer_id (required), instance_id (required), limit, +4 more.
GetV1InstancesLimitsCustomersByIdGet Instances Limits Customers By IdCRead-onlyIdempotentInspect
Retrieve Customer Limits
Inputs: id (required), instance_id (required).
GetV1InstancesMembersGet Instances MembersCRead-onlyIdempotentInspect
Retrieve Instance Members
Inputs: id (required).
GetV1InstancesOnboardingBusinessDetailsGet Instances Onboarding Business DetailsCRead-onlyIdempotentInspect
Retrieve Business Details
Inputs: instance_id (required).
GetV1InstancesOnboardingBusinessProfileGet Instances Onboarding Business ProfileCRead-onlyIdempotentInspect
Retrieve Business Profile
Inputs: instance_id (required).
GetV1InstancesOnboardingOwnershipDocumentsGet Instances Onboarding Ownership DocumentsDRead-onlyIdempotentInspect
Retrieve Business Documents
Inputs: instance_id (required).
GetV1InstancesPartnerFeesGet Instances Partner FeesCRead-onlyIdempotentInspect
Retrieve Partner Fees
Inputs: instance_id (required).
GetV1InstancesPartnerFeesByIdGet Instances Partner Fees By IdDRead-onlyIdempotentInspect
Retrieve Partner Fee
Inputs: id (required), instance_id (required).
GetV1InstancesPayablesGet Instances PayablesDRead-onlyIdempotentInspect
List Payables
Inputs: instance_id (required), type, limit, offset, +6 more.
GetV1InstancesPayablesByIdGet Instances Payables By IdDRead-onlyIdempotentInspect
Retrieve Payable
Inputs: id (required), instance_id (required).
GetV1InstancesPayinsGet Instances PayinsDRead-onlyIdempotentInspect
Retrieve Payins
Inputs: instance_id (required), limit, token, offset, +9 more.
GetV1InstancesPayinsByIdGet Instances Payins By IdCRead-onlyIdempotentInspect
Retrieve Payin
Inputs: id (required), instance_id (required).
GetV1InstancesPayoutsGet Instances PayoutsCRead-onlyIdempotentInspect
Retrieve Payouts
Inputs: instance_id (required), limit, token, offset, +9 more.
GetV1InstancesPayoutsByIdGet Instances Payouts By IdDRead-onlyIdempotentInspect
Retrieve Payout
Inputs: id (required), instance_id (required).
GetV1InstancesRfiGet Instances RfiBRead-onlyIdempotentInspect
Returns the open (pending) RFI for this instance, or null if the instance has no pending RFI.
Inputs: instance_id (required).
GetV1InstancesTransfersGet Instances TransfersDRead-onlyIdempotentInspect
Retrieve Transfers
Inputs: instance_id (required), limit, token, offset, +6 more.
GetV1InstancesTransfersByIdGet Instances Transfers By IdCRead-onlyIdempotentInspect
Retrieve Transfer
Inputs: id (required), instance_id (required).
GetV1InstancesWebhookEndpointsGet Instances Webhook EndpointsCRead-onlyIdempotentInspect
Retrieve Webhooks
Inputs: instance_id (required).
GetV1InstancesWebhookEndpointsPortalAccessGet Instances Webhook Endpoints Portal AccessCRead-onlyIdempotentInspect
Retrieve Webhook Portal Access
Inputs: instance_id (required).
GetV1InstancesWebhookEndpointsSecretGet Instances Webhook Endpoints SecretCRead-onlyIdempotentInspect
Retrieve Webhook Secret
Inputs: id (required), instance_id (required).
PatchV1InstancesCustomersBlockchainWalletsByIdPatch Instances Customers Blockchain Wallets By IdAInspect
Declares whether the customer holds the private keys of this wallet. Only works while is_self_custody is null; once saved it cannot be changed.
Inputs: id (required), customer_id (required), instance_id (required), requestBody (required), +1 more.
PostV1EInstancesTosPost EInstances TosAInspect
Returns a URL where the end customer accepts BlindPay's terms of service. A person must open it in a browser and accept; it cannot be accepted through the API. After acceptance the browser is sent to redirect_url with tos_id as a query parameter, and a tos.accept webhook fires. Pass that tos_id (to_...) to Create Customer. idempotency_key is any unique string and cannot be reused.
Inputs: instance_id (required), requestBody (required).
PostV1InstancesCreateAssetTrustlinePost Instances Create Asset TrustlineDInspect
Create Asset Trustline
Inputs: instance_id (required), requestBody (required), Idempotency-Key.
PostV1InstancesCustomersPost Instances CustomersAInspect
Creates a customer and starts KYC (individuals) or KYB (businesses). Send the tos_id the customer received after accepting terms of service (see Initiate Terms of Service). Required fields depend on type and kyc_type. Individual, standard: first_name, last_name, date_of_birth, tax_id, address_line_1, city, state_province_region, postal_code, country, id_doc_country, id_doc_type, id_doc_front_file and selfie_file. Business, standard: legal_name, formation_date, tax_id, website, the same address fields, at least one entry in owners, incorporation_doc_file, proof_of_ownership_doc_file, proof_of_address_doc_type and proof_of_address_doc_file. kyc_type light is not available, and businesses only support standard. US state_province_region is a two-letter code. File fields are HTTPS URLs that BlindPay downloads, so they must be publicly fetchable; data: URIs are rejected. The customer starts with kyc_status verifying. Development instances approve it automatically.
Inputs: instance_id (required), requestBody (required), Idempotency-Key.
PostV1InstancesCustomersBankAccountsPost Instances Customers Bank AccountsAInspect
Adds a payout destination for a customer. Required fields depend on type (the rail): call Bank Details (GET /v1/available/bank-details) with the rail first for the exact field list and validation. For ach and wire: business_industry (a NAICS code from GET /v1/available/naics) is required when account_class is business, phone_number is required when country is BR, CN, CO, HK, MY, MX, PH, UG or UY, and tax_id is required when country is AR, BY, BR, CL, CN, CO, CR, EC, GT, HN, JP, KZ, KR, MX, PK, PE, PH, RU, TH or UY. A US state_province_region is a two-letter code. ach, wire and rtp are not available for light KYC customers.
Inputs: customer_id (required), instance_id (required), requestBody (required), Idempotency-Key.
PostV1InstancesCustomersBankAccountsOfframpWalletsPost Instances Customers Bank Accounts Offramp WalletsCInspect
Create Offramp Wallet
Inputs: customer_id (required), instance_id (required), requestBody (required), bank_account_id (required), +1 more.
PostV1InstancesCustomersBankAccountsPlaidPost Instances Customers Bank Accounts PlaidCInspect
Create Plaid Link
Inputs: customer_id (required), instance_id (required), requestBody.
PostV1InstancesCustomersBlockchainWalletsPost Instances Customers Blockchain WalletsCInspect
Add Blockchain Wallet
Inputs: customer_id (required), instance_id (required), requestBody (required), Idempotency-Key.
PostV1InstancesCustomersLimitIncreasePost Instances Customers Limit IncreaseDInspect
Request Limit Increase
Inputs: customer_id (required), instance_id (required), requestBody (required), Idempotency-Key.
PostV1InstancesCustomersRfiPost Instances Customers RfiAInspect
Submit a flat response object for the open RFI. On success flips kyc_status back to verifying. Returns { success: false, reason } when no pending RFI exists, callers should refetch the RFI state instead of retrying.
Inputs: customer_id (required), instance_id (required), requestBody, Idempotency-Key.
PostV1InstancesCustomersVirtualAccountsPost Instances Customers Virtual AccountsAInspect
Creates a virtual account that automatically converts inbound USD deposits (ACH, wire, RTP) into stablecoins sent to the linked wallet. Fees on these automated payins depend on the deposit amount: deposits below $100.00 accrue the BlindPay fee to your billing cycle (charged at the end of the month via the payin's billing_fee_amount), while deposits of $100.00 or more are charged at the time of the transaction (deducted from the delivered amount via transaction_fee_amount). Every deposit is processed regardless of size and always delivers at least $0.01 on-chain; a partner fee (optional partner_fee_id) is collected only from what remains after that.
Inputs: customer_id (required), instance_id (required), requestBody (required), Idempotency-Key.
PostV1InstancesCustomersWalletsPost Instances Customers WalletsDInspect
Create Wallet
Inputs: customer_id (required), instance_id (required), requestBody (required), Idempotency-Key.
PostV1InstancesCustomersWalletsYieldDisablePost Instances Customers Wallets Yield DisableAInspect
Turns yield off for the wallet. Returns the wallet, not the yield object. The wallet moves to disabling, the vault position is redeemed back to the wallet and any accrued fee is collected, then yield_status settles to disabled and a wallet.update webhook fires.
Inputs: id (required), customer_id (required), instance_id (required), Idempotency-Key.
PostV1InstancesCustomersWalletsYieldEnablePost Instances Customers Wallets Yield EnableAInspect
Turns yield on for the wallet. Returns the wallet, not the yield object: read yield_status here and use Retrieve Wallet Yield for positions. Idle balance is swept into the vault within the hour.
Inputs: id (required), customer_id (required), instance_id (required), Idempotency-Key.
PostV1InstancesMintUsdbSolanaPost Instances Mint Usdb SolanaCInspect
Mint USDB on Solana
Inputs: instance_id (required), requestBody (required), Idempotency-Key.
PostV1InstancesMintUsdbStellarPost Instances Mint Usdb StellarCInspect
Mint USDB on Stellar
Inputs: instance_id (required), requestBody (required), Idempotency-Key.
PostV1InstancesPartnerFeesPost Instances Partner FeesDInspect
Add Partner Fee
Inputs: instance_id (required), requestBody (required), Idempotency-Key.
PostV1InstancesPayablesPost Instances PayablesCInspect
Create Payable
Inputs: instance_id (required), requestBody (required), Idempotency-Key.
PostV1InstancesPayinQuotesPost Instances Payin QuotesAInspect
Prices a payin from a local payment method into a stablecoin wallet. Send one of wallet_id (BlindPay-managed wallet) or blockchain_wallet_id. Do not send a network: the wallet decides where the tokens are delivered. request_amount is in cents; the minimum depends on the currency (1000, which is 10.00, for USD and BRL) and OTC quotes have a higher minimum. funding_bank_account_id is required when payment_method is ach_pull. The quote expires 5 minutes after creation, or 10 seconds for OTC quotes; create the payin with Create Payin before then.
Inputs: instance_id (required), requestBody (required), Idempotency-Key.
PostV1InstancesPayinQuotesFxPost Instances Payin Quotes FxCInspect
Get FX Rate
Inputs: instance_id (required), requestBody (required), Idempotency-Key.
PostV1InstancesPayinsCardPaymentPost Instances Payins Card PaymentCInspect
Submit Card Payment
Inputs: payin_id (required), instance_id (required), requestBody (required).
PostV1InstancesPayinsEvmPost Instances Payins EvmAInspect
Creates a payin from a payin quote and returns the instructions the payer uses to send funds (for example a Pix code or bank details). Create it before the payin quote expires. Send an Idempotency-Key header so a retry cannot create a second payin. On development instances the payin completes on its own about 30 seconds after creation; request_amount 66600 makes it fail and 77700 makes it refunded.
Inputs: instance_id (required), requestBody (required), Idempotency-Key.
PostV1InstancesPayoutsDocumentsPost Instances Payouts DocumentsAInspect
Submit a compliance document for a payout. SWIFT payouts waiting for documents require it and the submission resumes the compliance review; the optional payment description is written to the SWIFT memo. Other rails (wire, ACH, RTP, Pix and so on) may attach an optional document while the payout is processing or completed. It is stored for compliance without changing the payout status or tracking, the description is ignored, and submitting again replaces the previous document.
Inputs: id (required), instance_id (required), requestBody (required), Idempotency-Key.
PostV1InstancesPayoutsEvmPost Instances Payouts EvmAInspect
Executes a payout quote. Despite the name, this is the endpoint for payouts funded from a BlindPay-managed wallet on any network, Solana included; self-custodied EVM wallets must approve the token first. Execute before the quote expires (5 minutes). Send an Idempotency-Key header so a retry cannot create a second payout. On development instances the payout completes on its own; request_amount 66600 makes it fail and 77700 makes it refunded.
Inputs: instance_id (required), requestBody (required), Idempotency-Key.
PostV1InstancesPayoutsSolanaPost Instances Payouts SolanaCInspect
Create Payout on Solana
Inputs: instance_id (required), requestBody (required), Idempotency-Key.
PostV1InstancesPayoutsStellarPost Instances Payouts StellarCInspect
Create Payout on Stellar
Inputs: instance_id (required), requestBody (required), Idempotency-Key.
PostV1InstancesPayoutsStellarAuthorizePost Instances Payouts Stellar AuthorizeDInspect
Authorize Token Stellar
Inputs: instance_id (required), requestBody (required), Idempotency-Key.
PostV1InstancesPrepareDelegateSolanaPost Instances Prepare Delegate SolanaBInspect
Prepares a delegation transaction for Solana token transfers. You can either provide a quote_id (recommended) to automatically use the correct token amount and address from the quote, or manually provide owner_address, token_address, and amount.
Inputs: instance_id (required), requestBody (required), Idempotency-Key.
PostV1InstancesQuotesPost Instances QuotesAInspect
Prices a payout. Send exactly one of bank_account_id or payable_id. request_amount is in cents (1000 means 10.00) and currency_type says whether it is what the sender pays or what the receiver gets. The quote expires 5 minutes after creation (expires_at is epoch milliseconds) and is single-use: execute it with Create Payout on EVM Chains for BlindPay-managed wallets on any network, Solana included, or with the Solana or Stellar payout endpoints for self-custodied wallets.
Inputs: instance_id (required), requestBody (required), Idempotency-Key.
PostV1InstancesQuotesFxPost Instances Quotes FxDInspect
Get FX Rate
Inputs: instance_id (required), requestBody (required), Idempotency-Key.
PostV1InstancesRfiPost Instances RfiBInspect
Submit a flat response object for the open instance RFI. Standalone: submitting does not change any instance or onboarding status. Returns { success: false, reason } when no pending RFI exists, callers should refetch the RFI state instead of retrying.
Inputs: instance_id (required), requestBody.
PostV1InstancesTransferQuotesPost Instances Transfer QuotesDInspect
Create Transfer Quote
Inputs: instance_id (required), requestBody (required), Idempotency-Key.
PostV1InstancesTransfersPost Instances TransfersDInspect
Create Transfer
Inputs: instance_id (required), requestBody (required), Idempotency-Key.
PostV1InstancesWebhookEndpointsPost Instances Webhook EndpointsAInspect
Registers an HTTPS endpoint that receives the listed events. Event names and payload schemas are in the webhooks section of this API reference (and in the MCP resource blindpay://webhooks/events). Deliveries are signed with Svix; read the signing secret with Retrieve Webhook Secret and verify every delivery.
Inputs: instance_id (required), requestBody (required), Idempotency-Key.
PostV1PresignPost PresignDInspect
Presign File URL
Inputs: instance_id (required), requestBody (required).
PutInstancesCustomersBankAccountsOfframpWalletsByIdPut Instances Customers Bank Accounts Offramp Wallets By IdDIdempotentInspect
Update Offramp Wallet
Inputs: id (required), customer_id (required), instance_id (required), bank_account_id (required), +2 more.
PutV1InstancesByIdPut Instances By IdDIdempotentInspect
Update Instance
Inputs: id (required), requestBody (required), Idempotency-Key.
PutV1InstancesCustomersByIdPut Instances Customers By IdCIdempotentInspect
Update Customer
Inputs: id (required), instance_id (required), requestBody (required), Idempotency-Key.
PutV1InstancesCustomersVirtualAccountsByIdPut Instances Customers Virtual Accounts By IdDIdempotentInspect
Update Virtual Account
Inputs: id (required), customer_id (required), instance_id (required), requestBody (required), +1 more.
PutV1InstancesMembersByUserIdPut Instances Members By User IdCIdempotentInspect
Update Instance Member Role
Inputs: id (required), user_id (required), requestBody (required), Idempotency-Key.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 93 tools
The domain is broad and many tools target closely related resources: payin quotes vs payout quotes vs transfer quotes vs FX quotes, and payouts split across EVM/Solana/Stellar endpoints. Descriptions clarify boundaries for expert readers, but an agent selecting from 93 OpenAPI-derived names will likely confuse overlapping quote, payout, wallet, and bank-account operations.
Most tools follow an HTTP-method + versioned-path convention, so the pattern is recognizable despite being verbose and API-centric rather than action-oriented. However, there are deviations such as missing V1 segments, a typo-like PostV1EInstancesTos, and mixed semantic clarity across similar endpoints.
93 tools is extremely large for an MCP server and far exceeds typical agent-friendly scoping. While the financial API is broad, this surface is heavy enough to cause context overload and poor tool selection.
The surface covers a wide lifecycle across customers, KYC/KYB, bank accounts, wallets, virtual accounts, blockchain wallets, payins, payouts, transfers, payables, webhooks, onboarding, RFI, yield, and available rails. There are minor gaps such as missing delete for virtual accounts and no obvious member-invite operation, but core workflows are broadly represented.
Maintenance
Related MCP Connectors
Non-custodial crypto payments for AI assistants: balances, payments, and create payment links.
Financial intelligence for AI: manage balances, transactions, payments, and more
Stablecoin payments for AI agents: customers, quotes, transfers, payment routes.
Crypto payments for AI agents: self-serve account, invoices, receiving, payouts, exchange.
Related MCP Servers
AlicenseBqualityBmaintenanceEnables AI agents to manage stablecoin payments including customer management, quotes, transfers, virtual accounts, and webhooks via the Stables API.55261 npmMIT
@payre/mcpofficial
AlicenseAqualityCmaintenanceEnables AI assistants to securely interact with Payre's Web3 payment gateway for generating crypto checkout invoices, monitoring settlements, managing payout destinations, and inspecting analytics.18MIT- FlicenseNot gradedqualityAmaintenanceEnables AI coding agents to add stablecoin checkout, payment links, payment status checks, webhook verification, and webhook-based entitlement logic to applications. It also provides tools for workspace registration, settlement and webhook configuration, paylink creation, and crypto payment status checks.-
- AlicenseBqualityCmaintenanceEnables AI agents to manage TheyPaid accounts, stores, connected wallets, and service credits, and to create invoices or payment links and monitor payment status through natural-language workflows.33MIT