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:- Create a mint destination address - Register the blockchain address where Bastion sends minted stablecoins
- 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 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 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, 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.
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
- 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.