Loading the board
FACTORY NOT DEPLOYED. Unaudited. The testnet take used a custom conduit. OpenSea's Hood conduit is pinned from a live order. Mainnet buy hash is empty.
Loading the board
One screen
Same-chain is the default. A remote market chooses LayerZero or CCIP when it is created, and that choice lasts for the order. They do not share an orderId. Yield stays on the inventory chain.
Strat Market is a factory for community treasuries. Fees fund the buy. The post holds what pays. Stakers own the yield. The community sets the policy inside hard bounds. The resting tax is 8%. A community bond opens the vault. Owning the collection is not required. Recursive buys, ERC-20 inventory, and index rotation stay out of this build.
| Piece | Settlement |
|---|---|
| Local | messenger = LOCAL. Same chain. orderBuy is buyFloor. No bridge. Same-chain cannot pick a bridge. |
| LayerZero | messenger = LZ. Letters only. Hood testnet eid 40451. The solver fronts the NFT. Reject or one day of silence unlocks. Two DVNs, or it is an experiment. |
| CCIP | messenger = CCIP. An enum and a selector until a CCT pool exists. Hood mainnet selector 6180753054346818345. This desk does not call the CCIP router. |
| One order | The lock records the messenger. lzReceive and ccipReceive reject a fill from the other protocol. |
| Yield | Stays on the inventory chain. A packet does not mint the reward on the token chain. |
| Pairs | Same chain is LOCAL. CCIP needs a CCT pool. LZ needs a lane. Otherwise the factory refuses the pair. |
| Product | Chain | Inventory |
|---|---|---|
| Floor Lot / Terminal Lot | Hood | Same-chain NFT |
| Route market | One messenger, token on A | One remote collection |
| Index (later) | — | Not this factory |
Market Pass is the ecosystem token until a vault has bought on mainnet. The 1.5% platform cut and pass royalties go to the pass treasury. Pass tiers can cheapen a deploy and boost a vote on the flagship vault only. $STRAT is a later claim on platform fees.
The factory is per chain and uses the same bytecode. createMarket takes home, inventory, and a messenger. Same chain must be LOCAL. A CCT pool is required for CCIP. A lane is required for LayerZero. No lane and no pool, and the pair is refused. The pair and the 8% tax live on the token chain. The module runs on the inventory chain. A module that cannot read pending rewards is a no-op, and that market is flip-only.
Hood testnet LayerZero eid is 40451. Set two DVNs before treating that path as production. A Labs-only configuration is an experiment. Hood mainnet CCIP selector is 6180753054346818345. This desk does not call the CCIP router. No CCT pool, and the factory refuses the pair. CCIP is not a fallback hop in the middle of a buy. The next hash, if any, is cap 1 on 46630, and only after the seven named revert and unlock tests. There is no testnet hash and no second live row. Floor Lot and Terminal Lot stay LOCAL, and they stay off the routes page.
On each strategy-token swap, after launch tax has decayed:
Launch tax starts at 90% and falls 1% per minute to 8%. Decay uses block.timestamp. An NFT purchase also pays a 1% acquisition fee to the platform. After a vault sale, sell tax can spike to 30% for 10 minutes. The graduated 8% is a v4 hook: the address carries beforeInitialize, beforeAddLiquidity, beforeRemoveLiquidity, afterSwap, and afterSwapReturnDelta. It does not carry beforeSwap, because that callback only sees the requested size. The pool fee is 0, not the dynamic-fee flag 0x800000. A dynamic fee pays liquidity providers and cannot reach escrow. Liquidity callbacks return no delta, so a locker cannot skim. `afterSwap` returns a positive unspecified delta of 8% of the actual fill. Only a factory-registered pool can initialize. That hook is not deployed. Floor Lot and Terminal Lot still settle through the testnet buyback.
The first book stays on Robinhood Chain. Messenger is LOCAL. Gas is ETH. Hood WETH is 0x0Bd7D308f8E1639FAb988df18A8011f41EAcAD73. Testnet WETH is 0x7943e237c7F95DA44E0301572D358911207852Fa. Seaport 1.6 is 0x0000000000000068F116a894984e2DB1123eB395. An order that offers Ethereum WETH cannot fill. The Ethereum OpenSea key returns exists=false on 46630 and on 4663, so the testnet fill used a controller-created conduit. Live Hood orders use conduit key 0x61159fefdfada89302ed55f8b9e89e2d67d8258712b3a3f89aa88525877f1d5e. On 4663, getConduit returns 0x963F00d3ff000064fFCbA824b800c0000000C300 and that conduit has code. The signed zone is 0x000056F7000000EcE9003ca63978907a00FFD100. The treasury allowlist accepts only that key. The EIP-712 domain chain id for mainnet is 4663. block.number on this chain is the L1 height, so decay and guards stay on block.timestamp. Unit cap is 1. The testnet treasury took token 1 in 0x4c2ac7dfad6b748d3128c6e8e1d64a839133056dbfb19bb1d027046a966d4e54. A second take reverted. The mainnet buy hash is empty. Both operator wallets hold 0 ETH on 4663, so nothing has been broadcast there. Public launch stays closed. Floor Lot and Terminal Lot stay as they are. LayerZero, Sepolia, and Credits on Ethereum stay parked.
Credits is parked. It stays an illustrative Ethereum collection until Hood Book has bought from fees. Credits is on Ethereum, about 122,000 items, floor about 0.026 ETH. The creator is visualizevalue. Burning 80 Credits makes one Statement. OpenSea on Hood does not list this as a Hood NFT. A Hood vault cannot post a WETH offer on that page. The path is a LayerZero letter that releases Ethereum WETH to a CollectionPost. That post is the Seaport offerer of one collection offer, criteria 0. No keeper key signs it. The spender is the OpenSea conduit, not Seaport. The offer has to be at or under maxBidWei and the price guard. The creator sets that cap. Stakers of that market's token can move it from half to double the last floor, and not above an absolute cap. Tax stays 8% and stays off the ballot. Hold is until the burn of 80. Relist stays closed until Statements exist. The module is admin CreditsV1. Unit cap stays 0. The post and the ballot are Forge-only. There is no Hood hash and no Ethereum fill hash, so the desk stays factory not deployed. Floor Lot and Terminal Lot stay local. The wallet stays on Robinhood testnet.
Turning the governor on is one-way. The admin, before or after that, cannot withdraw the NFT or the buy reserve.
The creator sets the starting expectations. Once the governor is on, the shipped governor lets a weighted staker replace the policy inside those bounds, down or up. A dedicated lower-or-raise ballot, and an admin-started takeover if the original developer abandons the strat, are previews on the launch form. They are not on the live contracts. Floor Lot and Terminal Lot governors are unchanged. Tax stays off the ballot.
A collection that earns does not earn by sitting in the vault. Quotrons V2 burns 1.0 QUOTRON through hardwire. Corrupted QTRNS pays a small fee to switch on. Frontrunners burn an internal reserve. The treasury does not special-case any of them. A ModuleRegistry points each collection at an IInventoryModule. Noop is the default. The module can be replaced. The interface cannot be cleared.
Hardwiring destroys 1.0 QUOTRON. Hold mode only unless you know why. A flip-only Quotron vault leaves activation off and lists the terminal with its backing token. Buy and activate are separate calls. A failed hardwire leaves the NFT idle and does not unwind the purchase. The module cannot move the NFT or WETH. Stock rewards, when a module actually pays them, go to the gauge. Quotrons describe that stream as promotional and volume-linked. This desk does not quote an APY.
Floor Lot is the flip-and-enable vault. PayToEnable stays registered. Its frozen gauge only settles WETH, so 25 Floor Yield was claimed from a second gauge as Floor Yield. Terminal Lot is the hardwire vault. QuotronV2Module 0x0D8098755cEb1Ef510CA5289b95348d90a62d0c3 is the only module on that collection. moduleCall burned 1.0 Wire QUOTRON. Token 1 is held and lit. The staker took 25 mAAPL. Launch stays closed. There is no third live row.
The mainnet adapter is not deployed. When it is written, it calls the collection’s own desks. It does not mint a reward token into the vault.
0x565570ac… minted 25 mAAPL into the Terminal Lot vault. The mock reflections desk has no epoch, and the registered module lists no reward token, so claimHeld could not pull a balance on its own. That transaction is a testnet fixture. It is not a Quotron epoch. Do not ship the mint-into-vault shortcut.
Weight equals staked amount times min(1 + days / 90, 3). There is no lock. Unstaking resets the clock. A later deposit blends age with size, so a 1-wei stake left for six months does not grant 3x on a large top-up.
Anyone may run a keeper. They are paid from the 0.5% token slice after a successful fill, not from an ETH bounty on the buy function. A buy reverts when price is above the caller’s max, the vault’s unit cap, or the oracle ceiling of floor plus at most 3%. The fulfiller must deliver the NFT in the same transaction or the whole buy reverts.
This desk talks only to Robinhood Chain testnet. It does not open a mainnet RPC.
Robinhood Chain is an Arbitrum Orbit L2. Gas is test ETH. Do not use block.number for staking or tax decay. It is the parent-chain height.
Floor Lot stays on the first factory, which has no moduleCall. Terminal Lot is on a second factory that does. The other three desk rows stay illustrative. Launch and public mint stay closed. The Floor Lot pair anchor is not a pool. Terminal Lot has no pair.
Testnet brief is closed. Two vaults, two modules, three payer paths. Floor Lot is flip, 8% tax, PayToEnable, and Floor Yield paid as Floor Yield. Terminal Lot is the hardwire. The other three desk rows stay illustrative. Launch and public mint stay closed. $STRAT is not live.
10 is the Floor Yield claim. The stake, sweep, and notify above it are the path into that claim. The old WETH gauge is a relic.
0x565570ac… mints 25 mAAPL into the vault. The mock reflections desk has no epoch, and QuotronV2Module 0x0D8098755cEb1Ef510CA5289b95348d90a62d0c3 lists no reward token. That is a fixture, not a Quotron epoch. On mainnet the adapter reads pending(id) and pulls NVDA/AAPL from the real reflections contract.
Also on the record, and not renumbered: the Floor Lot sidecar Mock hardwire burns 1.0, which did not replace PayToEnable. Terminal Lot was created and the module was registered in Create the moduleCall treasury and Register QuotronV2Module.
0.01 test ETH was enough to prove this loop. Gas on 46630 is a fraction of a cent. The next factory is not the gap. Mainnet needs a Safe, a fulfiller key, and a unit cap before buyFloor is turned on. This desk stays on testnet.