Supply1,000,000 PairWETH / BRICK ChainEthereum
OwnerNone MintNone PauseNone BlacklistNone LP removalReverts StatusPreview · not deployed
Preview mode · no live funds deployed

Fees in. Bricks out.

BRICK is a programmable liquidity mechanism built around a Uniswap v4 hook. When the pool's fee pot reaches its threshold, anyone can trigger a masonry event.

2% hook fee · 0.15 ETH masonry threshold · fixed supply · permissionless trigger

1,000,000 bricks · 0.15 ETH a course · one brick per block · no door

Masonry eventSimulated
Event·
Block·
Mason·
Credit·
Preview event · not live
0.00 / 0.15 ETH to next eventPreview data
Drag to inspect

Structure preview unavailable on this device

Fig. 01 · structure, simulated
Permanent liquiditySimulated
·
No events yet
Masonry eventsSimulated
·
No events yet
BRICK sent to graveSimulated
·
No events yet
Execution thresholdConstant
0.5 ETH
Fixed constant · BRICK_THRESHOLD
01

The problem with token fees

Almost every token with a fee charges it the same way. A percentage of your trade is taken, and it leaves.

It goes to a treasury, a marketing wallet, a team multisig. The pool you traded in is no deeper than it was before. The supply is no smaller. You paid, and nothing you can point to got better.

BRICK charges 2% and spends 62.5% of it on the token itself. Not on a roadmap. On liquidity that cannot be withdrawn, and on supply that is destroyed.

The usual arrangement
your feeleaves the pool
the pool is no deeper afterwards
This one
your feestays as liquidity and burn
and it cannot be taken back out
02

How the machine runs

STEP 1

A swap pays the hook 2%

Every swap in the official pool pays 2% on the ETH side. Both directions, and both exact-input and exact-output, so there is no shape of trade that avoids it.

The fee is taken by the hook itself rather than by the token, which is why a transfer between two wallets costs nothing.

FEE_BPS = 200
TraderPool WETH in BRICK out 2% fee ETH side, both directions
STEP 2

It accumulates in the 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 it out in the meantime.

There is no withdraw function on the contract, for any address, including the one that deployed it.

pot += fee
pot 0.15 ETH every eligible swap no withdraw function, to any address
STEP 3

At 0.15 ETH anyone can trigger it

Once the pot reaches the threshold, any address may call layBrick(). There is no allowlist, no keeper role and no privileged caller.

Whoever calls it is paid 1.2% for the gas they spent. That is the whole of what they get.

BRICK_THRESHOLD = 0.15 ether
any address may call layBrick() caller 1.2% reward
STEP 4

The pot splits four ways

One hundred bricks, one per percent. Thirty-five become liquidity, twenty-seven go to the quarry, and the rest funds operations with the caller’s 1.2% carved out of it.

The four numbers are constants. Nothing in the contract can change them.

LP 3500 · BURN 2700 · OPS 3800 · KEEPER 120
1 brick = 1% of a pot
35Permanent liquidity 27The quarry 38Operations, incl. 1.2 keeper
STEP 5

The liquidity has no way out

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.

revert FloorIsPermanent()
position liquidity in no way out beforeRemoveLiquidity reverts for every caller
STEP 6

The trade that filled it earns the brick

The brick is credited to the swap that carried the pot over the threshold, not to whoever won the race to trigger it.

Triggering is permissionless and pays, so a bot wins that race every time. It takes the ETH. It does not take the record.

wall[idx].mason
the brick filling trade not the bot mason recorded on chain, permanently
03

The wall, and who built it


Masonry history renders here once deployed.

Build the wall

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.

Simulated
Holder brick

Live, balance-proportional visual representation. Updates when you buy, sell, transfer, or split BRICK across wallets. Not permanent.

Masonry brick

Permanent monument growth. The monument grows by one structural brick when layBrick() is successfully triggered. It never shrinks.

Hover or tap a brick Area is proportional to balance · live state, not permanent

The holder wall above is a visual representation of current balances. Drawing your brick there does not mint anything, create a separate token, grant governance rights, or change the masonry accounting. It is a picture of who holds what, right now. The collection in §02 is the separate thing that is minted, and it is minted from masonry events, not from balances.

04

What a masonry event leaves behind

Every masonry event is an object. The hook records the block, the mason, the ETH locked into liquidity and the BRICK destroyed; the collection mints that record as a fully on-chain brick. No server, no IPFS, no external dependency. The image is generated by a contract and read straight off the chain.

Events laid0
Minted0
Unclaimed0
Mint costGas only

Nothing is random

The fire is read off the BRICK that event destroyed. The protocol spends a near-fixed amount of ETH on each buy-and-burn, so the tonnage it buys falls as the price rises. An early brick is coarse and heavy, a late one dense and small. A brick carries the market it was made in. Scarcity comes out of history, not a rarity table.

Quarried bricks

When the quarry’s miners claim the burn slice, no clay is cut. Those bricks are struck through and unfired, and they exist only because somebody chose to destroy their own BRICK into that epoch.

The mason’s mark

A lattice glyph walked from the mason’s address, struck into the frog: the recessed panel a brick is moulded with and stamped in. One per hand, and never chosen by the person carving it. Anyone may pay the gas to mint a brick; it always goes to the trader who earned it.

Specimen renders · no masonry event has happened yet

Specimen brick, fired
Specimen · fired
Specimen brick, raw clay
Specimen · raw clay
Specimen brick, quarried
Specimen · quarried
05

What can be changed

What the machine does not do

Nothing below is a promise. Every row is either enforced by code you can read or it is not, and the right-hand column is how you check rather than take our word.

ControlPositionVerify
Owner / adminNone Brick.sol has no Ownable, no onlyOwner, no roles
MintImpossible no mint function exists; supply fixed at 1,000,000
Upgrade pathNone no proxy, no delegatecall, no implementation slot
Fee2%, fixed FEE_BPS is a constant, with no setter on the hook
Team allocationZero whole supply enters the pool at launch; no vesting contract
Team revenue36.8% of each pot OPS_BPS, paid in ETH to one immutable address
Liquidity withdrawalReverts beforeRemoveLiquidity reverts for every caller, deployer included
Deployer powersbindPool, seedFloor both one-shot, both inert after launch, neither moves funds
Pause / blacklistNeither exists no pause modifier, no transfer hook on the token
Independent auditNot done in-house review complete, published at deployment
The launch, rehearsed before it was run

Every step below was executed against the real Uniswap PoolManager on a fork of Ethereum mainnet: real transactions, real gas, real reverts where they belong. It is not a plan. It is a receipt for a dry run.

Launch rehearsal 6 / 6 confirmed
1 Parameters2 Funding 3 Deployment4 Liquidity5 Events

Full deploy executed against the canonical Uniswap PoolManager 0x0000…8A90 on a fork of Ethereum mainnet, block 25,644,824. Real transactions, real gas. Not a simulation, and not yet mainnet.

Deploy $BRICK 0x1584a2fb…61fcb0 547,576 OK
Mine + deploy hook 0xd36b8fc1…431317 4,888,528 OK
Initialise pool 0x2387f813…2d0832 51,276 OK
Bind pool 0x17aade89…e796b1 114,536 OK
Fund hook with supply 0x35dc1426…b8e537 46,826 OK
Seed founding liquidity 0xb2c52242…f66d26 304,515 OK
Confirmed Preview Failed Step 5 begins at mainnet launch
block 25,644,829 0xb2c5…6d26 SeedFloor · founding liquidity Confirmed
Total gas 5,953,257 Supply left on hook 19 wei Masonry events · simulated

The last row is the one that matters most, and it is the one we cannot tick. Treat everything on this page as self-attested until the source and the review are public.

06

Burning BRICK for a share of the fee

Mining is destruction

You mine by destroying BRICK. The tokens go to the grave and never come back, and in the same transaction circulating supply falls, and that is the only input to the accounting ratio this protocol is built on. There is nothing to unstake.

Paid from fees, not emission

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.

You mine into the next brick

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.

Epoch
The window your burn is counted in. It closes when the next brick is laid, and everything destroyed inside it shares one slice.
The course
Every burn in one epoch, laid side by side. Your width is your share of that slice, and it shrinks as other people join.
Settling
The brick after the one that closed your epoch. Only then does the ETH exist to claim, and nothing guarantees it arrives.
The grave
0x…dEaD, where destroyed BRICK goes. There is no path back, for anyone, including the protocol.

Cut the face

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.

Preview
Rate · ETH per 1,000 BRICK destroyed
·awaiting deployment
Epoch fillof its 3× ceiling
Open epoch·
BRICK destroyed this epoch·
Miners this epoch·
Settling next·
Slice per masonry event0.0405 ETH, split across the epoch
Maximum payout3× what you destroyed, priced at settlement
Destroy BRICK
BRICK
Connect a wallet to see what a cut would earn.
Irreversible, and settlement is not guaranteed. Destroyed BRICK cannot be recovered by anyone, including the protocol. Your epoch pays only once two further bricks are laid, and each brick needs roughly 7.5 ETH of trading through the pool. So if the pool goes quiet, your ETH does not arrive late. It does not arrive. The BRICK is gone either way.
Settled · claimable
·ETH

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.

Hover or tap a slab Slab width is proportional to BRICK destroyed
If nobody mines

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.

If an epoch is thin

Payout is capped at three times the pool-price value of the BRICK destroyed, priced when the epoch settles rather than when you burned. A lower price at settlement means a lower ceiling. Whatever the cap declines goes to the same buy-and-burn, and destroying one BRICK cannot capture a whole slice.

EpochDestroyedMinersPaidRate / 1kYour claim
No epochs have settled. Mining begins when the pool does.

Mining does not mint a token, an NFT or a position. It grants no governance rights, and it is not a yield product.

What an epoch pays depends on two things you do not control: how much the pool traded, and how much BRICK everyone else destroyed alongside you.

So mining can lose money. In the worst case it returns nothing at all. An epoch that never settles never pays, and the burn is not reversed to compensate.

The BRICK is gone either way.

07

Where every fee goes

Eligible swaps pay a 2% fee on the ETH side. Fees accumulate inside the hook until the balance reaches 0.15 ETH, about 7.5 ETH of trading through the pool. Any address can call layBrick() and receive a 0.0018 ETH execution reward. The remaining balance is processed by the fixed allocation rules below. Nothing forces that volume to exist: the protocol builds at exactly the rate the pool is used, and at no volume it does not build at all.

Parameters
ParameterValue
Execution functionlayBrick()
Fee applies toEvery swap in the protocol pool, both directions and both exactness modes
Fee can changeNo. FEE_BPS is a constant with no setter.
Threshold0.15 ETH
Caller reward0.0018 ETH (1.2% of the threshold)
ChainEthereum mainnet · Uniswap v4
PairWETH / BRICK. An ERC-20 leg, so explorers and aggregators index the pool correctly
0%
The footingprotocol-owned liquidity
Added as full-range LP owned by the hook. The remove-liquidity path reverts for every address.
0%
The quarrysupply destruction
Paid to the miners who destroyed BRICK in the settling epoch. Whatever they do not take buys BRICK and sends it to a dead address instead. Either way circulating supply only decreases.
0%
The yardoperations, one fixed address
Paid in ETH to a fixed address set at deployment. The team holds no tokens, so this is its only revenue.
0%
The mason’s feepaid to whoever lays the brick
Paid to whoever calls layBrick(). Deducted from the operations share, so the four figures total 100%.

Allocation percentages describe the distribution of each 0.15 ETH pot at the moment a masonry event executes. They are fixed constants in the contract and total 100%.

Four different things, often confused

Implied liquidity price

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.

Active liquidity

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.

Market price

What the pool will trade at. Set by supply and demand. Nothing in the contract sets, defends, or targets it.

Protocol guarantees

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.

08

What is not guaranteed

What BRICK does not do, and what is still open

Guarantees

Two protocol rules enforced in code

Liquidity added by the hook cannot be removed, and burned BRICK cannot return to circulation.

These two rules hold regardless of market conditions, and the removal path reverts for every address including the deployer. Everything else is a consequence rather than a guarantee. Outside liquidity providers cannot add to or rebalance the managed position, and founding liquidity cannot be withdrawn by anyone, including whoever provided it.
Metric

Implied liquidity price

The accounting floor is a transparent on-chain metric: cumulative ETH credited to permanent liquidity divided by circulating supply.

It is not a redemption price, a market-price guarantee, or a promise of value. Credited ETH only rises and circulating supply only falls, so the figure cannot decrease. But the liquidity is full-range, so what the position holds at any moment varies with price. brickStats() returns every input, so the figure can be recalculated independently.
Review status

Review status

The in-house adversarial review is complete. It has not been published yet, and no independent third-party audit has been done.

97 of 97 tests pass, including a full launch rehearsal that deploys, binds, funds and seeds against the canonical PoolManager on a fork of Ethereum mainnet. The adversarial in-house review is complete, and it is written down: findings, fixes, and the items still open. It is not yet public, so treat everything on this page as self-attested until it is: the source, the tests and the review notes are published at deployment, alongside the addresses that make them checkable. Verify then, not now. No independent third-party audit has been completed, and audited language should not be used until an external review is finished.
09

Read the code

ItemState
DeploymentNot deployed. No token, pool, bricks or on-chain history exist yet.
Token addressDoes not exist yet
Hook addressDoes not exist yet
ChainEthereum mainnet · Uniswap v4
PairWETH / BRICK. An ERC-20 leg, so explorers and aggregators index the pool correctly
Supply1,000,000 BRICK, fixed at deployment
Opening valuationThe whole supply enters the pool at a 21 ETH fully-diluted valuation, roughly $40,000 at $1,917/ETH. The launch is single-sided: the pool opens holding every BRICK and no ETH, so no capital is committed at launch and nothing is bought. Buyers walk the price up through the founding range, and the ETH they pay accumulates inside it.
Test suite78 of 78 passing, including the mainnet-fork launch rehearsal against the canonical PoolManager and six stateful invariants over 96,000 random operation sequences
In-house reviewAdversarial review complete and published, including known open items
Third-party auditNot started. No audited language should be used until one is complete.
10

Questions

Does every BRICK trade pay the fee?
No. In Uniswap v4 a pool is identified by its two tokens, its fee tier, its tick spacing and its hook. The hook governs the one pool it is bound to, not the token. Any address can create a second BRICK/ETH pool with no hook attached, and trades routed through that pool pay nothing to the protocol. This is not hypothetical: one recent v4 launch has 242 pools, of which 233 carry no hook. What protects fee capture in practice is depth, not permission. Routers send orders to the pool with the best price, and the protocol pool's liquidity is permanent and grows with every masonry event, while a rival pool would need someone to fund and maintain it at a loss. The claim this site makes is therefore "trades in the protocol pool pay 2%", and nothing stronger.
Can the liquidity be removed?
No. It is held by the hook contract and the remove-liquidity path reverts for every caller, including the deployer and the hook itself. There is no emergency withdraw function. This is verified against the real PoolManager on a mainnet fork.
How does the team make money?
62.5% of every pot is spent on the token: 35% into liquidity that cannot be removed, 27% on destroying supply: paid to the miners who burned BRICK in the settling epoch, or spent buying BRICK and sending it to a dead address when no one mined. The remaining 36.8% is paid in ETH to a fixed operations address, after the 1.2% execution reward is carved out for whoever triggered the event. That fee is the team's only revenue: there is no token allocation, no vesting schedule and no unlock, because the entire supply seeds the pool at deployment. A team holding none of the supply and taking a disclosed, fixed share of fees cannot quietly sell into you, which is the failure mode a token allocation exists to enable.
Is mining a way to make money?
It loses money as easily as it makes it. You destroy BRICK, permanently, in exchange for a pro-rata share of 27% of one masonry pot, 0.0405 ETH at a full pot. Whether that trade is profitable depends on two things you cannot know when you commit: how much BRICK everyone else destroys into the same epoch, and whether the pool trades enough to fill the next pot at all. If a hundred people crowd one epoch, each of them gets a hundredth of the same slice. The payout is also capped at three times the pool-price value of what you destroyed, and that price is read when the epoch settles, not when you burned, so a fall in the meantime shrinks the ceiling with it. There is a ceiling on the upside and no floor under the downside beyond the tokens you chose to burn. The guarantee is narrow: the ETH is real, it came from trades that already happened rather than from newly minted supply, the split is a constant nobody can change, and the claim never expires. It does not guarantee that mining pays.
What is the worst case for a miner?
You destroy BRICK and receive nothing, permanently. An epoch is funded by the brick laid after the one that closes it, and each brick requires the pot to reach 0.15 ETH, roughly 7.5 ETH of trading through the protocol pool at the 2% fee. If trading dries up before that happens, the epoch is never funded: there is no expiry that refunds you, no treasury that makes you whole, and no function that returns burned supply, because the burn is what makes the mechanism work in the first place. The claim itself never expires, so an epoch funded a year late still pays in full. But nothing guarantees it is ever funded. Mine on the assumption that the tokens are gone and the ETH is a maybe, because structurally that is exactly what it is.
Why proof-of-burn instead of a round-based game?
Because the wager version pays winners out of losers, and this protocol's only claim is that its accounting ratio rises by construction. Proof-of-burn is that claim made callable: the BRICK goes to the grave, circulating supply falls, and the ratio rises in the same transaction. There is also no randomness to relay. A round-based game needs a beacon or a VRF to be live or the protocol stops turning, and this one needs nothing but the pool.
What happens to the 27% if nobody mines?
It buys BRICK from the pool and sends it to a dead address, exactly as the protocol did before the quarry existed. The same applies to any part of the slice the payout ceiling declines. This is deliberate: the worst case for the mining layer is the behaviour of the version without it, so adding it cannot leave holders worse off.
Is there a team allocation or unlock?
No. The full 1,000,000 supply is minted once and seeded into the pool. There is no vesting schedule, no treasury wallet, and no mint function.
What does the implied liquidity price actually mean?
Cumulative ETH credited to permanent liquidity divided by circulating supply. It cannot decrease. It is not redeemable and it does not set market price. See the four definitions under Mechanics.
Who can trigger a masonry event?
Any address, once the pot reaches 0.15 ETH. There is no allowlist and no privileged caller: the function is open, and whoever calls it receives a 1.2% execution reward of 0.0018 ETH at a full pot. Open is not the same as reliably profitable. The call costs about 465,000 gas, so the reward covers it up to roughly 3.9 gwei; above that, calling it loses money and there is no reason to expect a stranger to. The team therefore runs a keeper as a backstop, which earns the operations share regardless and can afford to lay a brick at a loss when gas spikes. The trigger is permissionless. The expectation that the open market always carries it is not something this protocol relies on.
Where are the full limitations written down?
Under Limitations. Every plate expands to the technical detail, including what is still open. The complete in-house review, with the findings that remain unresolved, is published alongside the source at deployment, not before. Until then this page is self-attested, and worth reading as such.
What if the operations address stops working?
Nothing halts. The payout is attempted without reverting, so a failed transfer cannot block masonry events. The failure is recorded as an event.

Nothing here comes back out.

That is the whole idea. A pool that takes a fee, keeps it, and turns it into liquidity nobody can remove and supply nobody can get back. It runs whether anyone is watching or not.

Where this stands

Nothing is deployed. There is nothing to buy yet, and anyone offering you a BRICK contract address today is selling you something else.

The token address, the hook address, the source and the review all land on this page on launch day, together, because they are only worth anything to you as a set. Until then every figure here is a model and says so.

Follow @brickonchain The deployment transaction is posted there first
Preview Chain Ethereum Pair WETH / BRICK Pot 0.00 / 0.15 ETH Epoch · Rate · ETH/1k Masonry events 0 simulated