How pNET emissions and LP rewards work
pNET is an inflationary token built around Uniswap v4. Eligible transfers accrue pNET. A capped cycle later mints the accrued amount and swaps it through the pNET/NET pool. NET and native ETH outputs are accounted for as rewards to activated LP stakers, subject to the rules below.
Where do the rewards come from?
The reward assets come from swapping newly minted, previously accrued pNET against Uniswap v4 pool liquidity. The cycle converts pNET into NET, then converts half of that NET into native ETH. It is a token-to-token conversion mechanism, not an external revenue stream or a fixed-yield promise.
What stakers receive
Eligible, activated LP NFT positions share the NET deposited by cycles and 75% of the native ETH output. The distributor accounts for those assets under its share rules. Actual amounts depend on cycle activity, swap prices, liquidity, fees, and each position's reward share.
What the mechanism does not imply
Minting pNET and swapping it does not create guaranteed profit or external income. Pool counterparties and available liquidity determine the outputs; market price, slippage, pool fees, and the hook fee affect the conversion. No APR or return is promised.
How an emission cycle works
A transfer does not trigger a swap. It can add a small amount to a pending balance. A later cycle mints only accrued pNET, performs the route atomically, and accounts for both LP rewards and the executor incentive.
Accrue
Eligible transfers accrue 55 basis points (0.55%) into pendingMint. Eligibility follows the protocol's configured sender, executor, and exclusion rules. It does not mint immediately.
Check
For the public path, anyone can submit a cycle, but the on-chain quote guard must accept the observation window, spot-versus-TWAP deviation, output floors, sqrt limits, and frozen policy envelope. Accrued amount, active reward shares, enabled processing, cooldown, and emission caps must also pass.
Swap
The controller mints the selected accrued pNET to the adapter. The adapter sells pNET through the hooked pNET/NET v4 pool, then swaps half the NET output through the separate NET/native-ETH v4 pool.
Account
The hook takes 5% of gross exact input in the input token for the immutable treasury. Half the cycle's NET output remains for LP rewards. Of native ETH output, 25% goes to the transaction executor; the remaining 75% goes to LP rewards.
Atomic execution: if a swap, output floor, or deposit check fails, that transaction's on-chain state changes revert together. The sender still pays gas for the failed transaction.
The route uses native ETH, not WETH. The 5% hook fee is inclusive of gross exact input: for a pNET exact-input sale, the fee is pNET; for an exact-input buy using NET, the fee is NET. The hook supports the configured pool and exact-input flow; it rejects exact-output swaps and partial fills.
Emission rules
These are on-chain limits, not forecasts or promises that the maximum will be emitted. Every cycle needs eligible pending accrual and must fit the remaining capacity in every applicable window.
| Rule | Current contract limit | What it means |
|---|---|---|
| Initial supply | 1 pNET | 18-decimal token; the initial supply is minted to the genesis allocation. |
| Transfer accrual | 55 bps (0.55%) | Eligible transfers add to pending accrual. This does not mint immediately. |
| Per cycle | 0.000888 pNET | A cycle cannot mint more than this, even if more is pending. |
| Rolling L2-block window | 0.00327672 pNET / 369 Robinhood L2 blocks | Old mints leave the window as the L2 block counter advances. |
| Rolling time window | 0.25 pNET / 24 hours | Old mints leave this window based on elapsed time. |
| Regular cycle interval | 300 seconds | At least five minutes between successful ordinary cycles. |
These caps constrain issuance pace, not price impact, slippage, or the value of pNET. Pending accrual can remain unprocessed while a cap is full or another precondition fails.
TWAP observations and policy
The hook records pool observations. The on-chain quote guard reads them and checks current market state before a public cycle. No off-chain reporter is required to submit price reports in this route.
Record, don't trade
The treasury hook records observations for the founding pNET/NET pool and exposes a consult function. It does not start a cycle, decide to trade, or send a keeper transaction by itself. A minimum observation history and freshness are required.
Check before execution
The guard compares spot and time-weighted ticks, enforces output floors and sqrt-price limits, and checks the selected window. The current initial window is 900 seconds (15 minutes); supported policy windows are bounded from 15 to 30 minutes.
Changing the policy
Policy updates are delayed and must remain within the configured envelope. Anyone can activate an eligible update after the delay, with market conditions checked again at activation. If market conditions do not satisfy the policy, regular cycles may remain unavailable until conditions or policy change.
TWAP summarizes past pool observations and acts as an execution condition; it does not establish a guaranteed market value. Pool liquidity and observation history affect the result.
LP staking and reward batches
One designated pNET/NET v4 position
The vault accepts the configured founding pool's eligible LP NFT. It holds the NFT while staked and calculates shares from eligible position liquidity. It is not a general-purpose vault for arbitrary pools.
369 Robinhood L2 blocks, then activate
A newly staked NFT does not earn rewards immediately. It must pass the block-based maturity period and then be explicitly activated. This is a block count, not a guaranteed number of seconds.
Dual-asset rewards
The distributor accounts for NET and native ETH. The cycle deposits retained NET and 75% of native ETH output for active LP reward shares. There is no fixed APY, guaranteed token amount, or promise of positive return.
30-minute batch eligibility
Every 30 minutes an epoch can become eligible for processing. Anyone may call the keeper; one transaction handles at most 25 accounts from a stable snapshot. Larger snapshots can require multiple calls. NET and native-ETH claims are attempted independently, so one asset's transfer failure should not block the other asset or all remaining accounts. Failed amounts remain claimable through a later sweep or direct claim.
Not automatic: the EVM does not wake up by itself. “Every 30 minutes” describes eligibility timing. A user, community keeper, or automation service must submit the transaction; delays are possible when nobody does.
Operation and recovery
Normal public path
Off-chain tools may watch observations, balances, cap room, cooldowns, and sweep state to decide when a transaction is worth attempting. The on-chain contracts recheck the safety-critical conditions. The observer/runner is operational convenience; it does not receive exclusive authority over regular cycles or reward batches.
Observe state
Read current contract state, observation history, policy version, pending accrual, remaining caps, cycle eligibility, active LP shares, and reward-sweep cursor.
Decide whether to submit
Simulate and estimate gas. Do not treat a keeper reward as a guaranteed reimbursement: the executor share is 25% of actual native ETH output and may be below gas cost.
Submit, verify, reconcile
After submission, verify the receipt and emitted events, then reconcile cycle mint, outputs, treasury fee, reward deposits, and any failed claims. A submitted transaction is not a completed operation until its result is checked.
If cycles become unavailable
- Inspect accrual/cycle settings, pending accrual, remaining caps, cooldown, active shares, and controller readiness.
- Check observation age/history, spot deviation, output floors, price limits, pool liquidity, and the exact revert. A reverted transaction still costs gas.
- If the market moved and the guard behaves as designed, a policy proposal may be needed. Its six-hour delay and envelope are intentional; activation rechecks market conditions.
- If the quote guard itself is defective, the replacement process is described in the administrative-controls disclosure.
- The exceptional cycle path and its different price checks are described in the administrative-controls disclosure.
None of these steps guarantees uninterrupted operation or recovers market value. The contracts cannot determine whether an incident is truly resolved.
Risks and limitations
Inflation and token value
pNET is inflationary. Successful cycles increase supply using previously accrued amounts. Caps limit the pace of minting but do not set a market price, redemption value, or guaranteed return. Pending accrual can remain unprocessed.
Pool depth, hook fee, and slippage
The 5% exact-input hook fee reduces the input available to the pool. Pool fees, price impact, NET-to-native-ETH execution, and liquidity conditions affect the result. A cycle can be valid under its checks and still be economically poor.
TWAP and execution availability
Observation-based TWAP is not an independent guarantee of fair value. A shallow pool or sustained price movement can affect observations or make regular cycles ineligible. The owner bypass weakens those checks and depends on carefully reviewed owner-supplied limits.
Keeper payments and gas
Executor pay is variable: 25% of actual native ETH output, with a pull credit if push payment fails. It may not cover gas. Public upkeep is permissionless, but not guaranteed to run on time.
Administrative controls and key roles
Routine regular cycles and due reward batches can be submitted by any address when their checks pass. The following configuration and intervention powers are privileged and should be verified for each deployment.
| Role | Authority | Purpose and tradeoff |
|---|---|---|
| Owner | Appoints operator/guardian; controls accrual, cycle, and stop switches; manages exclusions and one-time wiring; configures TWAP policy; proposes guard replacement; executes the owner-only TWAP-bypass cycle. | Provides configuration and a capped continuity route if TWAP/policy blocks normal cycles. The owner has broad trust and can select permissive bypass floors/limits. |
| Operator | Adds/removes trigger accounts and trigger executors. | Defines which transfer sources can accrue. The operator cannot mint directly, change emission ceilings, bypass TWAP, or call the owner-only path solely by holding the operator role. |
| Guardian | Can set the stop state and cancel pending TWAP policy or quote-guard replacement proposals. | Allows a pre-appointed emergency key to interrupt cycle execution or stop a pending change. It can also resume cycles or cancel a legitimate proposal. |
| Treasury EOA | Receives the immutable hook fee in the swap input token. | Fee receipt is on-chain; use of funds after receipt is outside the contract. Treasury status alone grants no cycle or LP-reward authority. |
The owner and guardian can each pause and unpause. If privileged roles share one EOA, the separate role names do not provide separate-key protection. A public keeper also does not guarantee that a transaction will be sent, included, or profitable.
Cycle and accrual stop controls
The owner and guardian can set the token/controller stop state. At token level, this prevents new transfer accrual and blocks regular and owner-bypass cycles. It does not freeze ordinary pNET transfers, erase pending accrual, or by itself stop the separate reward distributor and batch claims. The controller has its own stop check. These controls exist so cycle execution can be interrupted while a route, policy, or dependency is investigated; they can also delay otherwise valid cycles. The owner-controlled accrual and cycle switches are separate and do not erase pending accrual.
The purpose is to stop the accrual-and-swap process, not to freeze user balances. The public ERC-20 transfer function remains available while the stop state is active.
Owner-only TWAP-bypass cycle
processOwnerRecoveryCycle is onlyOwner; the cycle controller additionally requires the token owner to be the executor. Operator status alone is insufficient. This path can keep a capped cycle available when the regular TWAP quote or approved policy blocks execution, but it bypasses TWAP and the frozen policy envelope. The owner supplies minimum outputs and sqrt-price limits, so a permissive choice can accept a materially worse price.
It still requires cycle processing enabled, active reward shares, pending accrued pNET, and no token/controller stop state. It obeys the token's 0.000888 pNET per-cycle, 0.00327672 pNET per rolling 369 L2 blocks, and 0.25 pNET per rolling 24 hours caps. In controller recovery mode, it also obeys the separate 0.25 pNET per 24-hour controller cap while skipping that mode's 300-second cadence. The owner is the executor and receives the standard executor share.
Policy and guard change controls
TWAP policy updates must stay within the initial envelope, wait six hours, and expire two days after their activation time. Market conditions are rechecked at activation. The owner or guardian can cancel a pending policy. Quote-guard replacement has a separate 24-hour delay; activating a replacement permanently enters bounded controller recovery mode. These delays provide time to inspect a change while creating possible cycle downtime. Activation of an eligible policy update is permissionless.
LP custody, audit, and deployment status
The LP vault holds the staked NFT, so users depend on its custody and withdrawal logic. This wiki describes repository behavior; it is not proof of a live deployment or an independent audit. It also does not establish a token price or guaranteed reward. Verify deployed addresses, runtime bytecode, constructor configuration, privileged role assignments, pool keys, and manifest for the specific chain deployment.
Glossary
- pNET
- The 18-decimal inflationary token described by this implementation; initial supply is 1 pNET.
- NET
- The paired token and one of the LP reward assets.
- Native ETH
- Robinhood Chain's native gas asset. It is used for the second reward asset and executor incentive. WETH is not used in this route.
- Uniswap v4 hook
- A contract invoked at configured points in a v4 pool lifecycle. The pNET/NET hook takes the fee and records observations; it does not submit cycles.
- Treasury
- The immutable EOA receiving the 5% fee in the swap's input token.
- Basis point
- One hundredth of one percent. 55 bps = 0.55%; 500 bps = 5%.
- Trigger account
- A configured sender entry whose eligible transfers can accrue pNET. Its manager is described in the administrative-controls disclosure.
- Trigger executor
- A configured caller entry that may submit a transfer on behalf of a trigger account and still have it accrue.
- Pending accrual
- pNET amount recorded for future cycle minting. Accrual is not an immediate mint or a claim on a fixed value.
- TWAP
- Time-weighted average price derived from pool observations. It is a safeguard input, not a promise of fair market value.
- Policy envelope
- The initial bounded range restricting later TWAP policy updates.
- Permissionless upkeep
- A call available to any address without a keeper allowlist. It still needs valid state, timing, price checks, gas, and an actual submitted transaction.
- LP NFT
- The non-fungible token representing the eligible v4 liquidity position held by the staking vault.
- Maturity
- The 369 Robinhood L2-block wait between staking and eligibility to activate. It is not a fixed duration in seconds.
- Reward sweep
- A bounded NET/native-ETH claim batch eligible each 30-minute epoch. A caller must submit it.
- Executor share
- 25% of actual native ETH output allocated to the cycle transaction submitter, paid immediately or recorded as a pull credit. It is not guaranteed to cover gas.
- Recovery mode
- Controller state after delayed guard replacement, with an additional 300-second cadence and 0.25 pNET rolling 24-hour cap. The exceptional cycle path skips that cadence but not that cap.