PathrockNetwork Gno Explorer
HomeBlocksTransactionsTokensRealmsPackagesValidatorsAnalytics

PathrockNetwork Gno Explorer — an independent explorer for Gno.land Mainnet (gnoland-1), operated by PathrockNetwork. Not an official Gno.land service.

gnowebarchive RPC

gno.land/r/moul/x/across/v0

Realm
Open in gnoweb ↗

Overview

Kind
Realm (renderable)
Name
v0
Namespace
moul / x / across
Files
4 (README)(gnomod.toml)
Exported functions
3
Module
gno.land/r/moul/x/across/v0
gno
0.9

Files (4)

  • README.mdmarkdown
  • gnomod.tomltoml
  • across.gnogno
  • across_test.gnogno
README.mdPreviewRaw
# `gno.land/r/moul/x/across/v0`

One address, read across fifteen realms that were already on chain.

Open `/r/moul/x/across/v0:<address>` and the page answers with everything fifteen
other realms will say about that address: token balances, an LP position, stake
and unclaimed rewards, a check-in streak, dice rolled, a rate-limit bucket, a
lottery entry, a reaction. Rows that came back empty are counted and hidden.

## What it is demonstrating

Not one of the fifteen source realms was changed. None of them knows this realm
exists, none of them registered anywhere, and there is no shared interface, no
base package, no version handshake. The only thing every source had to do was
**not** declare `private = true` in its `gnomod.toml`, which is what lets another
realm import it at all.

That is the composability claim in its weakest, most testable form: a realm's
exported reads are a permanent public API, because the path it lives at can never
be replaced. What you compile against today is what is on chain forever.

## What it cost

Eight of the sources hold a per-address balance. They agree on nothing:

| realm | signature |
| --- | --- |
| `r/moul/x/daily/erc20/v0`, `…/vestoken/v0`, `…/wrapped/v0` | `BalanceOf(address) uint64` |
| `r/moul/x/pairs/aaa/v0`, `…/bbb/v0` | `BalanceOf(address) int64` |
| `r/moul/x/grc20faucet/v0` | `BalanceOf(symbol string, owner address) int64` |
| `r/moul/demo/wikicoin/v0` | `BalanceOf(address) uint` |
| `r/moul/x/daily/dice/v0` | `RollsOf(addr string) []int` |

Three integer widths, two signednesses, one that wants a symbol before the
address, one that wants the address as a `string`. Composition still works, it
just costs one hand-written adapter line per source. `Report` is those lines and
nothing else, which is also why this realm ships no `p/` library: extract one and
both halves are empty.

## The two sources that could not be read

- **`r/moul/x/amm/v0`** exports `SharesOf(keyA, keyB string, owner address)`,
  which routes through a helper that **panics** on an unknown pool. A getter that
  panics is not composable: one panicking source takes down a page assembled from
  fifteen, and `recover()` does not catch a cross-realm abort. Only its
  `PoolCount()` is called from here.
- **`r/moul/demo/vault/v0`** exports `MyBalance()` with no address parameter, so
  it answers for its caller, which from here is this realm.

Neither is a bug. Both are what a getter looks like before anyone has tried to
call it from another realm.

## Private by default, and why this one is too

`private = true`, the repo default, because nothing needs to import *this* realm.
The flag is a one-way door decided before the first publish, and it is the single
thing that determines whether a realm can ever appear in a page like this one.

<!-- BEGIN GNOCONTRACTS FOOTER (generated by `make readmes`; do not edit below) -->

---

Part of **[moul/gno-contracts](https://github.com/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/across/v0 dependency graph](https://raw.githubusercontent.com/moul/gno-contracts/main/_assets/gno.land/r/moul/x/across/v0/deps.png)

> 🧪 **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](https://github.com/moul/gno-contracts/blob/main/DISCLAIMER.md).

<!-- END GNOCONTRACTS FOOTER -->

Functions

  • Render(path string) string

  • Report(who string) []gno.land/r/moul/x/across/v0.fact

  • Sources() int

Signatures reconstructed verbatim from vm/qfuncs — interface params keep their inline definitions.

Rendered

RenderedRawgnoweb ↗

vm/qrender output, sanitized (docs/render-security.md) and displayed in an empty-sandbox iframe — scripts, forms and popups cannot run. Links stay inert in-preview; right-click to open.