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.
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 buybacks. 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. |