TinyExplorer Every Grin block, one link away.

Grin Wallet Address Checker

A Slatepack address is a 32-byte public key wearing a checksum. Paste one to see whether it survived the copy intact, which network it belongs to, and the Tor address the same key derives to — all worked out in this page, with nothing sent anywhere.

This does not tell you whether the wallet is online. Pasting an address makes no connection at all — not to that wallet, not to Tor, not to any server. An address can be perfectly valid while the wallet behind it has been offline for a year. Where this server offers the optional Tor liveness check, it runs only when you press its button, and it says so before it does.
Slatepack address
Checked locally in your browser
What this tells you — and what it does not
  • The checksum is the point. bech32 carries six characters of error detection, so an address that lost its tail to a truncated copy-paste, or gained a mis-typed character, fails here rather than on a payment. That is the failure this tool actually catches — a wrong-but-valid address is not something any checker can spot, because it belongs to someone.
  • Mainnet vs testnet comes from the prefix, and only the prefix. grin1… is mainnet, tgrin1… is testnet. Nothing else in the Grin transaction format records the network — a slate itself carries no network field at all — so the address prefix is the single signal that exists.
  • The address check does not say the wallet is listening. The .onion shown is arithmetic on the address, not evidence that anything answers there. If this server offers the Tor liveness check, that is a separate, deliberate step and its answer is reported separately — including a third outcome, we could not check, which is about this server and not about your wallet. A checker that collapsed that into "offline" would be blaming you for its own outage.
  • It holds no keys and never will. A public key is public: deriving an onion from it reveals nothing the address did not already reveal. This page cannot sign, send, or spend.
Where the .onion comes from
  • The address is the key. Strip the bech32 wrapper off a Slatepack address and what is left is the wallet's 32-byte ed25519 public key.
  • A v3 onion is that same key, re-wrapped. Tor builds it as base32(pubkey ‖ checksum ‖ 0x03), where the checksum is the first two bytes of SHA3-256(".onion checksum" ‖ pubkey ‖ 0x03). So a Grin wallet's Tor address is not a separate secret to be handed out — it follows from the address you already have.
  • Which is why this works offline. Both directions are pure arithmetic. The derivation here matches the one this toolkit's mining pool uses to reach miners over Tor.
  • Grin's wallet publishes on virtual port 80, not 3415 — the hidden service maps port 80 to the wallet's local listener. Worth knowing if you ever dial one by hand.