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 are delivered to a specified blockchain address.

Overview

The minting process involves several steps:
  1. Create a mint destination address - Register the blockchain address where minted stablecoins will be sent
  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 minted stablecoins will be delivered.

Request

Request parameters

Response

Step 2: create mint instructions

Create mint instructions that specify how mints should be processed, 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, the mint cannot be processed.
  • 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 the wire transfer is received and verified, Bastion will automatically mint the equivalent amount of stablecoins and send them to your registered mint destination address.

Initiating test mints in sandbox

In sandbox you may simulate a wire transfer via the Simulate Fiat Deposit endpoint. Calling this endpoint with the request body provided below will trigger a test mint. The ID of the triggered mint will be returned in the response.

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.