Consuming the OracleTestnet Quickstart

Testnet Quickstart (Arbitrum Sepolia)

The full path, index → signed oracle → on-chain settlement, runs on Arbitrum Sepolia (chain id 421614) today. The reference contracts are deployed and verified on-chain, and the demo perp’s vault is seeded so trades pay out. A fresh deployment from the current script wires all eight published feed ids; the July 2026 deployment below predates the GPU feeds and was wired with the six feeds of that era.

First settlement loop: proven on-chain (July 2, 2026)

All six signed feeds pushed in one transaction (0x9a3f…b1297, total update fee 6 wei), read back through MeconeStorkConsumer.price() matching the live API exactly, and the first position traded through the demo perp: open 5× long MGDP (0x885d…1c48), marked to the on-chain oracle, closed (0xb063…f1c2) with collateral returned exactly. A pusher keeps the on-chain values fresh continuously.

Deployed contracts (July 2026)

ContractAddress
Oracle proxy0x7Bb9740FdcbD91866CaFEd099C36445Ea8140627
MeconeStorkConsumer0x0926B7644ebFEB8500028848254630a5bee4f403
MeconePerpDemo0x2408353185761834E63Aae054f1ae5C01548766A
MockUSDC (faucet collateral)0x5F6654f8292294d3e3c7E6ebB2Ab887326E42995

Addresses link to Arbiscan Sepolia · RPC: https://sepolia-rollup.arbitrum.io/rpc

Read an index on-chain

# The current Mecone US-GDP index, 1e18-scaled, with its publish timestamp:
cast call 0x0926B7644ebFEB8500028848254630a5bee4f403 \
  "price(bytes32)(int256,uint64)" \
  $(cast format-bytes32-string MGDP) \
  --rpc-url https://sepolia-rollup.arbitrum.io/rpc

The consumer reverts on an unknown market or a value older than its staleness window (600s), which is exactly the behavior a perp engine wants: missing beats wrong.

The on-chain rail is a pull oracle: price() reads the last value pushed on-chain. Fresh values are submitted via updateTemporalNumericValuesV1 (the update fee on Arbitrum Sepolia is 1 wei); during pilots we keep the values fresh for you.

Trade the reference perp

MeconePerpDemo is a deliberately lean, oracle-priced perp (no order book; the vault is the counterparty; isolated margin; up to 20× leverage). Mint yourself mock collateral and trade:

USDC=0x5F6654f8292294d3e3c7E6ebB2Ab887326E42995
PERP=0x2408353185761834E63Aae054f1ae5C01548766A
RPC=https://sepolia-rollup.arbitrum.io/rpc
 
# 1. faucet: mint 1,000 mUSDC to yourself (6 decimals; open mint, testnet only)
cast send $USDC "mint(address,uint256)" $YOUR_ADDRESS 1000000000 --rpc-url $RPC --private-key $PK
 
# 2. approve + open a 5x long on MGDP with 100 mUSDC
cast send $USDC "approve(address,uint256)" $PERP 100000000 --rpc-url $RPC --private-key $PK
cast send $PERP "open(bytes32,bool,uint256,uint256)" \
  $(cast format-bytes32-string MGDP) true 100000000 5 --rpc-url $RPC --private-key $PK
 
# 3. watch PnL, then close
cast call $PERP "pnlOf(uint256)(int256,int256)" 0 --rpc-url $RPC
cast send $PERP "close(uint256)" 0 --rpc-url $RPC --private-key $PK

Entry, PnL, and liquidation all mark to MeconeStorkConsumer.price(), i.e. to the same signed value Mecone publishes on-chain.

Want a different index on testnet? Reach out and we will wire the feed and deploy it for your team to read live.