Skip to main content

Before you start

Set up your project and get an API key.
Enterprise feature. Contact us for access.
Crossmint Payouts enable you to send compliant stablecoin payouts from your treasury wallet, using the Transfer Token API. Crossmint automatically handles compliance so if the payout does not meet regulatory requirements, the call will fail.
1

Install the SDK

Run the following command to install the SDK:
npm i @crossmint/wallets-sdk
2

Get your treasury wallet

Retrieve your treasury wallet using the alias:
import { CrossmintWallets, createCrossmint } from "@crossmint/wallets-sdk";

const crossmint = createCrossmint({
    apiKey: "<your-server-api-key>",
});

const crossmintWallets = CrossmintWallets.from(crossmint);

const treasuryLocator = "evm:smart:alias:treasury"; // your treasury wallet alias

const treasuryWallet = await crossmintWallets.getWallet(treasuryLocator, {
    chain: "base-sepolia",
});

await treasuryWallet.useSigner({ type: "server", secret: process.env.WALLET_SIGNER_SECRET! });
Create a treasury wallet if you do not have one already here.
3

Create recipient wallet

Create a wallet for the recipient to receive funds in:
const userLocator = "userId:johnd-123";

const wallet = await crossmintWallets.createWallet({
    chain: "base-sepolia",
    recovery: {
        type: "email",
        email: "johnd@example.com"
    },
    owner: userLocator
});

console.log(wallet.address);
4

Register recipient as user

Register the recipient as a user with Crossmint and provide the required user details to facilitate a compliant money transfer:
const userLocator = "userId:johnd-123";

const options = {
    method: 'PUT',
    headers: {'X-API-KEY': '<your-server-api-key>', 'Content-Type': 'application/json'},
    body: JSON.stringify({
        userDetails: {
            firstName: "John",
            lastName: "Doe",
            dateOfBirth: "1995-01-01",
            countryOfResidence: "DE"
        }
    })
};

fetch(`https://staging.crossmint.com/api/2025-06-09/users/${userLocator}`, options)
    .then(response => response.json())
    .then(response => console.log(response))
    .catch(err => console.error(err));
5

Send payout

Send a payout from your treasury wallet. The API will automatically check compliance requirements. If the payout does not meet regulatory requirements (e.g., missing KYC/KYB, sanctions issues, travel rule violations), the call will fail with an error.
try {
    const { hash, explorerLink } = await treasuryWallet.send(
        userLocator,
        "usdc",
        "100"
    );
    
    console.log(`Transfer successful: ${hash}`);
    console.log(`Explorer: ${explorerLink}`);
} catch (error) {
    // The payout will fail if compliance requirements are not met
    // Common reasons: missing KYC/KYB, sanctions checks, travel rule violations
    console.error("Transfer failed:", error.message);
}
Signing transactions (REST API): The cURL and Python examples above use the simplified Transfer Token endpoint. If your integration requires custom transaction signing, see the full create → sign → approve flow in Send a Transaction (EVM) — REST tab.
The transfer API automatically performs compliance checks. If the payout fails due to compliance issues, you will receive an error message indicating what requirements were not met.

Compliance Requirements

Payouts will fail if they do not meet regulatory requirements:
  • AML Screening: Automatic screening against sanctions lists and watchlists
  • Travel Rule Compliance: Required data exchange for cross-border transfers
  • Transaction Limits: Adherence to regulatory thresholds and limits
If a payout fails, check the error message for specific compliance requirements that need to be addressed.

Launching in Production

For production, the steps are almost identical, but some changes are required:
  1. Create a developer account on the production console
  2. Create a production server API key on the API Keys page with the API scopes wallets.read, wallets:transactions.create, wallets:transactions.sign
  3. Replace your test API key with the production key
  4. Ensure all compliance requirements are configured for your production environment

Learn More

Payouts Overview

Learn more about payouts and compliance features.

Transfer Tokens Guide

Detailed guide on transferring tokens between wallets.

Treasury Wallet

Learn about managing your treasury wallet.

API Reference

Deep dive into API reference docs.

Talk to an expert

Contact the Crossmint sales team for support.