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; carries the 500 bps tax on pool trades.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 carries an immutable 500 bps transfer tax, but only on transfers that touch a registered pair address. A wallet-to-wallet transfer is free. Buys (pair → wallet), sells (wallet → pair) and router-mediated liquidity adds/removes are all taxed — the router is deliberately not exempt.

Two mechanical details worth knowing:

  • A taxed move executes as two real sub-transfers (from → taxCollector for the fee, then from → to for the remainder) plus a TaxPaid event. So "received plus taxed" always equals "sent", and any tool summing Transfer events must process both legs.
  • A transfer of fewer than 20 base units rounds the fee to zero and is untaxed.

SHARES

SHARES is staked INVEST with sOHM mechanics: your balance grows every epoch as emissions rebase in. You do not claim rewards; the number in your wallet increases.

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