Skip to content
KYZEN DOCUMENTATIONLaunch app

DocsProductsSilicon markets

Memory index

kMEMORY: MU and SNDK at equal dollar weights from $100, priced by Chainlink.

Synthetic
kMEMORY
Basket
MU, SNDK
Start
$100
Mint window
Mon to Fri, 14:30 to 20:00 UTC

#The basket is fixed

The Memory index prices the memory stage of the chip supply chain from MU and SNDK, each read from its Chainlink feed on Robinhood Chain. Its synthetic, kMEMORY, holds no stock and does not redeem for stock tokens.

Stock tokenComponentChainlink feedWeight at deployment
MU00x425EEF·a6d59650.0%
SNDK10xfb133F·7109A350.0%

Each weight is set once, at deployment: equal dollar amounts that start the index at $100. The basket never rebalances, so the weights drift with prices. The index values each token at its feed’s per-token price, which reflects the token’s multiplier for corporate actions as the issuer sets it. The index adds nothing to the feeds.

Quantity of each stock
quantity = ($100 ÷ 2) ÷ price at deployment
price at deployment
The stock’s Chainlink answer in its feed’s deployment round, the reference price
rounding
Down, to 18 decimals
Index price
index = Σ quantity × latest price
latest price
Each stock’s latest Chainlink answer, in 18 decimals
rounding
Each term up, to 18 decimals, against the minter
update time
The oldest of the stocks’ update times

The deployment round of each feed is the reference: its price sets the quantity, and the breaker measures from it. The feed records both at deployment in its ComponentAdded events, and component(i) reads a component’s feed, decimals and quantity. A round that cannot be read, an answer of zero or below, or an update time in the future leaves the index without a price.

Worked examplekMEMORY from $100
MU and SNDK at deployment
$200.00 and $100.00
Quantities
0.25 MU and 0.5 SNDK: $50.00 of each
MU rises 10%
0.25 × $220.00 + 0.5 × $100.00 = $105.00
Weights then
MU 52.4%, SNDK 47.6%

Example prices. The quantities are set once, from each feed’s price in its deployment round. A split leaves them unchanged.

The stock tokens and their stages: Holdings by stage.

#Mints follow market hours

A mint, and a withdrawal from a position with debt, needs the index fresh for mints: every rule below holds at the moment of the transaction. Repaying and adding collateral read no price and work at any time.

RuleValue
DaysMonday to Friday, except exchange holidays
Hours14:30 to 20:00 UTC; 14:30 to 17:00 UTC on early-close days
PricesEvery stock’s latest Chainlink answer at most 24 hours old
BreakerNo component stopped (A jump stops the index)
PauseThe index not paused by its guardian

The window sits inside the regular US session in both summer (13:30 to 20:00 UTC) and winter (14:30 to 21:00 UTC), so a mint never prices off a close while after-hours trading moves a stock.

The stock feeds on Robinhood Chain update when prices move, not on a schedule, so a feed’s age cannot tell a closed market from a quiet one: the window and the calendar do. On a Monday, mints wait for each stock’s first update, since Friday’s prices are more than 24 hours old.

The market calendar is a contract its owner sets: it closes exchange holidays and ends the window at 17:00 UTC on early-close days. A change that restricts a day takes effect at once. A change that relaxes one applies only to a day that starts at least 24 hours later.

#Liquidations run any hour

Starting an auction, and restarting one that ended unsold, needs the index fresh for liquidations: every stock’s latest answer at most 96 hours old and no component stopped, on any day and at any hour. The guardian’s pause does not stop them.

96 hours covers the longest regular closure, about 92.5 hours from an early close on a Thursday to the open after a holiday Friday, so a weekend fall in $KYZN can be liquidated at Friday’s prices.

The auction’s terms, the collateral rules and the levels apply to every Silicon market: Liquidation is a Dutch auction.

#A jump stops the index

Each component keeps a checked round, the last round accepted: its deployment round at first. A component stops when a later round moves more than 30% from the round before it, answers zero or below, or cannot be read. One stopped component stops the index for mints and liquidations alike.

RuleValue
JumpA round more than 30% from the round before it; a move of exactly 30% is not a jump
UnreadableA round that cannot be read or follows one that cannot, or an answer of zero or below
Checked roundsync() moves it forward over rounds each within 30% of the one before; anyone can call it, and the vault calls it before it reads prices
BacklogAt most 16 rounds past the checked round per call and per check; a longer backlog stops the index until sync() catches up
ClearThe guardian only, with clearJump(i, roundId) naming the feed’s current round

The stop latches: later rounds within 30% do not lift it. The guardian checks any move of more than 30%, such as a large earnings gap or a bad print, before it clears the round. It clears exactly the round it checked, so a newer print that lands first is not accepted unseen.

The server’s worker calls sync() when a stock’s feed has new rounds. It alerts the owner when a component stops for any reason: a move of more than 30%, an unreadable round, or a quantity change waiting for the guardian. It starts auctions for positions below 150% and restarts those that end unsold. Anyone may bid.

#Splits leave quantities unchanged

Each stock token carries a multiplier that its issuer updates for corporate actions, such as a split. Each stock’s Chainlink feed prices one token, and its answer already includes the multiplier. A split or another corporate action therefore does not change a quantity. The feed holds its last price through the action and resumes at a continuous per-token price. A held price ages like any other, under the 24-hour and 96-hour rules above.

A quantity changes only as a correction, if a feed’s per-token price ever stops tracking its token, for example after a feed or token migration. A correction waits 24 hours, in public.

StepRule
QueueThe owner calls queueQuantity(i, quantity); a second call replaces the first and restarts the 24 hours
ApplyAnyone calls applyQuantity(i) from 24 hours after the queue; the component then stops until the guardian clears it
ClearThe guardian cannot clear a component while a quantity is queued for it
CancelThe owner or the guardian can cancel a queued quantity

A correction is accepted once, by a guardian who has seen the feed’s price against the new quantity.

#The guardian can pause

The guardian, an address the owner names, can pause the index. A pause stops mints and withdrawals from a position with debt. Liquidations, repaying and adding collateral continue.

The vault’s owner can also stop new mints in the market, for a USDG depeg or a feed incident (Positions hold 150% collateral). The vault opens the market only once the index has a guardian and a methodology hash.

#Methodology text and hash

The Memory index’s methodology is a plain text file that states the rules on this page. The owner records the keccak-256 hash of its exact bytes in the index’s feed as methodologyHash (setMethodology).

DetailValue
Textdocs.kyzen.network/methodology/kmemory.txt
FormatPlain ASCII text, LF line endings, 6,634 bytes
keccak-2560x79ca695059f495b8b688a00c56d88bb0a8a1f4fdbd18d39fd01553a04fa53338
Recorded asmethodologyHash in the index’s feed

Any change to the text, even a space or the final newline, changes its hash. Hash the file as served, as bytes, with one of these commands, and compare the result with the feed’s methodologyHash.

Hash the methodology
curl -s https://docs.kyzen.network/methodology/kmemory.txt -o kmemory.txt
cast keccak "0x$(xxd -p kmemory.txt | tr -d '\n')"
# 0x79ca695059f495b8b688a00c56d88bb0a8a1f4fdbd18d39fd01553a04fa53338

cast call <index feed> "methodologyHash()(bytes32)" --rpc-url https://rpc.mainnet.chain.robinhood.com
Esc
  • OverviewGet started
  • Quick startGet started
  • Wallets and networkGet started
  • Where the app opensGet started
  • GuidesGuides
  • Buy $KYZNGuides