Documentation Index Fetch the complete documentation index at: https://docs.bread.africa/llms.txt
Use this file to discover all available pages before exploring further.
Overview
Bread provides comprehensive cryptocurrency wallet management capabilities. Each wallet supports both EVM (Ethereum Virtual Machine) and SVM (Solana Virtual Machine) networks, giving you access to a wide range of blockchain ecosystems with complete automation options.
Key Features
Multi-chain Support : Every wallet includes both EVM and SVM addresses
Wallet Types : Basic, Offramp, Transfer and Swap wallets for different use cases
Fully Automated : Configure automatic operations based on incoming deposits
Secure Management : Enterprise-grade security for wallet creation and management
100% Gasless : Transactions across supported chains without worrying about gas fees
Automation
Bread offers various wallets, each designed for specific use cases:
Use Case : Manual control over all operationsBasic wallets provide full manual control without any automation. Perfect for applications that need to handle transfers, swaps, and offramps programmatically via API calls. curl -X POST "https://api.bread.africa/wallet" \
-H "x-service-key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"reference": "user-123-basic-wallet"
}'
Features:
Manual transfers via API
Manual swaps via API
Manual offramps via API
Full programmatic control
Use Case : Automatically convert crypto to fiatOfframp wallets automatically convert any incoming cryptocurrency deposits to fiat currency and transfer funds to a specified bank account. curl -X POST "https://api.bread.africa/wallet" \
-H "x-service-key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"offramp": true,
"beneficiary_id": "68bf2eba196a18d7bd166184",
"reference": "user-123-offramp-wallet"
}'
Features:
Automatic crypto-to-fiat conversion
Direct bank transfers
Real-time exchange rates
Single beneficiary per wallet
Use Case : Centralized asset managementTransfer wallets automatically transfer all incoming deposits to your internal settlement wallet for centralized management. curl -X POST "https://api.bread.africa/wallet" \
-H "x-service-key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"transfer": true,
"reference": "user-123-transfer-wallet"
}'
Features:
Automatic asset consolidation
Transfer to settlement wallet
Centralized fund management
Simplified accounting
Use Case : Automatic asset conversionSwap wallets automatically convert incoming deposits to your preferred cryptocurrency asset across different blockchains. curl -X POST "https://api.bread.africa/wallet" \
-H "x-service-key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"swap": true,
"reference": "user-123-swap-wallet"
}'
Features:
Automatic crypto-to-crypto conversion
Cross-chain swaps
Configurable target assets
Optimal exchange rates
Target asset configuration is managed via the dashboard or asset configuration API endpoint.
Response Format:
{
"success" : true ,
"status" : 201 ,
"message" : "Wallet created successfully" ,
"timestamp" : "2025-09-08T02:03:46.201Z" ,
"data" : {
"reference" : "user-123-basic-wallet" ,
"wallet_id" : "68be398168e841ce24c576af" ,
"address" : {
"evm" : "0x77373761e1a69BB6daF15eFb8dD3959BEE34E98D" ,
"svm" : "ekKeWZ6x3xDs1sdVQ4KHfZ5Eq5p6UyitHQtCemTtLgn"
}
}
}
Set Automation
Change automation settings for existing wallets:
curl -X POST "https://api.bread.africa/automate" \
-H "x-service-key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"wallet_id": "68bc290df51feea8c53f5275",
"offramp": true,
"beneficiary_id": "68bf2eba196a18d7bd166184",
"transfer": false,
"swap": false
}'
Supported Assets
Bread supports USDC, USDT, and CNGN across multiple blockchains. For list of supported assets and their blockchain networks, Check here .
A dual-address system that allows your users to receive assets across the most popular blockchains without needing separate wallets.
You can use amount: -1 to indicate all available balance of an asset.
Integration
const axios = require ( 'axios' );
class BreadWallet {
constructor ( apiKey ) {
this . apiKey = apiKey ;
this . baseURL = 'https://api.bread.africa' ;
this . headers = {
'x-service-key' : apiKey ,
'Content-Type' : 'application/json'
};
}
async createBasicWallet ( reference ) {
const response = await axios . post ( ` ${ this . baseURL } /wallet` , {
reference
}, { headers: this . headers });
return response . data ;
}
async createOfframpWallet ( beneficiaryId , reference ) {
const response = await axios . post ( ` ${ this . baseURL } /wallet` , {
offramp: true ,
beneficiary_id: beneficiaryId ,
reference
}, { headers: this . headers });
return response . data ;
}
async getWallet ( walletId ) {
const response = await axios . get ( ` ${ this . baseURL } /wallet` , {
headers: { 'x-service-key' : this . apiKey },
params: { wallet_id: walletId }
});
return response . data ;
}
async getWalletBalances ( walletId ) {
const response = await axios . get ( ` ${ this . baseURL } /balances` , {
headers: { 'x-service-key' : this . apiKey },
params: { wallet_id: walletId }
});
return response . data ;
}
async transferAssets ( walletId , amount , receiver , asset ) {
const response = await axios . post ( ` ${ this . baseURL } /transfer` , {
wallet_id: walletId ,
amount ,
receiver ,
asset
}, { headers: this . headers });
return response . data ;
}
async updateAutomation ( walletId , automation ) {
const response = await axios . post ( ` ${ this . baseURL } /automate` , {
wallet_id: walletId ,
... automation
}, { headers: this . headers });
return response . data ;
}
}
// Usage example
const bread = new BreadWallet ( 'your-api-key' );
// Create different wallet types
const basicWallet = await bread . createBasicWallet ( 'user-123-basic' );
const offrampWallet = await bread . createOfframpWallet (
'68bf2eba196a18d7bd166184' ,
'user-123-offramp'
);
// Get wallet info
const walletInfo = await bread . getWallet ( basicWallet . data . wallet_id );
// Check balances
const balances = await bread . getWalletBalances ( basicWallet . data . wallet_id );
// Transfer assets
const transfer = await bread . transferAssets (
basicWallet . data . wallet_id ,
100 ,
'0x4ad21FA456Bb297f505B2718ba87ad63D8a95E6B' ,
'base:usdc'
);
import requests
class BreadWallet :
def __init__ ( self , api_key ):
self .api_key = api_key
self .base_url = 'https://api.bread.africa'
self .headers = {
'x-service-key' : api_key,
'Content-Type' : 'application/json'
}
def create_basic_wallet ( self , reference ):
response = requests.post(
f ' { self .base_url } /wallet' ,
headers = self .headers,
json = { 'reference' : reference}
)
return response.json()
def create_offramp_wallet ( self , beneficiary_id , reference ):
response = requests.post(
f ' { self .base_url } /wallet' ,
headers = self .headers,
json = {
'offramp' : True ,
'beneficiary_id' : beneficiary_id,
'reference' : reference
}
)
return response.json()
def get_wallet ( self , wallet_id ):
response = requests.get(
f ' { self .base_url } /wallet' ,
headers = { 'x-service-key' : self .api_key},
params = { 'wallet_id' : wallet_id}
)
return response.json()
def get_wallet_balances ( self , wallet_id ):
response = requests.get(
f ' { self .base_url } /balances' ,
headers = { 'x-service-key' : self .api_key},
params = { 'wallet_id' : wallet_id}
)
return response.json()
def transfer_assets ( self , wallet_id , amount , receiver , asset ):
response = requests.post(
f ' { self .base_url } /transfer' ,
headers = self .headers,
json = {
'wallet_id' : wallet_id,
'amount' : amount,
'receiver' : receiver,
'asset' : asset
}
)
return response.json()
def update_automation ( self , wallet_id , ** automation ):
response = requests.post(
f ' { self .base_url } /automate' ,
headers = self .headers,
json = { 'wallet_id' : wallet_id, ** automation}
)
return response.json()
# Usage example
bread = BreadWallet( 'your-api-key' )
# Create different wallet types
basic_wallet = bread.create_basic_wallet( 'user-123-basic' )
offramp_wallet = bread.create_offramp_wallet(
'68bf2eba196a18d7bd166184' ,
'user-123-offramp'
)
# Get wallet info
wallet_info = bread.get_wallet(basic_wallet[ 'data' ][ 'wallet_id' ])
# Check balances
balances = bread.get_wallet_balances(basic_wallet[ 'data' ][ 'wallet_id' ])
# Transfer assets
transfer = bread.transfer_assets(
basic_wallet[ 'data' ][ 'wallet_id' ],
100 ,
'0x4ad21FA456Bb297f505B2718ba87ad63D8a95E6B' ,
'base:usdc'
)
Need Help?
Our team is here to help you succeed with wallet integration: