BRICK is a fee-driven protocol that turns eligible trading activity into recurring on-chain masonry events — built layer by layer, with permissionless execution.
2% ETH-side fee · 0.5 ETH trigger threshold · permissionless execution
Structure preview unavailable on this device
Eligible trading activity feeds the hook. Once the threshold is reached, anyone can trigger the next masonry event.
"Eligible" is exact, not vague. The fee is charged on exact-input swaps in both directions and on exact-output buys. Exact-output sells are left uncharged: taking the fee there would force it to be collected in BRICK, which breaks the rule that the pot is ETH. That is a deliberate gap, disclosed rather than papered over.
FEE_BPS = 200pot += feelayBrick()
Once the hook balance reaches 0.5 ETH, any address may trigger the event. The caller
receives the configured execution reward.
Caller reward · 0.006 ETH 1.2% of the threshold
BRICK_THRESHOLD = 0.5 etheremit BrickLaid(idx, mason, …)Each masonry event appends a record: block, the address that triggered it, the ETH assigned to liquidity, and the BRICK destroyed. The record is append-only.
The address that triggers an event is written into that brick permanently, and a
soulbound counter increments against it — bricksLaidBy[].
It cannot be moved, sold or reassigned. Hover any stone above to light every brick
that address laid.
There is no privileged keeper. Once the pot reaches the threshold, any address may call the function and receives a 1.2% execution reward — 0.006 ETH.
Masonry history renders here once deployed.
Every BRICK holder is represented in the monument. Your brick's area reflects your current BRICK balance relative to total supply. Split a balance across multiple wallets and the total represented area does not increase.
Connect your wallet to highlight your brick.
Live, balance-proportional visual representation. Updates when you buy, sell, transfer, or split BRICK across wallets. Not permanent.
Permanent monument growth. The monument grows by one structural brick when layBrick() is successfully triggered. It never shrinks.
Building a brick is a visual representation of your current balance. It does not mint an NFT, create a separate token, grant governance rights, or change the masonry accounting.
You mine by destroying BRICK. 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 ratio this protocol is built on. There is nothing to unstake.
Each epoch's miners split 27% of one masonry pot, pro-rata to the BRICK they destroyed. That ETH was collected from real trades. No supply is minted to pay it, no schedule halves it, and no miner is paid out of another miner's loss.
An epoch is paid by the brick after the one that closes it. The delay is the point: the pot is public and anyone can trigger masonry, so without it a large holder could burn at the last second and take a slice they knew the size of.
Every miner in the open epoch holds a slab of it, sized by the BRICK they destroyed. When the next brick is laid, that course settles and its ETH becomes claimable.
Pull-based, and it never expires. An epoch you never got round to claiming is still claimable in full a year later — the contract has no sweep and no deadline.
The 27% runs the original buy-and-burn: the protocol buys BRICK from the pool and sends it to the grave. An epoch with no miners behaves exactly as the protocol did before the quarry existed.
Payout is capped at three times the pool-price value of the BRICK destroyed. Whatever the cap declines goes to the same buy-and-burn. Destroying one BRICK cannot capture a whole slice.
| Epoch | Destroyed | Miners | Paid | Rate / 1k | Your claim |
|---|---|---|---|---|---|
| No epochs have settled. Mining begins when the pool does. | |||||
Mining does not mint a token, an NFT or a position. It does not grant governance rights, and it is not a yield product — the ETH an epoch pays depends entirely on how much the pool traded and how much BRICK other people destroyed alongside you. Destroying BRICK to mine can lose money.
1,000,000 BRICK, minted once at deployment. No owner, no mint function, no blacklist, no pause, no upgrade path.
2% of the WETH side of a trade in the protocol pool, collected by the hook and paid out as ETH. Charged on exact-input swaps in both directions and on exact-output buys. A hook governs the single pool it is bound to, not the token — see below.
At 0.5 ETH collected, any address can call layBrick() to trigger a masonry event and receives a 1.2% execution reward. Each event processes one threshold.
Eligible swaps pay a 2% fee on the ETH side. Fees accumulate inside the hook until the balance
reaches 0.5 ETH. Any address can call layBrick() and
receive a 0.006 ETH execution reward. The remaining balance is processed by the fixed
allocation rules below.
| Parameter | Value |
|---|---|
| Execution function | layBrick() |
| Fee applies to | Exact-input swaps in both directions, and exact-output buys. Exact-output sells are not charged. |
| Fee can change | No. FEE_BPS is a constant with no setter. |
| Threshold | 0.5 ETH |
| Caller reward | 0.006 ETH (1.2% of the threshold) |
| Chain | Ethereum mainnet · Uniswap v4 |
| Pair | WETH / BRICK — an ERC-20 leg, so explorers and aggregators index the pool correctly |
Nearly two thirds of every pot — 62.5% — is spent on the token itself: liquidity that cannot be removed, and supply destruction. The remainder funds operations, and the team holds zero supply.
Allocation percentages describe the distribution of each 0.5 ETH pot at the moment a masonry event executes. They are fixed constants in the contract and total 100%.
Cumulative ETH credited to permanent liquidity, divided by circulating supply. Credited ETH only rises and supply only falls, so this figure cannot decrease. It is an accounting ratio, not a redemption right — no holder can exchange BRICK for that ETH, because it sits in a position nobody can remove. The contract calls it impliedLiquidityPriceWei() and not a floor, deliberately.
What the position actually holds right now. The LP is full-range, so its composition shifts with price. It is not the same number as the one above.
What the pool will trade at. Set by supply and demand. Nothing in the contract sets, defends, or targets it.
Two, both enforced in code: liquidity added by the hook cannot be removed by any address, and burned supply cannot return. Everything else is a consequence, not a promise.
How BRICK is designed to operate
1,000,000 BRICK was minted once. The token has no owner, mint function, blacklist, pause function, or upgrade path.
A 2% fee on defined ETH/BRICK swap types builds the masonry pot.
Once the threshold is reached, any address can call layBrick(). Each event processes one threshold.
Liquidity added by the hook cannot be removed, and burned BRICK cannot return to circulation.
The accounting floor is a transparent on-chain metric: cumulative ETH credited to permanent liquidity divided by circulating supply.
Pre-launch review is underway. Source, tests, parameters, and review notes will be published before deployment.
| Item | State |
|---|---|
| Deployment | Not deployed. No token, pool, bricks or on-chain history exist yet. |
| Token address | Does not exist yet |
| Hook address | Does not exist yet |
| Pair | WETH / BRICK |
| Chain | Ethereum mainnet · Uniswap v4 |
| Pair | WETH / BRICK — an ERC-20 leg, so explorers and aggregators index the pool correctly |
| Supply | 1,000,000 BRICK, fixed at deployment |
| Test suite | 27 of 27 passing, including the mainnet-fork launch rehearsal against the canonical PoolManager |
| In-house review | Adversarial review complete and published, including known open items |
| Third-party audit | Not started. No audited language should be used until one is complete. |