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:- Create a mint destination address - Register the blockchain address where minted stablecoins will be sent
- Create mint instructions - Set up the minting configuration linking the identity, destination address, and payment details
- Send a wire transfer - Initiate the mint by sending USD to the provided bank account with the memo ID
- 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 thememo_idandbank_account_detailsfrom 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_idfrom 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.
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
- Use unique request IDs: Always generate a new UUID for each
request_idto ensure idempotency. - Verify bank details: Double-check the bank account details before initiating wire transfers.
- Include memo ID: Always include the exact
memo_idin your wire transfer memo field. - Monitor status: Use webhooks or polling to track mint progress.
- Test on Devnet: Use Solana Devnet or Base Sepolia for testing before moving to production.