Krysos.
Gabung
Testnet

Testnet. MockXAU is not gold and test MDLR has no value.

What that means

Verify MDLREN

Check the reserves without trusting us.

Five steps, each against the chain or a file whose hash the chain holds. Step 5 applies from mainnet, when there is real gold to count.

The latest epoch, to check against

Epoch
Published

2026-10-21 11:44 UTC · block 1,521,819

On-chain

635,183.847458

Off-chain

2,120.194633

CR

1.0793

docsRoot

0x8d14ea05308e92df1261be1a2c87ccad90172e48716672a9efb82030afeb8a21

Statement
01

Read the latest epoch

Open the ProofOfReserves contract on the explorer, go to Read contract, call epochCount() and then epoch(n) with that number. Note supply, onchainValue, docsRoot and the off-chain lines.

ProofOfReserves · View on the explorer

02

Recompute supply and the on-chain reserve

Call totalSupply() on the MDLR token and holdings(asset) on the ReserveManager for each registry asset. Value each holding at the price from OracleAdapter.read(keccak256("XAU/USD")), less its haircut from CollateralRegistry.asset(asset). The total should match onchainValue for the block the epoch was published in; the contract refuses an epoch where they differ, and this step checks that it did.

ReserveManager · View on the explorer

03

Hash the statement

Download the epoch's statement from the documents page and compute its SHA-256. It must equal docsRoot. On testnet each epoch has one document, so docsRoot is that document's hash; with several documents it becomes the root of a Merkle tree of their hashes.

Documents

04

Check the hedge on the venue

The statement names the venue account that holds the hedge and the request that reads it. Send that request to the venue's public endpoint: the position must match the hedge line. In the statement, the account value must equal the margin plus the profit or loss, and the off-chain line may include the profit or loss but never the margin.

Hedge

05

Count the gold (from mainnet)

From mainnet, check the gold. While the reserve holds PAXG or XAUT, its holdings are on chain (step 2), and their issuers publish their own attestations. Once it holds MGLD, check the MGLD bar list against the vault's signed statement and the independent auditor's attestation, each published here with its hash on chain. On testnet there is no gold to count.

Commands for step 2

With Foundry's cast installed. Each returns a raw integer: MDLR has 6 decimals, the gold tokens 18, and the price 18.

RPC=https://rpc.testnet.onmidas.xyz
# the latest epoch
cast call 0x4436f86f32aFa40d2260D0c1BBBa6fA228C67fFF "epochCount()(uint256)" --rpc-url $RPC
cast call 0x4436f86f32aFa40d2260D0c1BBBa6fA228C67fFF \
  "epoch(uint256)((uint64,uint64,uint256,uint256,uint256,int256,uint256,uint256,bytes32,string,bytes32,string))" <n> \
  --rpc-url $RPC
# supply (6 decimals)
cast call 0x2b001a9401aEB7641318d48aEEB5938693Ab4B5f "totalSupply()(uint256)" --rpc-url $RPC
# on-chain holdings per asset (18 decimals)
cast call 0xC6010490A292Dcb7Fa7C9c47D73d983Be3646a41 "holdings(address)(uint256)" 0xd47F0EcD6f53bA48524c6C2E454aE716bC6174D5 --rpc-url $RPC
cast call 0xC6010490A292Dcb7Fa7C9c47D73d983Be3646a41 "holdings(address)(uint256)" 0x0Da5029c9567dAa3926d5754146F59606007026a --rpc-url $RPC
# XAU/USD (18 decimals): median, updatedAt, fresh sources, usable
cast call 0x89Ea8c262a5612Cd5c44A37613D2553b4BfE4FF2 "read(bytes32)(uint256,uint256,uint256,bool)" $(cast keccak "XAU/USD") --rpc-url $RPC
# an asset's haircut: (decimals, status, testnetOnly, haircutBps, maxShareBps, oracleId, hedge)
cast call 0xa7B1c6Fc562531b65aa2C08A570D3bBDd59fe13a "asset(address)((uint8,uint8,bool,uint16,uint16,bytes32,bytes32))" 0xd47F0EcD6f53bA48524c6C2E454aE716bC6174D5 --rpc-url $RPC

Nothing on these pages is an offer, a solicitation or a recommendation to buy, sell or hold any asset, in any jurisdiction. Test MDLR is not sold and has no value.