Follow along and build as you read. By the end you’ll have a working stablecoin payment flow.
What you’ll build
By the end of this guide you will have:- A Blockradar account and a master wallet on testnet
- Child addresses generated and tied to your users
- A webhook handler receiving real-time deposit events
- A pattern for updating user balances after a deposit
Step 1: Create your account
Sign up
Visit dashboard.blockradar.co/signup and complete the onboarding process. It takes under 60 seconds.
Step 2: Create a master wallet
What is a master wallet?
The master wallet is the foundation of your stablecoin infrastructure. Think of it as your treasury, it holds control over all the child addresses you create for your users. Each master wallet is tied to a specific blockchain, so if you want to support deposits on Ethereum, Base, and BNB Chain, you’ll create a separate master wallet for each.Create your first wallet
Select a network
Choose Base Sepolia (Testnet) to follow this guide. You can create wallets on other chains later.
Step 3: Generate addresses for your users
What are child addresses?
When a user onboards to your app and needs to receive stablecoins, they need a wallet address, like a bank account number, but on the blockchain. In Blockradar, these are called child addresses. They are generated under your master wallet and inherit its network configuration.Addresses generated on any EVM-compatible chain (Base, Ethereum, BNB Chain, etc.) work across all EVM chains. One address covers all your EVM networks.
Generate an address via API
Call this endpoint when a user signs up on your platform:Where to find your walletId and API key
- Go to your master wallet in the dashboard
- Scroll down to the API Config section
- Click the reveal icon (you’ll need to pass 2FA)
- Copy both your API Key and Wallet ID
The metadata field
Themetadata object is one of the most important parts of this request. Anything you attach here will be included in every webhook Blockradar sends for that address, deposits, withdrawals, sweeps. This is how your backend identifies which user a transaction belongs to.
user_id in metadata so you can map every deposit directly to a user in your database without any additional lookups.
Step 4: Configure auto sweep and gasless transactions
Auto sweep
When auto sweep is enabled (disableAutoSweep: false), funds deposited to a child address are automatically consolidated into your master wallet. This keeps treasury management simple, all funds sit in one place, and you track user balances in your own database.
Testnet faucets for gas tokens:
| Network | Token | Faucet |
|---|---|---|
| Base Sepolia | ETH | alchemy.com/faucets/base-sepolia |
| Ethereum Sepolia | ETH | alchemy.com/faucets/ethereum-sepolia |
| BNB Testnet | BNB | bnbchain.org/en/testnet-faucet |
| Polygon Testnet | MATIC | faucet.polygon.technology |
| Tron Testnet | TRX | nileex.io |
| Solana Devnet | SOL | faucet.solana.com |
| Celo Alfajores | CELO | faucet.celo.org/alfajores |
| Avalanche Fuji | AVAX | core.app/tools/testnet-faucet |
| Network | Token | Faucet |
|---|---|---|
| Base / Ethereum / Polygon / Solana | USDC | faucet.circle.com |
| BNB Testnet | USDT | bnbchain.org/en/testnet-faucet |
Gasless transactions
WhenenableGaslessWithdraw: true, your users can send stablecoins from their address without holding any native tokens. Your master wallet covers the gas on their behalf. This removes the biggest UX friction in crypto onboarding.
Set defaults globally
Instead of configuring each address individually, you can set defaults for the entire master wallet:- Go to your master wallet
- Click Configurations
- Set
disableAutoSweepandenableGaslessWithdraw
Configuration set at the address level overrides the master wallet config. Use address-level config only when you need exceptions.
Step 5: Set up webhooks
Blockradar uses webhooks to notify your backend when blockchain events happen, deposits, withdrawals, sweeps, and more. Set this up before testing transactions.Register your webhook endpoint
- Go to your master wallet in the dashboard
- Click Developer → Webhook
- Enter your backend endpoint URL (must be a
POSTendpoint)
Handle webhooks in your backend
Common webhook events
| Event | Description |
|---|---|
deposit.success | A deposit was received at a child address |
deposit.swept.success | Funds were swept from a child address to the master wallet |
withdraw.success | A withdrawal was sent successfully |
swap.success | A swap was executed successfully |
Full webhook reference
See all event types, payload schemas, retry logic, and HMAC verification.
Step 6: Handle a deposit event
When a user sends USDC to their address, Blockradar fires adeposit.success event to your webhook endpoint.
Sample payload
How to process it
Identify the user
Extract
metadata.user_id from the payload. This maps the deposit to a user in your database.Read the amount
Use
data.amountPaid to determine how much was deposited. Apply any deposit fee by subtracting from this value before saving.What you’ve built
You now have a complete stablecoin payment flow:- A master wallet on testnet
- Child addresses tied to users via metadata
- Auto sweep consolidating funds into your treasury
- Gasless transactions removing friction for your users
- A webhook handler updating balances in real time
Where to go next
Send payouts
Send stablecoins to your users or partners programmatically.
Add AML screening
Screen addresses before sending or receiving funds.
Explore swaps
Let users swap between stablecoins with a single API call.
Go live
Enable Live Mode in the dashboard and start accepting real funds.

