# `gno.land/r/moul/demo/grc20` Step 6 of the `r/moul/demo` walkthrough: the same ledger as [`wikicoin`](../wikicoin), but on the standard `p/nt/grc20` token instead of a hand-rolled tree. ```go var ( Token *tokens.Token // exported: anyone may read privateLedger *tokens.PrivateLedger // unexported: mint, burn, transfer ) ``` **That split is the whole lesson.** `NewToken` returns two handles onto one token. The `Token` handle is read-only and safe to export, so other realms can call `Token.BalanceOf(...)` or `Token.GetName()` across the realm boundary. The `PrivateLedger` handle can move anyone's balance, so it stays unexported: gno's export rules become the access control, with no permission check to get wrong. Exporting the ledger by accident is a total loss of the token. Keep it lowercase and expose deliberate wrappers instead. `init` creates "Foo Token" (`FOO`, 4 decimals) and mints 100000000 units to a test address. `MyBalance()` shows a read scoped to the caller. Previous: [`wikicoin`](../wikicoin). Next: [`vault`](../vault) locks tokens up. --- 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. **On mainnet:** [![deployment status](https://gnoscope.com/_badges/shield/status/r/moul/demo/grc20/v0?network=mainnet)](https://gnoscope.com/realm/r/moul/demo/grc20/v0) [![transactions](https://gnoscope.com/_badges/shield/txs/r/moul/demo/grc20/v0?network=mainnet)](https://gnoscope.com/realm/r/moul/demo/grc20/v0) [![unique callers](https://gnoscope.com/_badges/shield/users/r/moul/demo/grc20/v0?network=mainnet)](https://gnoscope.com/realm/r/moul/demo/grc20/v0) [![deployed revision](https://gnoscope.com/_badges/shield/version/r/moul/demo/grc20/v0?network=mainnet)](https://gnoscope.com/realm/r/moul/demo/grc20/v0) **Dependency graph:** ![gno.land/r/moul/demo/grc20/v0 dependency graph](https://raw.githubusercontent.com/moul/gno-contracts/main/_assets/gno.land/r/moul/demo/grc20/v0/deps.png) > ⚠️ **Disclaimer:** provided as-is, without warranty; not security-audited. Full disclaimer: [DISCLAIMER](https://github.com/moul/gno-contracts/blob/main/DISCLAIMER.md).