Documentation

How Binance World Assets works

A complete reference for the tokenized-asset selection protocol — depositing, weighting, pricing, randomness, settlement, fees and the Crown.

v0.1 · spec

Introduction

BWA — Binance World Assets

Binance World Assets (RWA) is an experimental protocol on BNB Chain (chain ID 56) where depositors place a tokenized stock together with USDT stablecoin backing into a shared Standard Pool. Acquirers pay a single acquisition price to receive one randomly selected position from the pool, and the depositor of that position is settled in return.

The protocol's defining feature is inverse weighting: the less USDT backing a position carries, the more likely it is to be selected. Backing therefore acts both as a self-set probability dial and as a guaranteed price floor (a "standing bid") for the depositor.

Figures in this app are derived with the same economic math as the deployed contracts, so everything stays internally consistent. Live oracle prices, onchain reads and transactions activate once the contracts are deployed; no specific randomness provider is claimed until an audited adapter is wired.

This is an independent experiment, not affiliated with Binance, any asset issuer, or any randomness vendor. It is not financial advice and not an offer of any security. Tokenized-asset mechanisms are high risk — you can lose funds.

How It Works

A depositor deposits a tokenized asset (for example NVDAB, TSLAB, MSFTB, CRCLB) plus USDT backing, minting a position that becomes eligible for selection once active. An acquirer submits an acquisition request and escrows the current acquisition price. Verifiable randomness selects one active position weighted by its inverse backing, and the position is allocated to the acquirer.

The acquirer then chooses within the settlement window whether to keep the underlying asset or to accept the depositor's standing bid; the depositor is paid accordingly. The two diagrams below summarise the deposit lifecycle and the pricing pipeline.

Deposit flow
Stock Token + USDT
        │
        ▼
     Position ──────► Standard Pool
                            │
                     Random selection
                            │
              ┌─────────────┴─────────────┐
              ▼                           ▼
        Keep Asset               Take Standing Bid
Pricing flow
Asset value
     │  × 98%  (2% haircut)
     ▼
Conservative value
     │
     ▼
Compare with standing bid  (backing × 95%)
     │
     ▼
Position payoff = max(conservativeValue, standingBid)
     │
     ▼
Weighted pool payoff = Σ(weightᵢ · payoffᵢ) / Σweight
     │  + 5% acquisition surcharge
     ▼
Acquisition price = expectedPayoff × 1.05

Depositors

Depositors supply a whitelisted Stock Token and choose how much USDT to post as backing, within the pool's allowed backing ratio of 50%–150% of asset value. Lower backing raises selection probability but lowers the guaranteed standing bid; higher backing does the reverse. Positions target a notional value of $1 (band $0.5–$5).

While a position is active it can earn a share of protocol fees and can hold the Crown if it is the highest-backed position. Depositors may increase or decrease backing, or queue a withdrawal, subject to the pool's rules and any active allocation. When their position is selected and settled, depositors receive either the acquisition proceeds (asset kept) or their standing bid (bid accepted).

Backing ratio band50% – 150%
Max backing / position$10
Positions / wallet20
Backing assetUSDT

Acquirers

Acquirers pay one acquisition price to receive a random position — they do not choose which one. The price is derived from the whole pool's expected payoff plus a 5% surcharge, so on average acquirers pay slightly above the expected value of what they receive; the surcharge funds depositor rewards, the protocol and the Crown.

After an allocation, the acquirer has a decision window to either keepthe underlying tokenized asset or accept the depositor's standing bid in USDT. A rational acquirer keeps the asset when its conservative value exceeds the standing bid, and takes the bid otherwise — which is exactly how the position payoff is defined.

Positions

Each position is represented by an ERC-721 receipt and records its asset amount, oracle-priced asset value, conservative value, USDT backing, inverse weight, standing bid, payoff and status. A position moves through states such as STAGED → ACTIVE → ALLOCATED → SETTLED, or is withdrawn if the depositor exits.

Only ACTIVEpositions are eligible for selection and contribute to the pool's total weight. Because the receipt is a transferable NFT, a position's economic exposure can change hands without unwinding the underlying deposit.

Weighting

Selection uses an inverse-weight scheme so that under-backed positions are more likely to be chosen. Each active position's weight is the fixed numerator 1e36 divided by its backing (in USD, 18 decimals), and its selection probability is its weight over the sum of all active weights.

weight = 1e36 / backingUSD18
probability = weight / totalWeight

Over repeated independent draws with probability p, the chance a position is selected at least once within K draws is:

P(selected within K) = 1 − (1 − p)^K

Backing changes immediately update a position's weight and therefore every other position's probability, since the denominator shifts too.

Pricing

Pricing starts from each position's asset value, discounted by a 2% haircut to a conservative value, and compared against the standing bid (95% of backing). The position payoff is whichever is larger, and the pool's expected payoff is the weight-averaged payoff across all active positions.

conservativeValue = assetValue × 98%
standingBid = backing × 95%
positionPayoff = max(conservativeValue, standingBid)
expectedPayoff = Σ(weightᵢ × payoffᵢ) / Σweight
acquisitionPrice = expectedPayoff × 1.05

The acquisition price applies a 5% surcharge to the expected payoff and is rounded up, so the protocol never underprices a draw. Worked example: four positions backed 60 / 80 / 100 / 140 with a conservative value of 100 each yield an expected payoff of about 105.09 and an acquisition price of about 110.34.

Randomness

Provider to be confirmed

Selection requires unbiased, verifiable randomness so that no party can predict or influence which position is drawn. When an acquisition request is processed, the protocol requests a random value through a RandomnessRouter and only finalises the allocation once that value is delivered.

The specific randomness provider is to be confirmed and will be documented, audited and independently verified before any mainnet use. This interface never claims a particular vendor (for example, it does not assert Chainlink VRF) until that integration is real and confirmed.

Queue

Acquisition requests are processed in order through a queue so that concurrent requests settle deterministically and fairly. A request first waits for its randomness to be delivered, then advances through the queue to be matched with a selected position and allocated.

Because the pool state (weights, prices) can move between submission and processing, each request escrows at its submission price and the interface tracks both the initial and current acquisition price. Requests that cannot be filled or that expire are refunded from escrow.

Settlement

Once a position is allocated, the acquirer has a 24-hour decision window to keep the asset or take the standing bid. If the acquirer does not act, a 7-day finalization window allows the allocation to be resolved to a safe default so funds and assets are never left stranded.

purchaser window = 24h
finalization window = 7d
outcomes: keep · take-bid · default

On keep, the acquirer receives the asset and the depositor is paid from the acquisition proceeds; on take-bid, the acquirer receives the standing bid in USDT and the asset flow reverses accordingly.

Fees

The 5% acquisition surcharge is split between active depositors, the protocol treasury and the Crown, rewarding participation and funding operations. Settlement discounts (the gap between backing and the 95% standing-bid payout) are likewise split among positions, the protocol and the Crown.

Surcharge split
Depositors70%
Protocol20%
Crown10%
Settlement-discount split
Positions60%
Protocol20%
Crown20%

Depositor fee shares accrue against a running accumulator and are claimable independently of settlement.

Crown

10% threshold

The Crown is held by the single highest-backed active position in a pool. The Crown holder earns an extra share of protocol fees for as long as it reigns, rewarding the position that most strengthens the pool's price floor.

To take the Crown, a challenger must exceed the current holder's backing by at least the 10% threshold — a small margin that prevents constant, gas-wasting flip-flopping between near-equal positions.

requiredBacking = currentCrownBacking × 1.1

Stock Tokens

The MVP asset set is NVDAB, TSLAB, MSFTB, CRCLB — ERC-20 tokenized equities/ETFs (18 decimals) on BNB Chain, each priced by its own on-chain feed. Backing is denominated in USDT, whose canonical address is 0x55d398326f99059fF775485246999027B3197955.

NVDABstock
NVIDIA Corp (bStock)
AI / semiconductors exposure
Token addressSee Contracts
Price feedNot configured
TSLABstock
Tesla, Inc. (bStock)
High-volatility exposure
Token addressSee Contracts
Price feedNot configured
MSFTBstock
Microsoft Corp (bStock)
Large-cap technology
Token addressSee Contracts
Price feedNot configured
CRCLBstock
Circle Internet Group (bStock)
Stablecoin infrastructure exposure
Token addressSee Contracts
Price feedNot configured

Token and feed addresses are intentionally left empty until fetched from the official Asset Registry — they are never invented here.

Oracles

Every asset value is computed from an on-chain price feed. For Binance tokenized equities the feed price already includes the UI multiplier, so the protocol never multiplies by it again; the multiplier is used only to display a shares-equivalent figure.

Feeds are checked for freshness — a price older than the maximum age of 60 minutes, or a paused / invalid feed, marks the oracle unhealthy and pauses affected operations rather than trading on a stale number. Conservative valuation (98% of asset value) adds a further margin of safety against short-term price noise.

Corporate Actions

Tokenized equities are subject to corporate actions — stock splits, reverse splits, dividends, ticker changes and delistings — that can change token balances, prices or eligibility. The indexer tracks announced actions and their effective dates so positions and valuations can be reconciled correctly.

When an action materially affects an asset, the protocol may pause deposits or selection for that asset until the registry and oracle state reflect the new reality, protecting depositors and acquirers from settling on outdated terms.

Risks

  • Random selection: you cannot choose which position you acquire; outcomes vary draw to draw.
  • Backing is a floor, not a guarantee: the standing bid is only as good as the posted USDT and the protocol's solvency.
  • Oracle risk: stale, paused or manipulated feeds can misprice assets despite freshness checks.
  • Randomness risk: the provider is unconfirmed; selection integrity depends on it being sound and verifiable.
  • Smart-contract risk: contracts are deployed and verified on BNB Chain but have had no third-party audit; bugs can cause loss.
  • Market & liquidity risk: tokenized-equity prices move and may be illiquid or halted around corporate actions.
  • Regulatory risk: tokenized securities exist in an evolving legal environment.
Never deposit more than you can afford to lose. All figures in this interface are derived from the protocol math until the contracts are deployed onchain.

Contracts

Exact Onchain

The protocol is a set of focused contracts, all deployed and verified on BNB Chain. Read them before you trust them — every address below links to verified source.

ContractResponsibilityAddress
RWACoreDeposit, backing, acquisition and settlement orchestration; escrow and payout routing.0x48092B123211a8204C16b2ad18D76d4372Bb6Ab9
RWAAssetRegistryWhitelist of tokenized assets — token + price-feed addresses, decimals, staleness bound and exposure cap.0xaeF4887544F23aE276Ac34C8d0DC282FF7C49Bba
RWAPositionReceiptNon-transferable ERC-721 receipt representing a depositor's position.0xa0c1b1a21df8b882017B67c07C9988793657b99d
RandomnessRouterSwappable adapter over the verifiable-randomness provider (provider to be confirmed).0x951593a8CCf7C3694E38f37ed492d6Df0de94196
RWAProtocolTreasuryCollects the protocol fee share and holds treasury-owned balances.0x9E1eBDe15eB06e3F8F950e15DD753e45CF1350f9
$RWAProtocol token. Fixed supply, no mint, no owner — not wired into the Core.0xe0CB395e7CC7CafF65444043F4888a649AaE14fB

Explorer: https://bscscan.com · RPC: https://bsc-dataseed.binance.org

API

A read-only JSON API is exposed under /api/v1. Every response uses a standard envelope with a data payload and a metadata object (chain ID, indexing timestamp, data mode and an isEstimated flag); list endpoints add a pagination block and accept filters such as ticker, status, wallet and backing bounds.

MethodEndpointDescription
GET/api/v1/overviewProtocol-wide metrics for the Standard Pool.
GET/api/v1/assetsAll registered tokenized assets (filter by ?ticker).
GET/api/v1/assets/{symbol}A single asset's registry metadata.
GET/api/v1/poolsList of pools (currently the Standard Pool).
GET/api/v1/pools/{poolId}Pool detail, composition and pricing.
GET/api/v1/positionsPositions with pagination + filters.
GET/api/v1/positions/{positionId}A single position.
GET/api/v1/requests/{requestId}An acquisition request.
GET/api/v1/allocations/{allocationId}An allocation awaiting settlement.
GET/api/v1/wallets/{address}A wallet's portfolio across the protocol.
GET/api/v1/activityProtocol activity feed with filters + pagination.
GET/api/v1/crownCurrent Crown holder and reward pot.
GET/api/v1/risk-statusAggregate risk / monitoring status.
POST/api/v1/simulatorDeposit & selection simulator (estimated).

Security

Security is layered: conservative valuation, oracle freshness checks, exposure caps (TVL $25,000, ≤ 35% per ticker), a queue for deterministic ordering, and settlement windows that guarantee every allocation resolves. Randomness is treated as security-critical and will not be wired to any provider until that provider is confirmed and verified.

The off-chain indexer is reorg-aware — it records block hashes and parent hashes so a chain reorganisation prunes and replaces affected rows rather than serving stale data. Contracts remain unaudited and unproven until deployment; treat all parameters shown here as indicative beta values.