Skip to main content
Enterprise feature. Contact us for access.
Crossmint’s Regulated Transfers enable you to send compliant stablecoin transfers from your treasury wallet. The same wallet transfer API automatically handles compliance—if the transfer doesn’t 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:
index.ts
import { CrossmintWallets, createCrossmint } from "@crossmint/wallets-sdk";

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

const crossmintWallets = CrossmintWallets.from(crossmint);

const treasuryWallet = await crossmintWallets.getWallet({
    chain: "<your-chain>",
    alias: "treasury",
});
3

Send a regulated transfer

Send a transfer from your treasury wallet. The API will automatically check compliance requirements. If the transfer doesn’t meet regulatory requirements (e.g., missing KYC/KYB, sanctions issues, travel rule violations), the call will fail with an error.
index.ts
try {
    const { hash, explorerLink } = await treasuryWallet.send(
        "recipient-wallet-address",
        "solana:usdc",
        "100.00"
    );
    
    console.log(`Transfer successful: ${hash}`);
    console.log(`Explorer: ${explorerLink}`);
} catch (error) {
    // The transfer will fail if compliance requirements aren't met
    // Common reasons: missing KYC/KYB, sanctions checks, travel rule violations
    console.error("Transfer failed:", error.message);
}
Note: The transfer API automatically performs compliance checks. If the transfer fails due to compliance issues, you’ll receive an error message indicating what requirements weren’t met. Ensure both sender and recipient have completed necessary KYC/KYB verification before attempting transfers.

Compliance Requirements

Transfers will fail if they don’t meet regulatory requirements:
  • KYC/KYB Verification: Both sender and recipient must have completed appropriate verification
  • 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 transfer 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