Docs / Overview

Binance World Assets

BWA is a liquidity pool for NFTs. You list an NFT and lock BNB behind it. Someone else pays one price and receives a random listing. The BNB behind every listing is a floor, so whoever draws it can always sell it back instead of keeping the NFT.

ChainBNB 560.45s blocks
Surcharge2.50%250 bps over EV
Standing bid90%of position backing
Choice window24hthen 7d to finalise

What the protocol does

An NFT is hard to sell quickly. There is usually one buyer at a time, at a price nobody agrees on. BWA turns a set of NFTs into a single pool with a single price.

Two things go into the pool together. An NFT, and an amount of BNB the lister locks behind it. That pair is called a position. The BNB is the backing.

An acquirer pays one price and receives one position, picked at random. They then choose which half of that position to keep: the NFT, or the BNB. Whichever they leave goes back to the person who listed it.

The important consequence: a depositor always gets back exactly one of the two things they put in, and the acquirer gets the other. Nobody can end up holding both the NFT and the BNB behind it.

The three roles

Depositor

Lists an NFT and locks BNB behind it.

  • Earns a share of every acquisition fee, split equally across all active positions
  • Earns $BWA on a square root of backing accumulator
  • Gets the backing back when the position is drawn and kept, or when it is withdrawn

Acquirer

Pays one acquisition fee and receives one random position.

  • Price is the expected backing plus 2.5%
  • Has 24 hours of exclusive choice over what to do with the position
  • Earns $BWA from a daily pot split by acquisition count

Protocol

Takes bounded fees and spends all of them on $BWA.

  • 1% of each acquisition fee, taken out of the surcharge
  • 1% when an acquirer keeps an NFT
  • 10% when an acquirer takes the standing bid
  • 100% of what it takes funds buybacks

The loop, start to finish

  1. A depositor lists

    They pick an NFT they own and an amount of BNB to lock behind it. Both move into the pool. The position is now active and starts earning.

  2. The pool quotes one price

    The acquisition fee is the harmonic mean of every active backing, plus 2.5%. That harmonic mean is exactly the backing an acquirer should expect to receive.

  3. An acquirer pays and requests

    They pay the acquisition fee and a separate Chainlink VRF service fee, and set their own slippage tolerance. The request goes into a queue.

  4. Randomness settles the draw

    VRF returns a random word. Requests settle strictly in the order they were made. The random word picks one position, weighted so cheaper backings come up more often.

  5. The acquirer chooses, within 24 hours

    Keep the NFT, keep and relist it, sell it back for 90% of the backing in BNB, or sell it back for the same value in $BWA.

  6. The position closes

    The acquirer takes one side, the depositor takes the other, and the protocol takes its bounded cut. After 24 hours the depositor may resolve it. After 7 days anyone may.

One price, and where it comes from

Every acquirer pays the same price at the same moment, whatever they end up drawing. That price is built from the pool itself rather than set by anyone.

EV = n / sum(1 / backing_i) acquisitionFee = EV * (10000 + 250) / 10000

EV the harmonic mean of every active position backing n the number of active positions 250 surchargeBps, 2.5%

The harmonic mean is not an approximation of the expected value here. Under the weighting the protocol uses, it is exactly the expected value. The proof is short, and it is the most interesting property of the design.

The draw is inverse weighted

A position's chance of being drawn is set by how little BNB is behind it, not how much.

weight = 1e36 / backingWei probability = weight / totalWeight

Cheap listings come up constantly. The richest ones are the rarest. This is what makes a single price sensible: without it, an acquirer paying one fee would have no reason to expect anything in particular back. Positions and weighting works through a table of five example backings.

What the acquirer does next

Drawing a position opens a 24 hour option with four exits rather than completing a purchase.

OptionAcquirer receivesDepositor receivesProtocol
KeepThe NFTBacking minus 1%100 bps
Keep and relistThe NFT, immediately relisted with fresh backingBacking minus 1%100 bps
Standing bid90% of the backing in BNBThe NFT1000 bps
Bid as $BWA90% of the backing, paid in $BWAThe NFT1000 bps

The standing bid is a floor, not a profit. An acquirer who always sells back receives 90% of a backing they paid roughly 102.5% of the expected backing for. It is there so a position can never trap you in an NFT you do not want. Settlement covers the windows and the delivery rules.

Where the money goes

Five fees exist. Every one of them is a fixed number of basis points, and every satoshi the protocol takes is spent buying $BWA.

FeeBpsCharged on
ownerAcquisitionFeeBps100Each acquisition fee, taken from the surcharge so the acquirer price does not change
ownerSettlementFeeBps100The backing, when the acquirer keeps the NFT
settlement discount1000The backing, when the acquirer takes the standing bid
token trading fee500$BWA buys and sells, sent to the marketing wallet
protocolFeeToTokenBps10000Share of protocol fees that funds $BWA buybacks

The rest of the surcharge is split between depositor earnings and the buyback, and the split moves with how busy the protocol is. The dynamic surcharge split explains it.

The token, in one paragraph

$BWA has a fixed supply of 1,000,000,000 with 18 decimals. 60% seeds the BWA/BNB pool on PancakeSwap V2. 40% is emitted over 20 days, half to depositors and half to acquirers. There is no team allocation, no presale and no private round. Buybacks are permissionless: anyone can call payoutFees() and buyback(), and the caller keeps 0.5% of the BNB spent for doing it. Full breakdown.

Contract addresses

Nothing is deployed yet. Addresses appear here once the contracts are live, and are readable on BscScan from that point on.

$BWA token
—
Pool
—
BWA/BNB pair
—
VRF subscription
—

Read next