nora

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.

chainIdSandbox networkProduction network
solanaSolana devnetSolana mainnet
ethereumSepolia (eip155:11155111)Ethereum mainnet (eip155:1)
baseBase Sepolia (eip155:84532)Base mainnet (eip155:8453)
polygonPolygon 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.

AssetURL
Logo, SVGstatic.nora.finance/brs/icon.svg
Logo, 256 px PNGstatic.nora.finance/brs/icon.png
Token metadata (name, symbol, image)static.nora.finance/brs/metadata.json

Adding a chain to your integration

  1. Confirm the chain is listed by GET /v2/info for your key.
  2. Ask Nora for a whitelister on that chain if you do not have one. Until it exists, POST /v2/wallets with that chainId returns 409 with details.code of WHITELISTER_NOT_PROVISIONED.
  3. 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.
  4. Register and authorize the wallets that will hold BRS, with the same chainId, following Path C of Wallet whitelisting.
  5. Send chainId on every intent. Nothing else in the request changes.

On this page