BRS token
How BRS works across chains — decimals, chainId and networks, whitelisting, brand assets and adding a chain.
BRS (Brazilian Real Stablecoin) is the token every intent mints or burns. One BRS is one Brazilian real. It has 6 decimals on every chain.
Amounts on the API are always BRL cents (amountCents: 500 = R$5,00 =
5 BRS). Token units appear only in amountMinor fields
("5000000" = 5 BRS). limitMinor, the daily limit on a wallet grant, is
BRL cents like amountCents, not token units. Nora scales between cents
and token units at the chain boundary; you never convert.
Chains
Pick the chain with chainId: "solana", "ethereum", "base" or
"polygon". It is required on every intent. On POST /v2/wallets it
defaults to "solana". The environment is chosen by your API key: a sandbox
key settles on the test network, a production key on mainnet.
GET /v2/info lists the chains your key can use.
chainId | Sandbox network | Production network |
|---|---|---|
solana | Solana devnet | Solana mainnet |
ethereum | Sepolia (eip155:11155111) | Ethereum mainnet (eip155:1) |
base | Base Sepolia (eip155:84532) | Base mainnet (eip155:8453) |
polygon | Polygon Amoy (eip155:80002) | Polygon PoS mainnet (eip155:137) |
The eip155: values are CAIP-2 chain references. Every EVM response that
carries calldata also carries its chainRef, so you always know which
network to send a transaction to.
Each chain has its own whitelister and its own grants, and an intent settles on exactly one chain. Moving BRS between the EVM chains is a separate on-chain operation, see Bridging BRS between chains; a wallet that receives bridged BRS still needs a grant on that chain before it can burn through an intent.
Addresses
The BRS contract address, chainRef and explorer link for every network
are on the Addresses page.
Mints and burns are restricted: only wallets authorized by your organization's BRSWhitelister contract can receive a mint or burn through an intent. Ordinary ERC-20 transfers between holders are not restricted. You get one whitelister per chain, provisioned by Nora; its owner authorizes your wallets. Per-mint bounds are checked before Nora charges a PIX. A daily cap can only be seen on-chain, so a mint over the remaining budget fails after the charge. Both are covered in Wallet whitelisting, with the grant flow and error codes.
Brand assets
Use these when you list BRS in a wallet, an explorer or your own UI. They are display assets only: nothing on-chain points at them, so they prove nothing about a token. The contract addresses on the Addresses page are the source of truth.
| Asset | URL |
|---|---|
| Logo, SVG | static.nora.finance/brs/icon.svg |
| Logo, 256 px PNG | static.nora.finance/brs/icon.png |
| Token metadata (name, symbol, image) | static.nora.finance/brs/metadata.json |
Adding a chain to your integration
- Confirm the chain is listed by
GET /v2/infofor your key. - Ask Nora for a whitelister on that chain if you do not have one. Until
it exists,
POST /v2/walletswith thatchainIdreturns409withdetails.codeofWHITELISTER_NOT_PROVISIONED. - Fund the whitelister's owner wallet with that chain's native token (ETH on Ethereum and Base, POL on Polygon). It pays the gas for every grant.
- Register and authorize the wallets that will hold BRS, with the same
chainId, following Path C of Wallet whitelisting. - Send
chainIdon every intent. Nothing else in the request changes.