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 | 0x02047f69439dbcF248774B5f7219981A4B6778D0Explorer |
| Chain MancersMANCERS | 0xD65646f1c55e478268Ee95Ad5A19D0269EFeD5D1Explorer |
| HashcatsHCAT | 0x25ACd96B4A9FD20cb7365AA61F0Bd350eFe182c5Explorer |
| Rekt TradooorREKT | 0xE75fd6B5E608fbeD5975C27f1cA0d4EDb779A231Explorer |
| WIF OutlawsWIFO | 0x370745d5E9905DDb55770facb1d68CEE60649Cc8Explorer |
| Gremlin CartelGREMLIN | 0x54c49a74d6fEB9053CC5D6b6f9ED7ed0150C708eExplorer |
| The Oil RigsOIL | 0x8963661E4c06a8ac4fAE166f09D6d2fD0e2452A4Explorer |
| Script KiddiesKIDDIES | 0x1282E88B5b5988338d562c8D7Dd39603248fc2CeExplorer |
| NTRPYNTRPY | 0x5b319693271555B7823eF67CCF5273FB7fc232cDExplorer |
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.
Locker0xdB99af1c8469F5e086149358915B7De07D2f3C87Explorer
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 treasury’s reserve destination is configured: half of its receipts goes to that reserve, and half to the destination below. That destination responds as a buyback contract; its target is shown below.
Buyback & burn0x34FA3e05eC9876F659f59afF13C9Fdac629fb172Explorer
Burns0x782e8bd98dEb7b8A4a77181a19CA16B0E959f62FExplorer
NFT reserve0x25ACd96B4A9FD20cb7365AA61F0Bd350eFe182c5Explorer
The burner target is configured. Anyone can trigger a buyback when funds and executable liquidity are available; purchased coins go to the burn address.
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: 6.
Launch factoryCreates every launch and its pools0x518bd4f564783a7796d5ac2c32fDBce3373B7836Explorer
Fee hookTakes the per-pool trade fee (1% standard); mirrors ETH-pool trades0x21c79c7936f43bB710b30A421275204BDfc380ccExplorer
Liquidity lockerHolds the initial launch LP positions permanently0xdB99af1c8469F5e086149358915B7De07D2f3C87Explorer
Treasury (fee splitter)Receives the protocol's fees0x71b7800d0A3099294FA00550c26380F1f1f63971Explorer
Price oracleOpening prices: Chainlink ETH/USD × reserve floor0x17bEB5b87419CdF0C41e809E0157CFBD51651601Explorer
NFT quote routerRoutes trades into collection pools0x7a02C68f4E4C0Ee8EdAE571d3F386089a5Eb1a34Explorer
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.
