Architecture
Investors Center is a single deployment on Robinhood Chain: one token, one treasury, one governing body. This page is the high-level map. For what each contract is, see Contracts.
The contracts are live and verified; the market is not. INVEST total supply is zero, the Treasury holds nothing, the anchor pool is pinned but holds no liquidity, and the four sell walls, the bond markets and the whole fee flywheel are not deployed. Read everything below in the present tense as a description of the design, not of today — the ledger of what actually exists is Deployment status.
Identity
| INVEST | The native token. 9 decimals. Minted only by the Treasury against reserves. A plain ERC-20 — a transfer moves exactly what was sent. |
| SHARES | Staked INVEST. Rebasing — the balance grows each epoch. |
| gINVEST | Governance INVEST. Non-rebasing, and the only voting token. |
| The Boardroom | The governing body: an on-chain Governor plus a Timelock, voting on gINVEST. |
The protocol runs on Robinhood Chain — chain ID 4663, mainnet only — an Arbitrum Orbit L2 that
settles to Ethereum. See Robinhood Chain facts.
Everything is timed in seconds, not blocks
On Arbitrum Orbit, block.number reports an estimate of the L1 block number rather than the L2
one. Anything counting in blocks would have windows that jump unpredictably, so all timing —
governance included — runs on timestamps. This is a correctness requirement of the chain, not a
stylistic choice.
The subsystems
Five, and they meet at the Treasury.
The Treasury holds every reserve, marks them in USD, and is the only contract that can mint INVEST. Its backing target is 1 INVEST = $1.
Staking takes INVEST and issues SHARES or gINVEST, and distributes emissions once per epoch. See How to stake.
Bonds sell INVEST for reserve assets at a decaying price floored by the PolicyGuard, with
payouts vesting over a term. This is the mechanism that grows backing on purpose rather than as a
side effect. Whether a series sits below the market rate is an outcome, not a property: at genesis
the absolute $0.90 floor binds against a ~$0.2778 launch price, so the one market stage 2 creates is
inert from the moment it exists. No bond market exists today.
See How to bond.
The fee flywheel is the protocol's own market, and it is a stage-2 structure: one of its five pools is deployed and empty, the other four do not exist, and the collector is not deployed at all. By design it is five Treasury-owned Uniswap V4 pools, each pinned at a 5% fee. One is the anchor, INVEST against USDG, two-sided and held as a non-transferable share the Treasury counts as a reserve; the other four are one-sided INVEST sell walls quoted in the tokenized stocks RCAT, WYFI, HIMS and DJT, which hold no cash, are registered with the Treasury as nothing at all, and become backing only through what they earn. The fees they charge are collected in one call, converted where they have to be, kept as-is where they are already an asset the treasury wants, and spent on a governed basket of reserves. See The fee flywheel.
Governance owns all of it — by the end of stage 2. In the finished shape the Timelock is
the Treasury's authority and calls every privileged function directly, and there is no admin key that
can move funds. That is not the state today. At stage 1 the deployer's EOA still holds
authority.governor, authority.guardian and the Treasury's RESERVEDEPOSITOR role, as interim
custody until the stage-2 handoff revokes them; what that key can reach is bounded by the fact that
the Treasury holds no assets and there is no supply to mint against. See
Deployment status and
How governance works.
Three smaller pieces sit at the edges: a reserve lister, a narrowly scoped delegate that lets an operator switch on assets governance has already vetted — and, where governance has armed a policy for it, list a real-world asset that proves its own authenticity on-chain without a vote per ticker (see Reserves and listing and Listing without a vote); a position vault, the one contract that puts Treasury reserves into a bounded, policy-governed concentrated-liquidity position and holds the result as a share the Treasury values but can never pay out (see Protocol-owned liquidity); and a games lane that draws a bounded bankroll from the Treasury (see Treasury games).
Backing
excess reserves = total reserves − circulating supply (never below zero)
One INVEST is mintable per $1 of value above what already backs the supply. Both paths that create new INVEST — bond payouts and staking emissions — draw on that same gate.
Every reserve is valued live through a vetted price feed and discounted by a per-asset haircut before it counts, and the protocol never counts its own INVEST as backing. The mechanics are in Reserves and listing; the short version is that the Treasury prefers to understate what it owns, and the guards fail in that direction.
Parameters at launch
| Pool fee | 500 bps on each of the five protocol-owned pools, charged on whatever the trader spends. Immutable: the fee is part of a pool's identity, not a setting |
| Total supply | 60,000 INVEST, minted once at launch into the five pools and nowhere else — none of it minted yet; supply is 0 |
| Protocol-owned liquidity | the anchor holds 60% of supply (36,000 INVEST) against $10,000 of USDG — all of the protocol's cash. The four sell walls hold 10% each (6,000 INVEST) and no quote at all |
| Opening price | ~$0.2778 per INVEST — a ~$16,667 market cap. The sell walls start at ~$0.8333, a $50,000 market cap, three times the open |
| Counted backing at launch | $9,000 — about $0.15 per INVEST, an 85% gap. Excess reserves are zero, so rebases pay zero and no bond can fill (why). Today it is $0, because the seed has not been paid in |
| Team share of the fee | 400 bps of the 500 at launch, decaying linearly to zero over 30 days — taken in kind as well as in stablecoin, so the stock fees carry the same decaying share |
| Epoch length | 8 hours |
| Reward rate | 2,000 ppm of supply per epoch (capped by excess reserves, which are zero at launch) |
| Warm-up period | none at launch |
| Bond vesting | 5 days |
| Bond price floor | a bond can never sell INVEST below the greater of 1.1× backing and $0.90. At launch the $0.90 binds, ~3.2× the opening price |
| Voting delay / period | 6 hours / 48 hours |
| Timelock delay | 24 hours |
| Quorum | 10% of eligible gINVEST, with an absolute floor of 6,000 gINVEST — a tenth of the whole supply |
| Registered reserves | 43, plus five posted rows — the four sell-wall stocks and AMC, the keeper's buy lane. All 48 are registered and enabled today, and all 48 hold nothing |
Everything above except the pool fee, the total supply and the opening price is movable by governance, within bounds fixed at deployment. Those three are fixed once, at the launch transaction, and cannot be changed without deploying a different protocol.
Deployment status
Stage 1 is deployed and verified; stage 2 has not run. Live on mainnet today: the twelve core
contracts, the anchor PolVault (pool pinned, zero liquidity), the reserve lister, the posted
listing lane and its reader, and forty price feeds — 56 contracts, all 56 verified on Sourcify.
Addresses are in Contracts; the full ledger of what exists and what does
not is Deployment status.
Not deployed, and therefore carrying no address: the four PolLadder sell walls, TaxCollector,
FeeAllocator, ReserveAccumulator, PolMigrator, PairOracle, PolPositionFeed, the V4 position
vault trio and the games lane. No bond market has been created, and no INVEST has been minted.
Two further things are deliberately left unwired even at launch and become the first governance proposals after it: the bond price band, whose reference would otherwise be a median of a pool with no history, and the staking hook that keeps the pool's price oracle sampled, which needs the pool to exist first.