Robinhood Chain · 4663 · USDG
float

Only the tradeable float is on chain. The rest is locked, and you can see it.

Every tokenised stock claims a backing. Almost none publish how much of that backing is actually free to trade. Float fixes the denominator.

The gap

Eighteen tokens on this chain wrap stocks. None of them publish a float.

Sweeping every token on the board turns up eighteen whose description names tokenised equities — a credit layer, a money market, an ETF builder, vaults, trading bots, a read-only desk, and a row of games that mine or stack shares. Every one of them competes on what you can do with a wrapped share.

Not one competes on whether the wrapper is honest. Search the same descriptions for a share register and you get a single hit, on a token with no market to speak of. The supply question — how many shares are really behind this, and how many of them are actually free to trade — is unoccupied.

Every wrapper answers what is it worth. None of them answers how much of it can move. That second number is the one a price is quoted against.

A wrapped share with an unstated float is a price with an unstated denominator. It can be diluted without a disclosure, because there was never a disclosed ceiling to breach. Float is the ceiling, written where it cannot be edited.

A price is a ratio. The numerator gets quoted every second; the denominator gets quoted once, in a document, if at all. The needle cannot settle on an unpinned denominator.

How it works

Float is the supply-integrity layer for wrapped equities.

A stock's free float is the part of it that can actually change hands — shares outstanding, less what is locked, restricted, or sitting with insiders. Float attests that number for each wrapped equity and makes it the hard ceiling on what a wrapper can mint.

A wrapped share is a claim in a shell. The shell is what trades. The register is what is actually in there — and it is the part nobody publishes.

Attest the register

Each wrapped stock posts its register on chain: shares outstanding, restricted, insider-held, and the free float that falls out of them. Signed and timestamped, so the claim has an author and a date rather than being a number in a document nobody reads.

Mint against the line, never above it

The wrapper contract can only mint up to the attested float. Supply above the line is not discouraged by policy, it is rejected by the contract. The denominator every price is quoted against stops being a matter of trust.

Watch the line move

Lockups expire, insiders sell, buybacks retire stock. Every change to the float is an on-chain event with its release date public from block one — so dilution arrives as a scheduled, visible thing instead of a surprise in the supply chart.

The register, cut at the float line. Above it the plates are free and tradeable; below it they are locked — still on chain, still countable, not mintable.

REGISTER Free float Locked restricted · insider THE FLOAT LINE attest WRAPPER CONTRACT mint ≤ float enforced, not promised locked supply stays visible and unmintable ON CHAIN Supply = attested float

The register splits at the float line. Everything above it is mintable and trades; everything below it is locked, stays on chain, and stays visible. Dilution becomes an event with a date on it rather than a discovery.

Supply stacks up to the line and stops. The unit that tries to pass it is not warned or flagged — the transaction reverts. The ceiling is enforced by the contract, not by a policy someone can revise.

Guarantees

Four things the contract enforces, and three it does not claim.

A supply-integrity layer is only worth the guarantees it can actually keep. These are stated as narrowly as they hold — an attestation is a signed claim about a register, not an audit of the custodian behind it.

An attestation is a sheet of the register, signed and sealed into a block. It has an author and a date, not just a value.

EnforcedSupply can never exceed the attested float. The mint path checks the line and reverts above it — there is no admin route around the check
EnforcedEvery attestation is a signed transaction with a block number, so the float has a history that can be replayed, not just a current value
EnforcedLocked supply is held by contract with its release date fixed at deposit. The date cannot be quietly moved forward
EnforcedEvery change to the float emits an event before it takes effect, so a release is visible ahead of the block it lands in
Not claimedFloat does not verify that the shares exist. It attests what the register says and binds supply to it — custody is still the custodian's problem
Not claimedA correct float is not a fair price. Float fixes the denominator; the numerator is still a market
Not claimedAn honest wrapper is not a safe one. This closes one specific failure — silent dilution — and no other

Lockups expire on a schedule that is readable from block one. The line steps up on the date it always said it would, and the release is an event with a block number rather than a change in a supply chart nobody was watching.

Every attestation is kept. The float is a history that can be replayed, not a value that can only be read at the moment you happen to look.

Integrate

Read the float yourself. Nothing here needs our front end.

The attested float is a public value returned by a public view function. Any wallet, indexer, or competing interface can read it without asking us, and any of them can catch us if the number on this page ever stops matching the number on chain.

IFloatRegister.sol — the read interfaceSolidity ^0.8.24
/// The register a wrapper is bound to. Views only: nothing on this
/// interface can move supply, and nothing on it takes an owner.
interface IFloatRegister {
    // Free float attested for `asset`, in that asset's decimals.
    function floatOf(address asset) external view returns (uint256);

    // Supply the wrapper may not exceed. Always <= floatOf(asset).
    function ceilingOf(address asset) external view returns (uint256);

    // Block the current attestation landed in, so a reader can tell
    // a fresh float from a stale one without trusting a timestamp.
    function attestedAt(address asset) external view returns (uint64);

    // Locked supply and the block it is scheduled to release in.
    function lockedOf(address asset) external view returns (uint256, uint64);

    event Attested(address indexed asset, uint256 float, uint64 atBlock);
    event Released(address indexed asset, uint256 amount, uint64 dueAt);
}
Reading it from a terminalfoundry
# the free float, straight off the node — no indexer in the path
cast call $REGISTER "floatOf(address)(uint256)" $ASSET \
  --rpc-url https://rpc.mainnet.chain.robinhood.com

# and the ceiling it pins. If these two ever disagree, the
# wrapper is minting against a number it was not given.
cast call $REGISTER "ceilingOf(address)(uint256)" $ASSET \
  --rpc-url https://rpc.mainnet.chain.robinhood.com

Security and control, stated as it actually stands.

The contract is deployed and its address is published above. Most of the rest of this table is still empty, and publishing it empty is the point: every row gets a real value as it lands, and this page is where the before and after can be compared.

ContractThe address published on this page is the only $FLOAT contract. Any other address is not ours. Deployed
Security auditNone commissioned. There is no report to link and we will not imply one by omission. None
Bug bountyNot live. Announcing one on day one with nothing funded behind it would be theatre. Not live
Admin keys and upgradeabilityThe mint check is only worth anything if nobody can route around it. Whatever the answer is, it ships in the verified source, readable before anyone deposits. At deploy
Source verificationVerified on the chain's Blockscout instance at deploy, so the bytecode running can be diffed against the source shown. At deploy
Settlement chainRobinhood Chain, id 4663. Live now, and not contingent on anything of ours. Live

Endpoints.

RPC https://rpc.mainnet.chain.robinhood.com
Chain ID 4663  (0x1237)
Native unit USDG  18 decimals
$FLOAT 0x6b5c2ca8683dd9d2dd88269a9704945a20ded751

Settlement

Float settles on Robinhood Chain.

Robinhood Chain is a USDG-native Arbitrum Orbit L2, chain id 4663, fully EVM equivalent. Attestations, mints and lockup releases are ordinary transactions on it — no custom opcodes, no sidecar, no trusted relayer standing between the register and the token.

  • ✓Every attestation is a signed transaction with a block number, so the float has a verifiable history rather than a current value.
  • ✓Locked supply is held by contract, not by policy — the release date is readable from block one and cannot be quietly moved.
  • ✓Fees are paid in USDG, the chain's native unit, so the accounting stays denominated in the same money as the assets.

Robinhood Chain held $726.9M in TVL on roughly 0.1s blocks when measured on chain by hoodwindow.xyz, 31 Aug 2026, 12:00 UTC. Block time matters here for one reason: an attestation and the mint it authorises should land close enough together that nothing can be squeezed between them.

USDG
Native gas and unit
Orbit
Arbitrum L2 rollup
4663
Chain id
EVM
Solidity as written, no custom opcodes
Network nameRobinhood Chain
Chain ID4663
Currency symbolUSDG
Decimals18
TypeArbitrum Orbit L2
RPCrpc.mainnet.chain.robinhood.com
Explorerrobinhoodchain.blockscout.com

Adds the network with the values in this table, using your wallet's own confirmation dialog. Nothing is signed and no account is requested. The token button adds $FLOAT at the contract address published on this page.

Supply as a volume rather than a stack. Above the line the units drift and trade; below it they are frozen on the grid — still counted, still visible, unable to move.

Attestations, mints and lockup releases are ordinary transactions on an EVM-equivalent L2 — no custom opcodes, no sidecar, no trusted relayer standing between the register and the token.

$FLOAT contract 0x6b5c2ca8683dd9d2dd88269a9704945a20ded751