what this is
Two pieces of software, deployed separately, doing different jobs.
The hook is a Uniswap v4 contract. A v4 pool can nominate a contract that the PoolManager calls at fixed points during a swap. Ours implements afterSwap and takes a small share of the swap on the way past. What it earns depends entirely on how much volume runs through pools attached to it.
The factory is the contract that holds your money. It records who owns which node, keeps each node balance as real ETH, and lets the owner of a node withdraw that balance directly. It knows nothing about swaps, and it would behave the same whether the value credited to nodes came from swap flow, from us, or from anywhere else.
where the value comes from
Read this part before you deploy anything.
A Uniswap v4 pool fixes its hook at the moment it is initialised and can never change it afterwards, so a hook cannot be bolted onto pools that already exist. Until pools are created that name the hook, and those pools carry real volume, the hook earns nothing.
While the launch period runs, node balances are funded by us rather than by trading volume. The Uniswap v4 hook meant to take that job over has no pools attached to it yet. Once pools are attached and the protocol switches to swap-funded mode, accrual comes from swap flow instead. Launch-period funding can be reduced or stopped at any time.
Nothing on this site promises a return, a rate or a payback period, because nobody can honestly promise one. A node accrues whatever is credited to it, and what gets credited depends on decisions and volumes that have not happened yet.
what a node is
A node is a numbered record in the factory, owned by the address that paid for it. Minting one writes four things on chain: the node id, the owner, the timestamp, and the hash of the payment that bought it. From then on the record carries a balance as well.
- A node has an id. Ids run in sequence from 1 and are shown zero padded, so the first one is
#0001. - A node has an owner. Only that owner can withdraw from it, and the contract checks
msg.senderagainst the owner on every call. - A node has a balance, and that balance is real ETH sitting in the factory against your id, not a figure someone promises to honour later. Next to it the contract keeps
totalReceivedandtotalWithdrawn, and both only ever go up. - A node is not a token. No
transfer, no marketplace, no price beyond what you paid for it. - One wallet may hold up to 70 nodes, and the contract enforces that inside
mintFor.
how money moves
Purchase money and payout money never meet, because they never share an address. That separation is structural rather than a rule the contract has to police.
Purchases go to a wallet, not to a contract. You buy a node by sending a plain 0.02 ETH transfer to the payments wallet, which is an ordinary account. A watcher sees the transfer and the relayer calls mintFor(to, paymentRef) and pays the gas, where paymentRef is the hash of your payment. The factory never receives purchase money and has no price to check, so there is nothing inside it that could be paid back out as a reward.
Payouts arrive with the ETH attached. The distributor calls creditBatch(ids, amounts) as a payable call and the contract rejects it unless msg.value equals the sum of the amounts, so a balance can never exist without the ETH behind it. Anyone can also top the contract up through fund(), which adds unattached balance and credits no node.
Withdrawal needs nothing else. The owner calls withdraw(id, to) or withdrawAll(to) from their own wallet and the contract sends the whole balance to the address named in the call.
what this is not
- Not a staking contract. Nothing is locked and there is no principal earning a rate.
- Not a fund. Nothing is managed on your behalf, and a node is not a claim on a pool of assets.
- Not a token sale. There is no token, and the 0.02 ETH buys a node and is not refundable.
- Not audited. The code is public and unaudited, and we would rather write that here than leave you to find out.
the chain
Everything runs on Robinhood Chain, chain id 4663. ETH is the native currency and gas is paid in it. If your wallet has never seen this network, the dashboard offers to add it for you.
where to go next
If you want to deploy a node, open the dashboard and connect a wallet. If you would rather understand the mechanism before spending anything, read how the value is funded today and then look at the two addresses on the home page.