Skip to main content

The three tokens

Investors Center has exactly three protocol tokens. You can hold any of them, and you can move between them at any time.

TokenRoleDecimals
INVESTThe native token. Minted only against treasury value; a plain ERC-20 that moves exactly what was sent.9
SHARESStaked INVEST — rebasing (sOHM mechanics).9
gINVESTGovernance INVEST (gOHM mechanics) — a non-rebasing ERC20Votes wrapper on a timestamp clock.18

The ERC-20 names are "Investors Center", "Investors Center Shares" and "Governance INVEST" respectively.

INVEST​

The base asset. Its supply is not arbitrary: the Treasury is the only minter, and it will only mint against excess reserves — value above what already backs the circulating supply. The two ways new INVEST enters circulation are staking emissions and bond payouts, and both draw on the same excess gate.

INVEST is a plain ERC-20. Every transfer moves exactly what was sent: there is no transfer hook, no registered-pair key and no exemption list, and sending, holding or receiving INVEST costs nothing beyond gas. One Transfer event per transfer, for the full amount — nothing an indexer has to reconcile.

The protocol's revenue comes from the venues instead. The Treasury owns five Uniswap V4 pools — the INVEST/USDG anchor, which holds all of the protocol's cash liquidity, and four one-sided INVEST sell walls quoted in RCAT, WYFI, HIMS and DJT. Each charges 500 bps on the input currency of every swap through it: the pool's other token on a buy, INVEST on a sell. So a buy in the RCAT pool pays the treasury in RCAT. The rate is pinned into each pool's own identity and cannot be changed. See The flywheel.

SHARES​

SHARES is staked INVEST with sOHM mechanics: emissions rebase into your balance rather than into a claim. You do not claim rewards; the number in your wallet increases by whatever the epoch emitted.

That amount is zero whenever there are no excess reserves — which is the state the protocol launches in. A rebase with nothing to distribute runs cleanly and pays nothing; your balance is unchanged. See How to stake and the flywheel.

The epoch length is set at genesis and is governor-tunable afterwards within [10 minutes, 24 hours]. A change applies at the next roll, and the Distributor's per-epoch rate is rescaled at the same time — so the tokens emitted per unit of time do not depend on the cadence.

gINVEST​

gINVEST is the same value, expressed differently: a non-rebasing wrapper whose index tracks accrued rebases. Your balance stays constant and each token becomes worth more INVEST.

It is also the only voting token. gINVEST is an ERC20Votes token with a timestamp clock (the Orbit block.number problem again), and a fixed set of protocol-held addresses — the Treasury, Staking, the bond depository, the redemption module and the Timelock — is excluded from the supply that quorum is measured against. That exclusion set is fixed in the constructor and cannot be changed.

Bond payouts vest as gINVEST notes, so bonding is already denominated in the governance token.

Moving between them​

  • Staking takes INVEST and mints either SHARES or gINVEST — your choice at the time. Minting gINVEST directly means acquiring voting weight never needs a separate wrapping step.
  • Wrapping converts SHARES ↔ gINVEST in either direction, at any time.
  • Unstaking goes back to INVEST.

Units, everywhere​

The decimal mismatch is the single most common integration bug on this chain. Every quote path must normalise explicitly:

ThingDecimals
INVEST, SHARES9
gINVEST18
USDG6
Tokenized stock / ETF tokens18
Chainlink USD feed answers8
Chainlink exchange-rate feeds (syrup*, wstETH/stETH, weETH/eETH)18
Treasury USD valuation9 (1e9 == $1.00)
Basis pointsout of 10_000
Uniswap V4 LP fee unit1e6 == 100%, so bps = fee / 100