Skip to main content

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.

This page describes the protocol after stage 2. Stage 2 has not run

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​

INVESTThe native token. 9 decimals. Minted only by the Treasury against reserves. A plain ERC-20 — a transfer moves exactly what was sent.
SHARESStaked INVEST. Rebasing — the balance grows each epoch.
gINVESTGovernance INVEST. Non-rebasing, and the only voting token.
The BoardroomThe 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 fee500 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 supply60,000 INVEST, minted once at launch into the five pools and nowhere else — none of it minted yet; supply is 0
Protocol-owned liquiditythe 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 fee400 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 length8 hours
Reward rate2,000 ppm of supply per epoch (capped by excess reserves, which are zero at launch)
Warm-up periodnone at launch
Bond vesting5 days
Bond price floora 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 / period6 hours / 48 hours
Timelock delay24 hours
Quorum10% of eligible gINVEST, with an absolute floor of 6,000 gINVEST — a tenth of the whole supply
Registered reserves43, 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.