> ## Documentation Index
> Fetch the complete documentation index at: https://docs.getpara.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Integrate Brale with Para

> Combine Para's wallet infrastructure with Brale's stablecoin issuance API to enable minting, redeeming, and managing stablecoins.

## Integrating Brale with Para Wallets

[Brale](https://docs.brale.xyz) is a compliant stablecoin issuance and orchestration platform built for fintechs and onchain ecosystems. Combine Para's wallet infrastructure with [Brale](https://docs.brale.xyz)'s financial rails to mint, redeem, and manage stablecoins across 20+ chains, all from a Para-powered wallet.

## What You Need

You need these components to integrate Brale with Para:

* **Para SDK** for creating and managing wallets
* **Brale API credentials** (`client_id` and `client_secret`) from the [Brale dashboard](https://app.brale.xyz/)
* **EVM-compatible chain** such as Base, Polygon, or Ethereum

## Step-by-Step Integration

1. Initialize Para and create a viem wallet client

```typescript theme={null}
import { createParaViemClient, createParaViemAccount } from "@getpara/viem-v2-integration";
import { http } from "viem";
import { base } from "viem/chains";
import { ParaWeb } from "@getpara/react-sdk";

// Initialize Para (complete authentication before signing)
const para = new ParaWeb("YOUR_PARA_API_KEY");

const account = await createParaViemAccount(para);

const wallet = createParaViemClient(para, {
  account,
  chain: base,
  transport: http(),
});
```

2. Obtain a Brale bearer token via OAuth 2.0 client credentials

```typescript theme={null}
const tokenResponse = await fetch("https://auth.brale.xyz/oauth/token", {
  method: "POST",
  headers: { "Content-Type": "application/json" },
  body: JSON.stringify({
    grant_type: "client_credentials",
    client_id: BRALE_CLIENT_ID,
    client_secret: BRALE_CLIENT_SECRET,
  }),
});
const { access_token } = await tokenResponse.json();
```

3. Retrieve your Brale account ID

```typescript theme={null}
const accountsResponse = await fetch("https://api.brale.xyz/accounts", {
  headers: { Authorization: `Bearer ${access_token}` },
});
const accounts = await accountsResponse.json();
const accountId = accounts[0].id;
```

4. Register the Para wallet address with Brale

```typescript theme={null}
const walletAddress = account.address;

const registerResponse = await fetch(
  `https://api.brale.xyz/accounts/${accountId}/addresses/external`,
  {
    method: "POST",
    headers: {
      Authorization: `Bearer ${access_token}`,
      "Content-Type": "application/json",
    },
    body: JSON.stringify({
      name: "Non-Custodial (External) Wallet",
      transfer_types: ["ethereum", "base"],
      wallet_address: walletAddress,
    }),
  }
);

const addressData = await registerResponse.json();
const addressId = addressData.id;
```

5. Mint stablecoins (fiat-to-stablecoin) to the Para wallet

<Note>
  These examples use [SBC (Stablecoin)](https://stablecoin.xyz/) — Brale's native stablecoin. When you mint via Brale today, funds arrive as SBC. From there you can swap SBC to USDC or any other supported stablecoin through Brale's platform.
</Note>

```typescript theme={null}
const mintResponse = await fetch(
  `https://api.brale.xyz/accounts/${accountId}/transfers`,
  {
    method: "POST",
    headers: {
      Authorization: `Bearer ${access_token}`,
      "Content-Type": "application/json",
    },
    body: JSON.stringify({
      amount: { value: "1000", currency: "USD" },
      source: { value_type: "USD", transfer_type: "wire" },
      destination: { address_id: addressId, value_type: "SBC", transfer_type: "base" },
    }),
  }
);

const mint = await mintResponse.json();
```

6. Redeem stablecoins (stablecoin-to-fiat) from the Para wallet

```typescript theme={null}
const redeemResponse = await fetch(
  `https://api.brale.xyz/accounts/${accountId}/transfers`,
  {
    method: "POST",
    headers: {
      Authorization: `Bearer ${access_token}`,
      "Content-Type": "application/json",
    },
    body: JSON.stringify({
      amount: { value: "500", currency: "USD" },
      source: { address_id: addressId, value_type: "SBC", transfer_type: "base" },
      destination: { value_type: "USD", transfer_type: "wire" },
    }),
  }
);

const redeem = await redeemResponse.json();
```

## Why Combine Para and Brale

[Para](https://www.getpara.com) and [Brale](https://docs.brale.xyz) are purpose-built for the same audience — fintechs, neobanks, and onchain ecosystems that need to move real money. Para provides the wallet infrastructure: MPC-secured wallets, instant user onboarding, and white-label UX across web, mobile, server, and REST API. Brale provides the financial rails: compliant stablecoin issuance, fiat on-ramps and off-ramps, and orchestration across 20+ chains.

Together, Para+Brale closes the full loop from user identity to settled funds onchain.

| Layer                 | Provider     | What it does                                                                                     |
| --------------------- | ------------ | ------------------------------------------------------------------------------------------------ |
| Wallet infrastructure | Para         | MPC-secured wallets, instant onboarding, white-label UX across web, mobile, server, and REST API |
| Stablecoin issuance   | Brale        | Mint and redeem compliant stablecoins, fiat on/off-ramps across 20+ chains                       |
| Settlement            | Para + Brale | Sign and broadcast transactions from Para wallets funded via Brale                               |

**Why this combination wins for fintechs:**

* **Compliance-ready from day one** — Brale handles stablecoin licensing and reserve management; Para handles wallet security and key custody
* **No fragmented vendors** — replace a patchwork of banking APIs, custody providers, and blockchain nodes with two focused SDKs
* **User experience that converts** — Para's embedded wallet UX means users never leave your app to fund or move stablecoins
* **Multi-chain by default** — issue on Base, Ethereum, Polygon, and more without rewriting your integration

## Example Use Cases

Integrating Para and Brale enables these example use cases:

**1. Stablecoin Payments App**: Build a payments experience with instant mint and redeem flows powered by Para wallets

**2. Treasury Management**: Automate stablecoin operations for treasury workflows from a Para wallet with programmable rules

**3. Cross-Chain Stablecoin Orchestration**: Manage stablecoin issuance and redemption across multiple chains from a single Para wallet

## Related Walkthroughs

<CardGroup cols={3}>
  <Card title="M0 Integration" icon="dollar-sign" href="/v2/walkthroughs/m0">
    Beginner · 20 min · Programmable stablecoin infrastructure
  </Card>

  <Card title="Aave v3 Integration" icon="landmark" href="/v2/walkthroughs/aave">
    Advanced · 45 min · Lending, borrowing, and yield strategies
  </Card>

  <Card title="Ethereum Transfers" icon="ethereum" href="/v2/walkthroughs/ethereum-transfers">
    Intermediate · 20 min · Send ETH with Ethers and Viem
  </Card>
</CardGroup>
