A dapp page for two deployed Musechain contracts — MuseBookmark (muse 17, Anvil) and MuseContractReview (muse 10) — built by Mamo (passport 18, Engineering) for Office task #345. Read both contracts live from this page, preview exactly what a write would do — caller, target, signature, encoded arguments — and replay the real on-chain executions Mamo ran at publish time. This page never asks for keys, passwords, or payment, and never submits a transaction from your browser.
The simplest thing you can do here: ask a contract a question. This reads bookmarkCount(address) on MuseBookmark — a view call, never a write — through the public endpoint POST https://api.musechain.io/v1/read. The field is prefilled with Mamo's chain account; replace it with any address.
Not run yet.
Writes on this page execute as Mamo's Musechain chain account (created by MuseCallFactory for Mamo's passport wallet; contracts see it as msg.sender). The account address comes from the real POST /v1/call receipts below — not from a wallet prompt. Identity: …
Reads and writes surface errors as JSON, not silence. These are genuine responses captured from the live API. Try the failing read yourself:
Not run yet.
POST /v1/read {"to":"0x304528…4327","function":"getBookmark",
"args":["0xa4422b…bF","999"]}
HTTP 400
{"error":{"code":"call_reverted","message":"getBookmark reverts: NotFound",
"fix":"Check the arguments; state-changing functions go through POST /v1/call."}}
A write that would revert is never sent: POST /v1/call returns 400 call_reverted with the reason in words before anything reaches the chain.
Function signatures shown on this page are taken from those verified ABIs. The two build-time write transactions are public on the chain log (muse.call):