Skip to content
KYZEN DOCUMENTATIONLaunch app

DocsProtocolThe Scheduler

Memos and verification

Where each memo is served, and how to check its hash against the registry.

Format
kyzen-memo/1
Hash
keccak-256
Record
Weight registry

#Where memos live

Each rotation’s memo is a JSON document in the kyzen-memo/1 format. It is served read-only, byte for byte, at docs.kyzen.network/memos/<n>.json, where n is the rotation’s number in the registry, from 0. Testnet memos sit under /memos/testnet/.

The weight registry records each rotation for good. A memo is served before the registry records it: publishing stops unless the link serves the memo’s exact bytes.

The registry's record of a rotation
FieldHolds
weightsFive weights in basis points: design, memory, fab, equipment, power
memoHashThe keccak-256 hash of the memo’s exact bytes
memoURIThe memo’s link
executesAtWhen the rotation executes, in unix seconds
publishedAtWhen the registry recorded it
The memo's fields, in order
FieldHolds
schemakyzen-memo/1
rotationThe registry’s number for the rotation, from 0; posts and these docs count from 1
monthThe month the scorecard reads, YYYY-MM
executesAt14:30 UTC on the execution date, in unix seconds
bottleneckThe stage the rulebook names
bottleneckLabelThe constraint the memo names, such as HBM
weightsBpsThe five weights, in basis points
rulebookThe rulebook version, v1
scorecardWhether it is a dry run, and every reading with its note and sources
writerrulebook, or model:<id> for a text a model wrote
textThe memo itself, in paragraphs and lists

The bytes are canonical: the fields in this order, the weights in the registry’s order, the readings in the input table’s order, two-space indentation, one final newline, UTF-8. The same memo always gives the same bytes, and so the same hash.

On mainnet the owner wallet records each rotation. Before it does, the memo passes the server’s own checks: its canonical form, the copy rules, rulebook v1 run again on its own scorecard (Rulebook v1), the registry’s caps and dates, and its link. A dry-run memo is refused.

The weight registry is 0x9960eb·227d09.

#Check a memo's hash

The Scheduler page shows a memo, and the dashboard its bottleneck, only when the memo’s bytes hash to the registry’s memoHash. Anyone can make the same check.

  1. 01
    Read the rotation
    Read the weight registry on the explorer, or with the first commands below: latest() for the newest rotation, rotation(n) for any other. Note memoHash and memoURI. With no rotation recorded, latest() reverts with NoRotation.
  2. 02
    Download the memo
    Save the file at memoURI exactly as served. Any change, even a space or the final newline, changes the hash.
  3. 03
    Hash its bytes
    Hash the file’s bytes with keccak-256, with one of the commands below.
  4. 04
    Compare
    The result equals memoHash. A memo whose hash differs is not the memo the registry recorded.
Read a rotation
cast call 0x9960eb28D2fb78A901E310dd2aB99Ba4ea227d09 "latest()((uint16[5],bytes32,string,uint64,uint64))" --rpc-url https://rpc.mainnet.chain.robinhood.com
cast call 0x9960eb28D2fb78A901E310dd2aB99Ba4ea227d09 "rotation(uint256)((uint16[5],bytes32,string,uint64,uint64))" <n> --rpc-url https://rpc.mainnet.chain.robinhood.com
Hash a memo
curl -s https://docs.kyzen.network/memos/<n>.json -o memo.json
cast keccak "0x$(xxd -p memo.json | tr -d '\n')"

The testnet dry run shows the whole check: the testnet registry’s rotation 0 (Rotation 1 in posts and these docs), a memo of test readings, and the hash both sides give.

Testnet registry, rotation 0
cast call 0xd0f9B82095186Ec1E8568ECB8B7C85C8D77534A2 "rotation(uint256)((uint16[5],bytes32,string,uint64,uint64))" 0 --rpc-url https://rpc.testnet.chain.robinhood.com
# ([1548, 2903, 2065, 1548, 1936], 0xfaf30ce57c54e5dfe4fd3f58df73cfe200ab87d1adb40ddf114c5e0095b2e268, "https://docs.kyzen.network/memos/testnet/0.json", 1793629800 [1.793e9], 1791024111 [1.791e9])

curl -s https://docs.kyzen.network/memos/testnet/0.json -o memo.json
cast keccak "0x$(xxd -p memo.json | tr -d '\n')"
# 0xfaf30ce57c54e5dfe4fd3f58df73cfe200ab87d1adb40ddf114c5e0095b2e268
Esc
  • OverviewGet started
  • Quick startGet started
  • Wallets and networkGet started
  • Where the app opensGet started
  • GuidesGuides
  • Buy $KYZNGuides