Skip to main content
IX RWA is a set of upgradeable smart contracts on Base. A single ERC-4626 index vault (IX-CORE) sits on top of per-asset cohort vaults; a NAV oracle prices the index, an asset registry keeps identity verifiable on-chain, an attestor registry gates every NAV move behind recorded proof-of-reserve, and a smoothing reserve buffers yield and redemptions.

Contract topology

Valuation, exactly

IX-CORE’s price is fully mechanical — two terms, both readable on-chain:
Depositing revenue raises the cash term (yield up); depreciation lowers the oracle term (NAV/share down). Units are USDC 6-decimals throughout. This is the mechanism that replaced BNB-era Merkle distributions — see Revenue & distributions.

Components

Roles & permissions

Every privileged action is a named role, not an ambient owner. Roles are granted at deploy and move to a multisig / governance setup at the audited Phase-2 redeploy. See Governance.

Redemption path

A liquid share token sits on top of illiquid hardware, so exits are designed so they can’t bank-run the reserve: availableCash = balance − reserveFloor keeps a buffer reachable only by the queue processor, never an instant sell. On the queued path the exit fee stays in the vault as extra buffer for remaining holders.

Observability

The protocol emits an event for every state change, so the indexer and transparency surfaces reconstruct state from the chain rather than from client input:

Upgradeability

Core contracts are deployed behind UUPS proxies, so implementations can be upgraded without changing addresses or migrating balances. Upgrade authority (UPGRADER_ROLE) is held by the protocol admin today and moves to a multi-signature / governance setup at the audited Phase-2 redeploy. Each contract reserves a storage __gap so state can be extended across upgrades without collisions.
Config is chain-agnostic — chain id, RPC, and token addresses are parameters, so a second chain later is a deploy, not a rewrite.

The source-of-truth principle

Ownership and positions are reconstructed from verified on-chain events by an event indexer, not from client input: This is the invariant the protocol holds before real value moves on mainnet — see the roadmap.