Docs

How Bloom works, down to the contract.

Every address, privilege, fee and dependency Bloom has, and how to check each one yourself. Network: BNB Chain.

Overview

Bloom launches coins on BNB Chain. Each coin trades on its own curve inside the BloomMarket contract, and each has its own BloomTreasury. Every buy and every sell pays 1% of the trade, in BNB, to that coin’s treasury in the same transaction. The treasury stakes its BNB through BNB Chain’s native staking contract, StakeHub, where validator rewards are added to the stake and compound by themselves.

Nothing is held off chain. A coin’s name, logo and links are written into its launch transaction, and every figure in the app is read from the contracts or from Chainlink.

Contracts

BloomMarket
0x1B5be61829DE48a81419B06D4A600C2D7b5B2E9F

One contract for every coin. Launches coins (deploying each coin and its treasury), runs each coin’s curve, quotes trades and routes fees. Holds each curve’s BNB reserve, accounted per coin.

BloomTreasury
One per coin, deployed by the market at launch; its address is in the coin’s Launched event and on its page in the app. Receives the coin’s trading fees and stakes them. It has no function that sends BNB out.
BloomToken
One per coin. A plain ERC-20, 18 decimals, whole supply minted once to the market. No owner, no mint, no burn hook, no transfer tax, no blacklist. The market may move a holder’s coins only inside that holder’s own sell, so selling needs no approval.
StakeHub
0x0000000000000000000000000000000000002002

BNB Chain’s system staking contract (BEP-294), at 0x0000000000000000000000000000000000002002 on mainnet and testnet. Not Bloom’s code.

Fees

  • Treasury fee: 1% of every buy and every sell (TREASURY_FEE_BPS = 100). A constant in the code: no one can change it.
  • Bloom’s fee: 0% (protocolFeeBps = 0). Fixed when the market was deployed and capped at 1% by the code. It can’t be changed after deployment.
  • Launch: gas only (launchFee, fixed at deployment).
  • Fees are taken in BNB inside the trade itself, so there is no swap and no separate transaction.
  • The creator’s own first buy at launch pays the same 1% as everyone else’s.

The market curve

Each coin trades against a constant-product curve: price = (virtual BNB + real BNB) ÷ coins in the curve. Every curve starts with a virtual reserve of 6 BNB, which is also the coin’s starting market cap, and the whole supply (1,000,000 to 1,000,000,000,000 coins, chosen at launch).

The curve is the coin’s permanent market. Coins don’t graduate to another exchange, because trades elsewhere wouldn’t pay the treasury. Anyone may still open a pool somewhere else; trades there pay Bloom’s treasury nothing.

Solvency is structural: the curve’s invariant never shrinks, so selling back every coin in circulation can never ask for more BNB than the curve holds. This is fuzz-tested.

Staking

  • Treasuries delegate through StakeHub, BNB Chain’s native staking (BEP-294). Rewards are added to the validator’s stake pool, so each share is worth more BNB over time: compounding needs no claim and no transaction.
  • Minimum 1 BNB. StakeHub refuses smaller delegations, so a treasury waits until it holds 1 BNB, then stakes all of it.
  • stake() is open to anyone. Bloom runs a keeper that calls it on a schedule, but it holds no special rights: the function does the same thing whoever calls it.
  • The validator is chosen by Bloom’s owner from active, unjailed BNB Chain validators, and applies to the next stake of every treasury.
  • If staking fails (StakeHub paused, a validator jailed), the call records StakeFailed with the reason and the BNB stays in the treasury for the next attempt.
  • Treasuries never unbond. StakeHub’s 7-day unbonding period never applies, because there is no undelegate call in the treasury.
  • Staking carries validator risk: a misbehaving validator can be slashed, which lowers the stake’s value. The dashboard would show this as negative yield.

What the owner can and can't do

The market has one owner key. Ownership transfers in two steps (transfer, then accept).

Can

  • Pause new launches and buys, in an emergency.
  • Choose the validator treasuries stake with next.
  • Move a treasury's existing stake to another validator (redelegate). It stays in the treasury's name.
  • Transfer ownership.

Can’t

  • Pause sells. Holders can always exit.
  • Withdraw BNB from any treasury, or from any curve.
  • Move anyone's coins.
  • Change any fee, the virtual reserve or the supply rules.
  • Mint coins, or upgrade the contracts (they aren't upgradeable).

Prices

Coin prices come from each curve on chain. Dollar figures use one source only: Chainlink’s BNB / USD feed on BNB Chain (0x0567F2323251f0Aab15c8dFb1967E4e8A7D42aeE on mainnet). If it can’t be read, the app shows BNB only.

Free BNB Chain RPC endpoints don’t serve historical state, so charts are rebuilt from events: trades for price charts, fee deposits and stakes for treasury charts, with the live contract reading as the latest point.

Verify it yourself

Every figure in the app can be rebuilt from these events, and each line in the app links to its transaction on BscScan.

ContractEventRecords
BloomMarketLaunched(token, creator, treasury, name, symbol, supply, virtualBnb)A coin, its treasury and its creator
BloomMarketMetadata(token, description, image, website, twitter, telegram)The coin's description, logo and links
BloomMarketTrade(token, trader, isBuy, bnbAmount, tokenAmount, treasuryFee, protocolFee, bnbReserve, tokenReserve)Every buy and sell, with its fees and the curve after it
BloomTreasuryFeeDeposited(amount, feesReceived)A trading fee arriving
BloomTreasuryStaked(validator, amount, shares, principal)BNB delegated to a validator
BloomTreasuryStakeFailed(validator, amount, reason)StakeHub refused a stake; the BNB stayed
BloomTreasuryRedelegated(from, to, shares)Stake moved between validators
BloomTreasuryReceived(from, amount)BNB sent directly (a gift)

The contracts have 28 tests, including fork tests against live BNB Chain mainnet that delegate a treasury through the real StakeHub, receive a real reward distribution and redelegate. They have not been audited. See risks.