Documentation
How BRICK works
Every mechanism, one at a time. Each number below is a constant in the contract, and each claim names the code that enforces it.
Built in public, brick by brick.
Overview
Most tokens with a fee take a cut of your trade and send it away. BRICK keeps it, and spends it on the token itself.
A percentage fee usually leaves the moment it is charged. It goes to a treasury, a marketing wallet, a team multisig. The pool you traded in is no deeper than before, the supply is no smaller, and you paid for nothing you can point to.
BRICK charges 2% of every trade and spends 62% of it on liquidity that cannot be withdrawn and on supply that is destroyed. The rest runs the project, paid from real trades rather than from printing tokens. The token itself is an ordinary ERC-20: fixed supply, no owner, no team allocation.
The accounting metric
BRICK does not set, defend, or guarantee a market price. It reports an accounting metric based on the pool's recorded liquidity and the BRICK supply remaining after burns.
The implied liquidity price is the ETH held in the hook-owned position divided by circulating supply. That position only grows, because the hook permits no operation that removes it, and supply only falls, because each masonry event burns some. So the metric is non-decreasing by construction.
It is not a redemption price, a floor under the market, or a promise that trades execute there. Market price is set by trading and liquidity conditions and can move either way.
floorPriceWei() monotonic ratio; excludes only the burn addressThe fee
2% taken in ETH on swaps through the official pool, across the supported swap paths: buys and sells, exact-input and exact-output.
The fee is taken by the hook, not by the token, so a plain transfer between two wallets costs nothing. Only swaps through the official pool are charged, and the charge is always on the ETH side, so the token leg you receive is exact.
beforeSwap / afterSwap skims the WETH leg into the potThe pot
The fee sits in the hook as WETH and does nothing until there is enough of it to be worth spending.
Nothing can take the pot out in the meantime. There is no withdraw function on the contract, for any address, including the one that deployed it. Once the pot reaches the threshold, one masonry event can run, and no more than one threshold of ETH is pushed through the pool per event.
Masonry
Once the pot is full, any address may trigger a masonry event by calling
layBrick(). There is no allowlist and no privileged caller.
Whoever calls it is paid a fixed reward for the gas they spend, and that is the whole of what they get. The event splits the pot, adds liquidity, burns supply, and records a brick. Triggering is permissionless and pays, so a keeper carries it reliably, but nothing about the protocol depends on any single caller.
layBrick() public; 1.2% of the pot to the callerOne subtlety. The brick is credited to the trade that carried the pot over the threshold, not to whoever won the race to trigger it. The triggerer takes the ETH reward. It does not take the record.
The split
One hundred parts, four destinations. Every number is a constant. Nothing in the contract can change them.
| Slice | Share | Where it goes |
|---|---|---|
| Liquidity | 35% | Added as a position the hook owns and no one can remove |
| Burn | 27% | Buys BRICK and destroys it, or pays the quarry's miners |
| Operations | 36.8% | Paid in ETH to a fixed address; the project's only revenue |
| Trigger reward | 1.2% | To whoever called layBrick(), carved out of operations |
The team holds no tokens and takes a fixed, disclosed share of fees. A team that holds none of the supply cannot quietly sell into you, which is the failure mode a token allocation exists to enable.
LP_BPS · BURN_BPS · OPS_BPS · KEEPER_BPS constants, no setterLiquidity the hook cannot remove
The 35% is added as a position the hook itself owns, and the remove-liquidity path reverts for every caller that tries it, the deployer included.
It is not locked for a period. There is no path, so there is nothing to unlock. The position can only grow, because the only liquidity operation the hook permits is adding.
beforeRemoveLiquidity reverts with FloorIsPermanent()The burn
27% of every pot removes BRICK from existence.
By default the protocol buys BRICK from the pool and sends it to a dead address. When the quarry has miners, that same slice pays them instead, and the BRICK they destroyed is what was removed. Either way, supply falls, and it never comes back.
burn / GRAVE supply is removed, never mintedThe quarry
You mine by destroying BRICK. The 27% burn slice pays the miners who did, pro-rata to what they burned.
Mining is destruction: the tokens go to the grave and never come back, and in the same transaction circulating supply falls, which is the only input to the accounting metric. The reward is paid from real fees, not from emission. No supply is minted to pay it, no schedule halves it, and an epoch with no miners simply runs the ordinary buy-and-burn.
| Rule | Detail |
|---|---|
| Paid by | The brick after the one that closes the epoch, so nobody can burn at the last second and take a slice they did not build |
| Payout cap | 3× |
| Cap basis | Pool-price value of the BRICK destroyed, priced at settlement |
| Claims | Pull-based, and they never expire. An unclaimed epoch is still claimable in full a year later |
Whatever the 3× cap declines is not kept. It flows back into the same buy-and-burn.
QuarryEngine reward accrues per epoch; claim is pull-basedThe bricks
Every masonry event mints a fully on-chain brick, drawn from the data the event already recorded.
The hook records the block, the mason, the ETH locked into liquidity and the BRICK destroyed. A separate collection contract mints that record as an SVG rendered entirely on chain: no server, no external image host. The art is derived from the event, so the fire in the clay is a fossil of the price at that moment. It cannot write back to the hook, so it cannot touch the money.
BrickCollection reads the hook; mints, never writesThe token
An ordinary ERC-20. The interesting behaviour is in the hook, not here.
| Property | State |
|---|---|
| Supply | 1,000,000 fixed |
| Owner | None |
| Mint | None |
| Pause | None |
| Blacklist | None |
| Team allocation | None. The entire supply seeds the pool at deployment |
Guarantees
Each row below is enforced by code you can read, and the right column shows where. The last row, the third-party audit, is the one still in progress.
| Claim | How you check |
|---|---|
| Liquidity cannot be withdrawn | The remove path reverts for every caller |
| The implied liquidity price cannot fall | floorPriceWei() is a monotonic ratio (not the market price) |
| Supply only shrinks | No mint function exists |
| The split is fixed | Four constants, no setter |
| Third-party audit | Not done. No audited language is used until an external review is finished |
The source, the tests and the in-house review publish at deployment, alongside the addresses that make every claim on this page checkable.
Contracts
Read the code. The addresses go live at deployment and link straight to the explorer.
| Item | Value |
|---|---|
| Chain | Ethereum mainnet |
| Venue | Uniswap v4 |
| Pair | WETH / BRICK |
| PoolManager | 0x0000…8A90 |
| Token address | Live at launch |
| Hook address | Live at launch |
WETH is the pair on purpose: an ERC-20 leg means explorers and aggregators index the pool correctly, and a native-ETH pair would not.