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.
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
- 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.
- 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.
- 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.
- 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.
- 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.
- 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 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.
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.
| Option | Acquirer receives | Depositor receives | Protocol |
|---|---|---|---|
| Keep | The NFT | Backing minus 1% | 100 bps |
| Keep and relist | The NFT, immediately relisted with fresh backing | Backing minus 1% | 100 bps |
| Standing bid | 90% of the backing in BNB | The NFT | 1000 bps |
| Bid as $BWA | 90% of the backing, paid in $BWA | The NFT | 1000 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.
| Fee | Bps | Charged on |
|---|---|---|
| ownerAcquisitionFeeBps | 100 | Each acquisition fee, taken from the surcharge so the acquirer price does not change |
| ownerSettlementFeeBps | 100 | The backing, when the acquirer keeps the NFT |
| settlement discount | 1000 | The backing, when the acquirer takes the standing bid |
| token trading fee | 500 | $BWA buys and sells, sent to the marketing wallet |
| protocolFeeToTokenBps | 10000 | Share 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
- —