sheaf

Testnet · Tempo testnet (Moderato)

AI Core

AICORE · 0x3414…3a46 · creator fee 0.50% of shares created

One share, at the real stocks' price

$10.15

Robinhood Stock Token quotes

HyperCore 24/7: reading

One AICORE share is a claim on 4 holdings sitting in a contract on Tempo that has no owner, no pause and no upgrade path. Anyone can create a share by depositing the recipe, and any share can be redeemed for it. No issuer has stock tokens on this testnet, so the holdings are labeled mirrors: free tokens named “Tesla (Sheaf testnet mirror)” and so on, worth nothing. The dollar figure is what the same recipe would be worth in the real shares.

GOOGLNVDAMSFTPLTR
Shares outstanding
—— creations, — redemptions
Everything in the vault
—At the real stocks' price
Backing
—Held against owed, every component
Dollar desk
AlphaUSDTempo's own TIP-20 dollar

First, Tempo's own faucet: pathUSD pays the fees (Tempo has no gas token) and AlphaUSD pays for dollar orders.

Then mint the mirrors yourself: every one has a public faucet(), so your own wallet calls it and no key of ours is involved. Enough for two shares.

Tempo-native

A monthly plan the chain enforces

On Tempo a monthly plan is not an allowance a server promises to respect. It is an access key: the investor signs once, the keeper may spend 25 AlphaUSD every 30 days, and only on two calls, AlphaUSD.approve with the desk as spender and CreationDesk.placeOrder. Ask for more, or call anything else, and the chain refuses. Gas is paid in pathUSD, a dollar, because Tempo has no gas token.

The recorded run

08 Oct 2026 18:58 UTC

evm/scripts/tempo-sip.mjs, against Tempo Moderato

  1. The investor (here, the house) signs one key authorization

    Keeper 0x9331…aeef may spend 25 AlphaUSD per 30 days, scoped to approve(desk) and placeOrder.

    0x0cbf0bd3…a4c503

  2. Keeper places the month's installment

    approve + placeOrder in one atomic Tempo transaction: 1 MAG8 at 10.10 AlphaUSD, order #2, then filled in kind.

    0xc84ec2ac…54a759

  3. Keeper asks for 20 more

    Only 14.90 AlphaUSD was left in the period. Rejected before it could be included, so no transaction exists.

    Refused: SpendingLimitExceeded

  4. Keeper tries AlphaUSD.transfer

    A call outside the scope. Rejected the same way.

    Refused: CallNotAllowed

Left this period, live

reading

Resets

—

Read from Tempo's AccountKeychain precompile (getRemainingLimitWithPeriod) for investor 0x59d3…0285, the house, which invested in this recording, and keeper key 0x9331…aeef.

Run it in this browser

You are the investor, with a passkey or a key made in this browser as your Tempo account. The house key 0x59d3…0285 is the keeper: in the recorded run the house was the investor; in yours it is the keeper. Free testnet dollars only.

  1. Make your Tempo accountA passkey, or a throwaway key kept in this browser
  2. Fund it from Tempo's faucetpathUSD for fees, AlphaUSD to invest
  3. Sign the plan, once25 AlphaUSD per 30 days, two calls only
  4. The keeper places this month's installmentapprove and placeOrder in one transaction, filled in kind
  5. The keeper tries to overspendThe chain refuses: SpendingLimitExceeded
  6. The keeper calls outside the scopeThe chain refuses: CallNotAllowed
  7. Revoke the planOne signature, and the keeper can spend nothing

The recipe

Written once, in the constructor, with no setter. The recipe is in raw token units, so a split or a dividend that a token applies through its multiplier accrues to every share without anyone touching the vault.

HoldingPer shareValueWeight
NVDAmirror
0.017378$4.0740.1%set 40.0%
MSFTmirror
0.004794$2.5425.0%
GOOGLmirror
0.005756$2.0219.9%set 20.0%
PLTRmirror
0.007601$1.5315.0%

Is it actually backed?

Held is the vault's balance of each token right now, from vaultBalances(). Owed is the recipe times totalSupply(). Deposits round up and redemptions round down, so held can never fall below owed.

Reading the vault…

Verify it yourself

Two reads against the public RPC, no key:

cast call 0x34140EeF33a3Dc746886432317E251EAa4c93a46 "totalSupply()(uint256)" --rpc-url https://rpc.moderato.tempo.xyz
cast call 0x34140EeF33a3Dc746886432317E251EAa4c93a46 "vaultBalances()(uint256[])" --rpc-url https://rpc.moderato.tempo.xyz

For every component, vaultBalances[i] must be at least unitsPerShare[i] × totalSupply ÷ 10^18. The recipe is in components().

The desk's book

Dollar orders on Tempo testnet (Moderato), newest first, read from getOrder(). A buyer escrows AlphaUSD; any participant who delivers the components in kind collects it, and the shares are minted straight to the buyer. The house filler is one such participant.

Desk 0x4EB6…2Eb0

Reading the desk…

Priced around the clock

The stock exchanges close; HyperCore's stock perpetuals do not. This prices the same recipe from trade.xyz's oracle on Hyperliquid testnet, read through HyperEVM's oraclePx precompile with a plain eth_call, no gas and no key. It is a reading, not a deployment: nothing of Sheaf runs on Hyperliquid yet.

—

Priced from HyperCore, not deployed

PerpPrecompile indexOracle price
xyz:NVDA—reading
xyz:MSFT—reading
xyz:GOOGL—reading
xyz:PLTR—reading

The contracts, verified

Also on Tempo: Magnificent Eight (MAG8), Everyday Tech (EVDY).