Reference · Robinhood Chain
PNGS Operator Manual
What a PNGS launch creates, where the money sits, what a trade costs, and the contracts behind it on Robinhood Chain. Every figure below is read live from the deployment, not typed into this page.
- Floor oracle
- Trusted key
- A key posts each reserve's floor. Rises capped at 25%/h; drops apply at once.
- Reserve admin
- Trusted key
- Can pause a reserve and pull its NFTs. Has no function to withdraw reserve ETH.
Overview#
PNGS launches a coin against an NFT collection. The coin trades from its first block in two Uniswap V4 pools at once: one against ETH, and one against that collection’s reserve, an on-chain contract that holds ETH and buys real NFTs from the collection off the floor.
- Supply
- 1,000,000,000, fixed. All of it goes into the pools at launch
- Pools
- Two Uniswap V4 pools: coin/ETH and coin/collection reserve
- Liquidity
- Initial launch positions, locked permanently (scope)
- Trade fee
- 1% standard rate. Individual pools can differ (details)
- Creator share of fees
- 70% of the fee
- Custody
- Your wallet signs every transaction. Each reserve has an admin key that posts its floor price and can pause the reserve and pull its NFTs, but cannot withdraw its ETH (details)
Launching#
A launch mints a fixed-supply ERC20 and opens its pools in the same transaction. There is no bonding curve, no presale and no graduation step: the coin trades on public Uniswap V4 pools from its first block, at the address any explorer or aggregator reads.
For an NFT pair the supply is split half into the ETH pool and half into the collection pool. The creator names one opening valuation in dollars, and each pool’s opening price is derived from it and that side’s own dollar price (see pricing), so the two pools open at the same price and there is no gap for an arbitrageur to take out of the locked liquidity.
The standard token has no owner, no mint function, no burn and no pause. Nothing can be added to the supply after launch, and no key can freeze a holder’s balance, because the code to do it does not exist in the contract.
Creating a launch costs a flat 0.0005 ETH launch fee, read live from the factory, paid to the treasury, plus gas. At the contract level a single launch can open pools against up to 7 assets.
Collection reserves#
Each pairable collection has one reserve, the CollectionReserve contract. The coin’s second pool is priced in its units, and one unit is exactly one wei of ETH put in. Units are minted one-for-one against ETH, and every NFT the reserve owns was bought with that ETH, so issued units always match the capital put in.
How it buys NFTs
When the reserve holds enough ETH to buy one NFT at the posted floor and still keep its cash floor, anyone can call acquire with a listing. Three conditions must hold: the marketplace adapter is one the owner approved, the price is at or below the posted floor, and the purchase leaves the cash floor intact. The caller earns nothing; the NFT goes to the reserve. At most 5 NFTs come into a reserve per hour, bought or deposited.
Getting out
- ETH, at par.
redeemETHburns units for ETH one wei each, as far as cash on hand allows, first come first served. The purchase cash floor limits NFT spending; it does not reserve an ETH exit for every holder. - An NFT.
redeemNFTburns the reserve’s ask: the higher of the posted floor and what it paid, plus 10%, the same price as buying that item with ETH. While the floor is stale the ask still uses the last posted floor. Redemption still requires an available NFT and a successful collection transfer. Whatever an NFT fetches above what the reserve paid is swept to buy back and burn the reserve’s paired coin. - Through the pools. Selling the coin never requires touching the reserve yourself. A sell pays out through the coin’s pools, subject to liquidity and the quote.
Who sets the floor
The floor is posted by an oracle key, not read from a marketplace on chain. A drop applies at once, since a lower floor only makes the reserve pay less. A rise is limited to 25% per post and one post an hour. It goes stale after 8 hours, and purchases and NFT deposits pause until the next post. The reserve’s owner sets the oracle and the approved marketplace adapters. That is a trusted role, listed under risks.
Emergency switch
Besides choosing the oracle and the marketplace adapters, the reserve’s owner has an emergency path. Pause stops the reserve buying or taking in NFTs. Once a reserve is paused, the owner can pull its NFTs to any address, with no delay. The first NFT pulled ends that reserve’s NFT buying for good: it can never be unpaused. Every step emits an event.
No function lets the owner withdraw the reserve’s ETH. Cash only leaves through redeemETH (1:1, first come first served, while it lasts), NFT sales and redemptions, and the buyback sweep, and pausing does not block ETH redemptions. Every NFT the owner pulls was still bought with reserve ETH, and holders lose that backing, so the owner key is a trusted role.
Pairable collections (9)
| Collection | Reserve |
|---|---|
| StonkBrokersSTONK | 0x1004c6ebc2dc0d4dab7635f62b39b254516a596aExplorer |
| Chain MancersMANCERS | 0xae694470f5aa3ccda1919b8fa1d33af49f738847Explorer |
| HashcatsHCAT | 0x9d7c7d03d958d73b6c9ba506bf8c5d151c88c59bExplorer |
| Rekt TradooorREKT | 0x65b16d7fa0a410f866d45339b101582c7cce5ed1Explorer |
| WIF OutlawsWIFO | 0xdb658419753f343a352b2c2bb6563597cee75822Explorer |
| Gremlin CartelGREMLIN | 0x38a090fee377aa3aa5840e5acc07c5e013bf7f58Explorer |
| The Oil RigsOIL | 0x41a3f6d49181e9da6ed81356a2eb42eb3687430dExplorer |
| Script KiddiesKIDDIES | 0x94ac3c4c3ae845ed5b0145da4e6453216084f23bExplorer |
| NTRPYNTRPY | 0x2475c2eaf7210d83791ba079256aca6b1af165adExplorer |
Two pools, one price#
One coin in two pools is two markets for one asset. Left alone, every buy on the ETH pool opens a gap the collection pool does not have, and a bot closes it in the same block. The spread comes out of the buyer’s price.
So the fee hook does the split itself. On an exact-input buy in the ETH pool it routes half the trade through the collection pool and credits the coin to the buyer, inside the same swap. Sells mirror in reverse, so both pools move together. If the mirrored half cannot fill completely, the whole trade settles through the ETH pool instead of failing.
Opening prices come from the price oracle: Chainlink ETH/USD for the ETH side, and the reserve’s posted floor times ETH/USD for the collection side. A missing or stale price is refused, and the launch reverts instead of opening at a bad price.
Liquidity lock#
Each initial launch LP position is minted directly to the liquidity locker, which checks it owns the position. The locker has no transfer, no withdraw, no remove-liquidity path, no owner and no upgrade path. Nothing in the code can remove those positions. You can verify the locker bytecode at the linked address.
This lock covers the initial launch positions only. Anyone adding liquidity later may own a removable position, including a buyer-owned supply range. Check each position’s owner, range and withdrawal rights separately; a price range does not guarantee execution or timing.
The one thing the locker can do is collect, and on V4 that means removing zero liquidity from the position, which leaves it untouched. Anyone may trigger collection. Since launch pools charge no LP fee (the hook takes the trade fee instead, see fees), nothing normally accrues to the position itself.
Locker0x0c2ec2730828902549205ac00F6B72a584328B50Explorer
Fees#
The standard trading fee is 1%, on buys and sells. Individual pools can use an override; gas is separate. At the standard rate, a trade pays 1%: 0.7% to the creator (or to buy & burn, if they chose that at launch) and 0.3% to the protocol. The PNGS flagship is planned at 2% on both pools, with the same 70% creator / 30% protocol split of fees. Confirm the pool’s rate before trading.
- Trade fee
- 1% default on every launch pool
- Charged in
- The pool’s quote asset: ETH in the ETH pool, reserve units in the collection pool
- Creator share
- 70% of the fee
- Per-pool maximum
- 5%, enforced by the hook
- Launch fee
- 0.0005 ETH, flat, to the treasury
Pools can be set higher than the default
1% is the default. The protocol’s fee admin key can set an individual pool higher, up to a hard cap of 5% that the hook enforces. Creators cannot change it. Market pages read the rate from the hook and show it as unknown when that read fails.
Why a hook and not the pool
A Uniswap pool charges its fee in whatever was paid in, so a sell would pay the fee in the coin, which then has to be sold back into the same pool, moving the price. The hook charges both sides in the quote asset instead, so the coin is never taken as a fee. That is why the pool’s own LP fee reads zero: the 1% is charged by the hook.
Where the fee goes
The creator’s share is paid to them or used to buy and burn the coin, as chosen once at launch and recorded by the locker; the rest goes to the treasury.
The planned PNGS routing splits the protocol’s 30% share of fees equally: half for flagship NFT purchases and half for flagship coin buybacks and burns. This needs the reserve and the burner configured. The status below shows what could be verified.
The NFT reserve destination is not configured. The entire protocol share currently goes to the destination below. That destination responds as a buyback contract.
Buyback & burn0xEaa9E38864b4f01BBC832a9a74B2f9F0CFf9aC8eExplorer
BurnsNamed once the flagship coin launches
NFT reserveNot set
A buyback contract was found, but its target is not configured yet. Buybacks cannot run until a target is set.
Token contract & screening#
Every coin on this deployment is the standard token. Launching from a creator’s own contract requires a token screener, and none is configured on the factory, so those launches revert on chain. There is no creator-written token code, no held-back allocation and no side contracts to vet: the token has no owner, no mint, no burn and no pause.
How screening works when custom contracts are enabled: the screener reads the contract’s bytecode for mint authority, transfer taxes, blocklists, delegatecall, and functions that can destroy a balance the caller does not own. Four findings block the launch outright; the rest are recorded on chain and shown to buyers. A screen that could not be read is reported as unknown rather than clean. Screening flags known dangerous patterns. It is not an audit and cannot prove a contract safe. Supply held back from the pool for a custom launch is capped at 20% by the factory and can only go to a contract deployed in the same transaction.
Token screenerNot configured (custom contracts disabled)
Risks#
Trades are final and tokens can lose all their value. Not financial advice.
- The floor is a trusted input. Each reserve’s floor is posted by an oracle key. Rises are limited to 25% an hour and drops apply at once. It caps what the reserve pays for an NFT and prices NFT redemptions and opening prices. A wrong post is possible, and at most 5 NFTs an hour can come into a reserve at it.
- Reserve owners have admin powers. The owner chooses the oracle and which marketplace adapters the reserve may buy through. It runs the floor oracle, which caps what a reserve pays for an NFT. It can pause a reserve and pull all of its NFTs with no delay, which ends that reserve’s NFT buying for good, and holders lose the backing those NFTs were bought with. It has no function to withdraw the reserve’s ETH, which stays redeemable 1:1 while it lasts. Whoever holds that key is trusted with the NFTs.
- Collection owners can freeze reserve NFTs. Most Robinhood collections run a creator transfer policy. If a collection’s owner tightens it, NFTs its reserve holds may become impossible to buy, redeem or even rescue, with no action from PNGS. Reserve ETH is not affected. The keeper stops buying a collection the moment its policy, implementation or blacklist changes, but it cannot undo the change.
- Reserve cash is finite. ETH redemptions are first come, first served, up to the cash on hand. NFT redemption or a pool sale may be alternatives, subject to NFT availability, transfer rules and liquidity.
- Fees can rise per pool. The protocol can set a pool above the 1% default, up to 5%. Market pages show the verified pool rate or identify it as unknown.
- Thin pools. Trading more than a pool can absorb moves its price sharply against you. Splitting supply across two pools makes each shallower.
- Locked liquidity is not a price floor. Liquidity that cannot be withdrawn still cannot stop a price falling.
- Launches from other interfaces. The factory also accepts permissionless pairs against arbitrary tokens. Those are marked as unverified quote assets; check the pair before trading one.
- No external audit. The contracts are tested and the liquidity lock is verifiable from the bytecode, but no third-party firm has reviewed them.
Contracts#
Read live from the factory, so this list always matches the deployment. Robinhood Chain, chain id 4663. Launches recorded: 1.
Launch factoryCreates every launch and its pools0x925bf57bd753bdc6f714be1c592751c13fc7f7dcExplorer
Fee hookTakes the per-pool trade fee (1% standard); mirrors ETH-pool trades0x1d4063217cdb8864ef94ea08ed4a5731d4e600ccExplorer
Liquidity lockerHolds the initial launch LP positions permanently0x0c2ec2730828902549205ac00F6B72a584328B50Explorer
Treasury (fee splitter)Receives the protocol's fees0x191D2AE11bF8377565368397FD91EA2e8A11e9C1Explorer
Price oracleOpening prices: Chainlink ETH/USD × reserve floor0xCD69B3b8f5D2e5Bd2aF2167Ab56851b5222C6dd9Explorer
NFT quote routerRoutes trades into collection pools0xf94d5f30955f918bf8fb6a729e9d7bddb568bde0Explorer
Uniswap V4 PoolManagerThe singleton every pool lives in0x8366a39cc670b4001a1121b8f6a443a643e40951Explorer
Uniswap V4 PositionManagerMints the LP positions the locker holds0x58daec3116aae6D93017bAAea7749052E8a04fA7Explorer
You sign every transaction from your own wallet. PNGS never holds your funds. See also the Terms of Use and Privacy Policy.
