Skip to main content

Mint Bastion-issued stablecoins

This guide walks you through the process of minting stablecoins using Bastion’s Issuance API. Minting converts fiat currency (USD) into stablecoins that Bastion delivers to a specified blockchain address.

Overview

The minting process involves several steps:
  1. Create a mint destination address - Register the blockchain address where Bastion sends minted stablecoins
  2. Create mint instructions - Set up the minting configuration linking the identity, destination address, and payment details
  3. Send a wire transfer - Initiate the mint by sending USD to the provided bank account with the memo ID
  4. Monitor the mint - Track the status of your mint request

Prerequisites

Before you begin, ensure you have:
  • A valid API key with issuance permissions
  • An approved Business identity created for the minting entity
    • Note that Issuance is not supported for Individual identities at this moment
  • A blockchain wallet address on a supported chain (Solana Mainnet, Solana Devnet, or Base Sepolia)

Step 1: create a mint destination address

First, register the blockchain address where Bastion delivers minted stablecoins.

Request

Request parameters

Response

Step 2: create mint instructions

Create mint instructions that specify how Bastion processes mints, including the destination address and payment details.

Request

Request parameters

Response

Important: Save the memo_id and bank_account_details from the response. You’ll need these to initiate the wire transfer.

Step 3: initiate the mint (wire transfer)

To mint stablecoins, send a wire transfer to the bank account provided in the mint instructions response. Critical requirements:
  • Include the memo ID: The wire transfer must include the memo_id from Step 2 in the memo/reference field. Without this, Bastion cannot process the mint.
  • Use the correct bank details: Send funds to the exact bank account details provided in bank_account_details.
  • Supported currency: Only USD wire transfers are currently supported.
Once Bastion receives and verifies the wire transfer, it automatically mints the equivalent amount of stablecoins and sends them to your registered mint destination address.

Initiating test mints in sandbox

In sandbox you can simulate a wire transfer via the Simulate Fiat Deposit endpoint. Call this endpoint with the request body below to trigger a test mint. The response returns the ID of the triggered mint.

Request

Response

Step 4: monitor mint status

List all mints

Query parameters

Response

Get a specific mint

Response

Mint status values

Additional endpoints

List mint destination addresses

Get mint destination address

List mint instructions

Get mint instructions

Supported chains

Error handling

Webhooks

Configure webhooks to receive real-time notifications when mint status changes. See the Webhooks documentation for setup instructions.

Best practices

  1. Use unique request IDs: Always generate a new UUID for each request_id to ensure idempotency.
  2. Verify bank details: Double-check the bank account details before initiating wire transfers.
  3. Include memo ID: Always include the exact memo_id in your wire transfer memo field.
  4. Monitor status: Use webhooks or polling to track mint progress.
  5. Test on Devnet: Use Solana Devnet or Base Sepolia for testing before moving to production.