VimenDocs
Protocol

Stock Tokens & ERC-8056

What the underlying tokenized equities are and how Vimen stays exact through corporate actions.

Most Vimen constituents are Robinhood Stock Tokens: tokenized equities issued by Robinhood Assets (Jersey) Limited on Robinhood Chain. The facts that matter for the protocol (source: official docs):

Standard ERC-20, 18 decimals

transfer / transferFrom / approve / balanceOf work without restriction; the tokens can be held and moved by any wallet and any smart contract. Robinhood's docs explicitly list "indices & baskets" as an invited use case.

ERC-8056: the Scaled UI Amount extension

Corporate actions (stock splits, reinvested dividends) do not change raw balances or totalSupply. Instead they update a display multiplier:

MemberMeaning
uiMultiplier()Current shares-per-token ratio, 1e18 fixed-point (1e18 = 1.0). At issuance 1 token = 1 share.
newUIMultiplier() / effectiveAt()Pending scheduled multiplier and its activation timestamp.
balanceOfUI(address) / totalSupplyUI()UI-adjusted views.
UIMultiplierUpdated(...)Event on multiplier change.

Stock Tokens are not rebasing: underlying shares = raw amount × uiMultiplier ÷ 1e18. The raw ERC-20 layer is permanently exact.

Why Vimen ignores the multiplier entirely

BasketToken works purely on raw amounts and never reads uiMultiplier(). Since corporate actions change only the multiplier and never raw balances, a split or dividend reinvestment cannot desync the vault: the raw units per basket token, the vault's raw holdings and your redemption amounts all remain exactly what they were. The multiplier is a frontend concern (it's how prices and share counts are displayed), and the Chainlink price per token is already multiplier-inclusive.

This single design decision removes an entire class of accounting bugs that would exist if the contract tried to track "shares" instead of tokens.

Price feeds

Each Stock Token has a Chainlink feed (AggregatorV3Interface, 8 decimals) updating 24/5 following US market hours; feeds go stale on weekends and re-publish the Friday close. Feeds are paused during corporate actions (advisory flag oraclePaused() on the token). Vimen uses feeds only off-chain (deploy-time units) and in the frontend (display with staleness badges), never in the contract path.

The issuer relationship (read carefully)

Stock Tokens are debt instruments of Robinhood Assets (Jersey) Ltd, not direct share ownership. The issuer can pause or freeze the tokens. Vimen inherits this risk and cannot remove it: if any constituent's transfers are frozen, redemption of the whole basket reverts until the freeze lifts (redemption is all-or-nothing by design). This is the dominant risk of the stock baskets, it is why deposit caps exist, and it is covered in full in Risks.

They are also not available to US, UK, Canadian, Swiss or UAE persons; Vimen's availability restrictions mirror the underlying's.

On this page