Packages
4 reusable /p/ primitives, live on pearl-1 and meant to be imported into your own realms. This is what you build with: the applications demonstrate what they compose into.
coinio
gno.land/p/g1ut6uspuh73e02yauxpmyt8g3wwddaq8utagvm3/coinio
Native-coin I/O for realms: the Receive receipt-guard trio (caller shape, envelope, denomination), Payout via RealmSend, reserve-protected Sweep, and HeldAt.
3 exported symbols · 5,685 bytes · Composed into bounty_panel, coindemo, grants, market, service_market, subscriptions
duebook
gno.land/p/g1ut6uspuh73e02yauxpmyt8g3wwddaq8utagvm3/duebook
Deferred-action scheduling. Claim is consume-then-act over never-reused IDs, so at most one Claim per ID can succeed across all transactions. No closure or capability crosses a realm boundary.
24 exported symbols · 16,570 bytes · Composed into duebook_demo
feeledger
gno.land/p/g1ut6uspuh73e02yauxpmyt8g3wwddaq8utagvm3/feeledger
Per-account balance ledger with an explicit basis-point fee pot; error-pure and overflow-checked. Conservation contract: held == UsersTotal + FeesAccrued + surplus.
17 exported symbols · 8,723 bytes · Composed into bounties, bounty_panel, coindemo, grants, market, service_market, subscriptions, vault
permbook
gno.land/p/g1ut6uspuh73e02yauxpmyt8g3wwddaq8utagvm3/permbook
Named permissions granted to and revoked from addresses, O(log P + log H) membership. Each consumer allocates its own Book with its own Limits, so capacity contention across applications is structurally impossible.
23 exported symbols · 18,208 bytes · Composed into permbook_demo
Why packages, not copies
On gno.land an import path is a deployed, immutable address — importing a package means running the exact bytes every other consumer runs, and those bytes are byte-verified against the committed source. Each package page carries the full chain-derived API (gnoweb's $help shows only top-level functions of a /p/ package), the digest command to check the deployed bytes yourself, and the recorded limitations.