Overview
This guide shows a common pairing:- Para for embedded / self-custody wallet UX and key management
- Brale for regulated stablecoin issuance + on/off-ramps + orchestration
- Para provisions a wallet and gives you an onchain address
- You register that address with Brale as an
Address(type=external) - Brale returns an
address_id - Use that
address_idas the destination (or source) in Brale Transfers
Para’s Brale walkthrough includes example Brale requests for convenience. For the latest Brale auth, required headers (like
Idempotency-Key), and request body shapes, refer to Brale API Docs.What is Para?
Para is an embedded wallet platform that helps fintech and payments teams ship self-custody wallets with a polished wallet UX and modern authentication (like passkeys), without forcing users into seed phrases or external wallet apps. Why teams choose Para (briefly):- Smooth onboarding: familiar sign-in flows with embedded wallet UX.
- Self-custody security model: 2-of-2 MPC + passkeys and a defense-in-depth security architecture.
- Flexible integration options: SDK-first (React and more) plus a REST API for server-side wallet + signing workflows.
- User-friendly signing controls: permission prompts for transaction/message approvals (so you don’t have to build the entire approval UI).
Prerequisites
- Para SDK integrated in your app (web/mobile/server) and you can access the user wallet address
- Brale API credentials (
client_id,client_secret) - You’ve chosen the chain(s) you want to support (examples below use EVM chains like
base)
Step 1 — Authenticate with Brale
Exchange your Brale client credentials for a bearer token:access_token and refresh it before it expires (expires_in).
Step 2 — Get your account_id
account_id for the customer you’re funding.
Step 3 — Get the user’s wallet address from Para (minimal)
You only need one thing from Para to use Brale: the onchain address you want to fund.Option A: Current selected wallet (React)
useWallet returns the wallet currently selected in the ParaModal.
Option B: All wallets (embedded + external) (React)
UseuseAccount to access wallet information for both embedded and external types.
Not using React? Para supports other environments (REST API, server-side, React Native, etc.). Use Para’s docs as the source of truth for retrieving wallet data and for signing/broadcasting transactions.
Step 4 — Register the Para wallet in Brale (create an external Address)
Create an external address and capture the returnedaddress_id.
id is the Brale address_id you’ll use in Transfers.
Step 5 — Fund the Para wallet via Brale Transfers
Option A: Wire → stablecoin → Para wallet
Examples use
SBC as a placeholder stablecoin. Replace it with the value type you intend to mint or pay out.Option B: ach_debit → stablecoin → Para wallet
ach_debit flows require additional setup (end-user funding addresses, Plaid flows, etc.). Once configured, the Transfer pattern is the same: the destination is your Para address_id.
See: ach_debit to end user wallet
Step 6 — Spending / sending from the Para wallet
Once funds land in the Para wallet, your app uses Para to sign and broadcast onchain transactions to send stablecoins onward. Brale does not custody the keys for external wallets.Offramping (stablecoin → USD) with a self-custody wallet
To offramp to USD:- Send stablecoins from the Para wallet to a Brale custodial deposit address (
type=internal) for the customer’s Brale account. - Use Brale’s stablecoin-to-fiat workflow to send USD to an external bank Address.
Troubleshooting
401: refresh the Brale bearer token and retry POST requests with the sameIdempotency-Key404 compatible_address_not_found: confirm:- you used the correct
account_id - the destination
address_idsupports thetransfer_typeyou’re using
- you used the correct
- Balance visibility:
- Brale can return balances for custodial addresses (
type=internal) - external wallets are outside Brale custody
- Brale can return balances for custodial addresses (
References
Brale- Quick Start - Your First Brale Stablecoin Transfer
- Authentication
- Create a new external address
- Add an External Destination
- Stablecoin to Fiat (Offramp)