README.md
Time Capsule Guestbook
⚠️ Experimental — generated with no human supervision. This realm was produced automatically by an MCP-driven agent to exercise the gno MCP server and tooling, and to generate test content for gno compilers, linters and formatters. Not audited. Not for production. Full context & folder README: r/moul/x/daily
A public guestbook with a twist: every message is sealed until a future block height, chosen by its author when they leave it. Until then it's just a locked entry showing who sealed it and when it opens; once the chain reaches that height, the message unlocks forever for anyone to read.
Realm: gno.land/r/g12cs4cehujpffpjpywmkqj43m6u5ya53nj69sjz/timecapsule
Example calls
Leave("see you in 100 blocks", 100)— seal a message that opens 100 blocks from now. Returns the capsule id. Only direct EOA (MsgCall) calls can seal one; empty messages, messages over 500 bytes, and delays outside(0, 1_000_000]blocks are rejected.Render("")— home page: counts + every already-unlocked message.Render("sealed")— every still-sealed capsule with its unlock height and blocks remaining (message hidden).Render("capsule/<id>")— a single capsule's detail page; shows the message only once unlocked.
Toolchain status
Tested locally against a gnolang/gno master checkout (~/p/gh/gnoland/gno)
using its own gno binary as GNOROOT, resolving /p/nt/* deps through its
examples/ workspace. All 5 unit tests pass (gno test -v .), and gno lint .
reports no issues. This is newer than sapphire (gno 0.9), but the code only uses
APIs documented as current in the project's gno skill (chain, chain/runtime,
gno.land/p/nt/avl/v0, gno.land/p/nt/markdown/sanitize/v0), so it should be
on-chain-valid for sapphire as well.
Part of moul/gno-contracts — moul's versioned gno.land contracts. See the repository for the full catalog, build/test tooling, and usage.
Dependency graph:

🧪 Highly experimental — potentially vibe-coded. Not audited; may break, change, or be removed at any time. Do not use with anything of value. Full disclaimer: DISCLAIMER.