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.0025 ETH 0.5% 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 0.5% execution reward — 0.0025 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 ETH side of a trade in the protocol pool, collected as ETH by the hook. 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 0.5% 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.0025 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.0025 ETH (0.5% of the threshold) |
| Chain | Ethereum mainnet · Uniswap v4 |
| Token contract | Pending deployment |
| Hook contract | Pending deployment |
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.
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 addresses exist yet. |
| Chain | Ethereum mainnet · Uniswap v4 |
| 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. |