Payouts

Convert stablecoins to fiat by moving funds from a sender wallet to a customer's bank account across EVM, Stellar, and Solana.

What it is

A payout moves funds from the sender's wallet to a customer's bank account. Stablecoins stored in a BlindPay-managed wallet can also be used as the source of funds.

A payout can only execute after a quote is created, and the quote expires 5 minutes after creation. Review how BlindPay manages stablecoins in the flow of funds explanation.

How it works

BlindPay supports payouts on EVM chains, Stellar, and Solana. On development instances, the test token is always USDB — a BlindPay-powered ERC20 stablecoin used to simulate payouts. See Supported Chains for the full chain and token matrix across all features.

Each network uses a distinct authorization mechanism before the payout executes:

NetworkTest networkAuthorization mechanism
EVMBase Sepolia TestnetERC20 approve on the token contract
StellarStellar TestnetAuthorize endpoint + signed XDR transaction
SolanaSolana DevnetToken delegation (prepare + signed transaction)

Payout lifecycle: create a quote, authorize the tokens for the chosen network, then create the payout before the quote expires.

How to mint USDB

USDB is a fake ERC20 stablecoin powered by BlindPay to simulate payouts on development instances. You can mint infinite USDB on EVM chains, but the wallet needs Ether to pay gas — get some from the Base Sepolia faucet.

Put your instance_id on the following url https://app.blindpay.com/instances/<instance_id>/utilities/mint and mint USDB on Base Sepolia Testnet.

Remember: we're using Base Sepolia Testnet in all the examples below, so please double check you're doing everything on the correct network.

Mint on Stellar

USDB can also be minted on Stellar Testnet.

Stellar Testnet USDB issuer: GCQSSIMOW5OCGULZATDXKU5MOJBOMFX6G65X6CXZDQ7AIB3SKFUZ67NX

Step 1: Create Asset Trustline (Only required once)

Before you can receive USDB tokens, you need to create a trustline to the USDB asset. This is a one-time setup that you only need to do once per wallet.

Bash

This will return an unsigned XDR transaction:

JSON

Step 2: Sign and Submit the Trustline Transaction

You have two options to complete the trustline setup. Choose only one:

Option A: Sign and submit manually

  1. Sign the XDR using your Stellar wallet (or use Stellar Lab)
  2. Submit the signed transaction to the Stellar network yourself

Option B: Let BlindPay submit it for you

  1. Sign the XDR using your Stellar wallet
  2. Pass the signedXdr to the mint endpoint in the next step - BlindPay will submit the trustline transaction for you

Step 3: Mint USDB Tokens

After your trustline is established, you can mint USDB tokens:

Put your wallet address, the amount, and optionally the signedXdr (if you chose Option B above) on the following url https://api.blindpay.com/v1/instances/{instance_id}/mint-usdb-stellar.

Bash

Important: Use the same wallet address that you used when creating your blockchain wallet in the blockchain wallets section. The trustline setup is only required once per wallet.

Mint on Solana

USDB can also be minted on Solana Devnet. Put your wallet address and the amount on the following endpoint:

Bash

This will return:

JSON

Prerequisites

Create a payout

The EVM flow is the primary path. All stablecoins supported by BlindPay are ERC20 tokens, so you call the approve method on the token contract to allow BlindPay to move funds from a blockchain wallet.

If you're using Stellar or Solana, you'll use a different delegation process instead of ERC20 approvals. See the Stellar and Solana sections below for blockchain-specific instructions.

Approving tokens

Before approving the tokens, you need to have:

  1. A RPC provider URL from Base Sepolia Testnet
  2. A blockchain wallet with enough funds to execute the transaction
  3. The private key or any way to instantiate the blockchain wallet using ethers.js
  4. ERC20 token contract address (Provided by BlindPay on Quote API response)
  5. ERC20 ABI (Provided by BlindPay on Quote API response)
  6. BlindPay smart contract address (Provided by BlindPay on Quote API response)

This example uses an express.js server and the ethers.js library to simulate an approval. Ensure Node.js is installed.

Create a folder called approve-erc20. Inside the folder, run:

Bash

Install the dependencies:

Bash

Create a file called index.js inside it, paste the code below and replace the values with your own.

JavaScript
index.js

Run the code:

Bash

Access http://localhost:3000 and after a few seconds you should see a result like this in your browser:

JSON

Creating a payout on EVM chains

Check the required fields in the BlindPay API Docs.

Before creating a payout, complete the prerequisites, then generate a quote and approve the tokens.

Remember: replace YOUR_SECRET_TOKEN with your API key and in_000000000000 with your instance ID.
Bash
cURL

Creating a payout on Stellar

Check the required fields in the BlindPay API Docs.

BlindPay Stellar mainnet wallet: GCOSSQDM2SWMHRP7CDBOLL2V45NHCRLUWUCEHPPBA2ABCOOLPOLZKIHE. This is the treasury wallet that receives payout crypto and sends payin crypto on Stellar mainnet.

Remember: replace YOUR_SECRET_TOKEN with your API key and in_000000000000 with your instance ID.

Authorizing a token on Stellar

Bash
cURL

This endpoint will return a transaction hash that you can use to execute the payout.

JSON

With this hash we can create the transaction on Stellar.

First, install the dependencies:

Bash

Create a file called index.js inside it, paste the code below and replace the values with your own.

JavaScript

::

Run the code:

Bash

Create the payout on BlindPay using the hash that you got from the result.

Bash
cURL

Congratulations! You've completed your first payout using BlindPay. If you want to execute more payouts you need to create a new quote and approve the tokens again.

Creating a payout on Solana

Check the required fields in the BlindPay API Docs.

Remember: replace YOUR_SECRET_TOKEN with your API key and in_000000000000 with your instance ID.

Solana payouts require a token delegation before executing the payout. Sign and submit a delegation transaction before calling the payout API.

Step 1: Prepare the Delegation Transaction

First, call the BlindPay API to prepare a delegation transaction:

Bash

This will return a serialized transaction that you need to sign:

JSON

Step 2: Sign and Submit the Delegation

Install the Solana dependencies:

Bash

Create a file called solana-delegate.js:

JavaScript

Run the delegation:

Bash

Step 3: Create the Payout on BlindPay

After the delegation is confirmed, you can create the payout using the /payouts/evm endpoint (same as EVM and Stellar):

Bash
cURL

Congratulations! You've completed your first Solana payout using BlindPay. The /payouts/evm endpoint supports EVM chains, Stellar, and Solana networks.

Note: For each Solana payout, you need to complete the delegation process (Steps 1-2) before creating the payout. The delegation authorizes BlindPay to pull the specified amount of tokens from your wallet.

Testing scenarios

By default all payouts are automatically completed in development instances. Force refund and failed scenarios by setting specific values for the payout amount.

AmountResult Status
666.00Failed
777.00Refunded