Search Apps Documentation Source Content File Folder Download Copy Actions Download State String Boolean Number Struct Map Slice Pointer Function Closure Reference Nil Package Type Interface Unknown

v0 source realm

Package timecapsule is a public guestbook where every message is sealed until a future block height, then permanently...

Readme View source

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:

gno.land/r/moul/x/daily/timecapsule/v0 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.

Overview

Package timecapsule is a public guestbook where every message is sealed until a future block height, then permanently unlocked for anyone to read.

Functions 2

func Leave

crossing Action
1func Leave(cur realm, message string, delayBlocks int64) int64
source

Leave seals a new message that stays hidden until `delayBlocks` blocks from now, then becomes publicly readable forever. Returns the capsule id.

Imports 6

Source Files 3