Bitcoin, Ethereum, Solana and 100 More: How Each Network Shows the Public Key

Open a Bitcoin wallet app such as Xverse, and it shows five addresses: payment, Ordinals, Stacks, Starknet and Spark. All five live in one app.

Bunker does not give them one result. Three of the five hide their public key until they sign. Two show it from the first day, and a new address of the same type does not change that.

The reason is simple. Each network decides how its addresses relate to the public key. Bunker knows more than 100 networks, and it applies the rule of each one.

This article is a tour of those rules, family by family. Every example is a real scan with the Bunker command-line tool, version 1.2.1. Every explanation in quotes is the exact text that Bunker printed.


How to read this tour

Bunker calls the public key the lock. Each network gets one of two main lock rules:

Lock ruleMeaningWhat a new address does
HiddenThe key is hidden until the address sends or signs.It hides the key again.
VisibleThe key is visible from day one.Nothing. The fix must come from the network.

A few networks need special models, such as Zcash shielded pools and permissioned networks. Article 9 of this series covers them.

The example addresses come from published standards, developer accounts and public explorer pages. Some formats have no public example. For those, I built sample addresses with the project’s own encoders, the same way its tests do. No address in this article belongs to a private person.

One wallet, five results

Here is the Xverse case as a real scan. The payment, Ordinals and Stacks addresses are public example addresses. The Starknet and Spark addresses are samples.

LabelAddress typeLock ruleCard before your answer
PaymentNested SegWit or script (3...)HiddenCheck needed
OrdinalsTaproot (bc1p)VisibleLock visible
StacksStacks account (SP...)HiddenCheck needed
StarknetStarknet account (0x)HiddenCheck needed
SparkSpark address (spark1...)VisibleLock visible

The three hidden addresses get a question: has the address ever sent or signed? Your answer decides their final result. The two visible addresses need no question, because their key is already public.

Bitcoin and its layers

Bitcoin has several address types, and they follow different rules. Most of them hide the key until they spend. Taproot and Silent Payments are the exceptions.

TypeExample sourceRuleExplanation from Bunker
Legacy (1...)Bitcoin genesis block addressHiddenOnly a hash of the key is on chain until this address spends.
Nested SegWit or script (3...)Bitcoin wiki P2SH exampleHiddenOnly a hash is on chain. The key appears the first time this address spends.
Native SegWit (bc1q)BIP-173 test vectorHiddenOnly a hash of the key is on chain until this address spends.
SegWit script, multisig (bc1q, long)BIP-173 test vector (P2WSH)HiddenThe signer keys appear on chain the first time this address spends.
Taproot (bc1p)BIP-86 test vectorVisibleTaproot puts the public key in the address. Ordinals and Runes use this type.
Silent Payment (sp1q)BIP-352 test vectorVisibleA Silent Payment address publishes its scan and spend public keys, so senders can pay it in private.
BIP-360 (bc1z)Sample (future type)Hash-protectedA BIP-360 output shows no curve key. You can use it only after the upgrade activates.

The Taproot row explains the Ordinals result above. A new Taproot address shows its key too, so a new address does not help. Bunker gives this advice for a Taproot address:

From the Bunker plan, for Taproot:

Taproot has no hidden option yet. Keep inscriptions here. Move plain coins to a new SegWit address. Be ready to move to BIP-360 outputs when they activate.

BIP-360 is the real fix for this case. It is a proposed address type that shows no curve key. Today it is a draft, and it runs on test networks only.

Layers on top of Bitcoin

Bitcoin layers add their own formats. Several of them put keys inside the address or the invoice:

LayerFormatRuleExplanation from Bunker
Lightning invoicelnbc... (BOLT 11 test vector)VisibleAn invoice contains the public key of the node that receives the payment.
Lightning node ID03..., 66 hex charactersVisibleThis is a public key. The Lightning network publishes node IDs to all users.
Liquid confidentiallq1q... (Elements reference library)HiddenOnly a hash of the key is on chain until this address spends. The blinding key inside only hides amounts. It does not control funds.
Liquid confidential Taprootlq1p... (Elements reference library)VisibleTaproot puts the public key in the address. The blinding key inside only hides amounts. It does not control funds.
StacksSP... (Stacks burn address)HiddenThe address is a hash of the key. The key stays hidden until the account sends. Stacks keys use the same curve as Bitcoin.
Sparkspark1... (sample)VisibleA Spark address contains the identity public key of the wallet, so the lock is visible from day one.
Arkark1... (sample)VisibleAn Ark address contains public keys, including the key of the owner.

The Liquid rows show why exact rules matter. A Liquid confidential address carries a second key, called the blinding key. That key only hides amounts. Bunker rates the address by the key that controls the funds.

For Lightning, the advice follows the rule: “Lightning keys are public by design. Keep only spending balances in channels. Keep savings on a new bc1q address.”

Ethereum and EVM networks: one key, many networks

EVM means Ethereum Virtual Machine. All EVM networks use the same address format: 0x and 40 hex characters. One private key gives the same address on every EVM network.

That fact has a direct effect on the lock. If you send once on any EVM network, the key is public on all of them. I scanned the EIP-55 test address:

"network": "EVM networks",
"networkId": "evm",
"type": "EVM account",
"model": "hidden-until-used",
"status": "check",
"explanation": "The key stays hidden until the first transaction or signed message from this address. One address covers every EVM network.",

The Bunker card lists the networks that share the key:

  • Ethereum, Base, Arbitrum, Optimism, Polygon, BNB Chain, Avalanche C-Chain, Sonic, Linea
  • zkSync, Scroll, Mantle, Gnosis, Celo, Cronos, Berachain, Monad, HyperEVM
  • Plasma, Plume, Rootstock, BOB, Core, VeChain, XDC, Ronin and Harmony

Three of them write the address in their own way. XDC uses the prefix xdc, Ronin uses ronin:, and Harmony uses one1. Bunker reads all three. For each one, it says: “The key and the rules are the same as any EVM account.”

Tokens follow the wallet. USDT, USDC, PAXG, XAUT, QNT, ONDO and tokenized funds such as BUIDL use the key of the wallet that holds them. So the move advice covers every network at once: “Move coins and tokens on every EVM network where this address holds them.”

Networks where the address is the key

On many newer networks, the address is the public key itself, or it contains it. For these networks, every address shows its key from day one:

NetworkExample sourceExplanation from Bunker
SolanaSampleA Solana address is the public key. A fresh address does not hide it.
PolkadotDevelopment account AliceA Substrate address contains the public key.
StellarStellar documentation exampleA Stellar address is the public key.
AlgorandAlgorand documentation exampleAn Algorand address is the public key. Rekeying changes the key without moving funds.
MultiversXMultiversX documentation exampleA MultiversX address is the public key.
MinaMina documentation exampleA Mina address is the public key.
Kaspa (standard)Kaspa documentation exampleA standard Kaspa address is the public key, so the lock is visible from day one.
NostrNIP-19 test vectorThis is a Nostr identity key on the same curve as Bitcoin. It holds no funds. Do not use it as a wallet key.

The Polkadot row covers a whole family. Polkadot, Kusama, Astar, Acala, Bifrost, Hydration and KILT use the same SS58 format. So do Bittensor, Polymesh and Centrifuge. A number inside the address, called the SS58 prefix, names the network. Bunker reads that number, so a Kusama address gets the label “Kusama account”, not “Polkadot”.

For these networks, the plan cannot tell you to move to a new address. Here is the Solana advice:

From the Bunker plan, for Solana:

A Solana address is its key, so a new address does not hide it. For long-term SOL, the hash-based Winternitz Vault is an option for advanced users. Follow the Solana post-quantum upgrade.

Networks that can change the key

Some networks let an account change its key without moving funds. Algorand calls it rekeying. Bunker marks eight networks with this ability: Aptos, Starknet, XRP Ledger, Stellar, Hedera, Algorand, NEAR and Flow.

On some of them, the ledger itself stores the keys where anyone can read them. Two examples from real scans:

NetworkExampleExplanation from Bunker
Flow0xc84eefd049dd1b67 (account page on flowscan.io)Flow stores account keys in public on chain. You can change the keys without moving funds.
Hedera0.0.123-vfmkw (sample)Hedera stores account keys in public on the ledger. You can change the keys without moving funds.

Key change gives these networks a path that needs no move of funds. When a network supports post-quantum keys, an account can switch to one in place. The plan says so for every visible account on these networks: “Change to a post-quantum key when the network supports one.”

Cosmos networks: 45 prefixes, one rule

All Cosmos SDK networks use one address format. The address is a Bech32 text with a network prefix and a hash of the key. Bunker knows 45 prefixes, from cosmos and osmo to thor and maya.

The rule is the same for all of them. I scanned five accounts from public explorer pages:

PrefixNetworkRule
cosmos1Cosmos HubHidden
secret1Secret NetworkHidden
neutron1NeutronHidden
thor1THORChainHidden
maya1Maya ProtocolHidden

The explanation is the same for each one: “The address is a hash of the key. The network stores the key on chain after the first transaction.”

Store of value and payment coins

Many payment coins use the same hash addresses as Bitcoin. Their newer address types can differ:

CoinTypeRule
LitecoinLegacy L..., script M..., Native SegWit ltc1qHidden
LitecoinTaproot ltc1pVisible
LitecoinMWEB ltcmweb1...Visible: scan and spend keys
DogecoinLegacy D...Hidden
Bitcoin CashCashAddr bitcoincash:q...Hidden
eCashCashAddr ecash:q...Hidden
DashX...Hidden
KaspaStandard kaspa:q...Visible: the address is the key
KaspaScript kaspa:p...Hidden

Kaspa shows why Bunker reads the type and not only the network. Two addresses with the same kaspa: prefix get different rules. The standard address is the key. The script address is a hash.

Monero: private, but the keys are in the address

Monero is a privacy network. Its privacy does not hide the public keys in the address. I scanned the old Monero project donation address:

"network": "Monero",
"networkId": "xmr",
"type": "Monero address",
"model": "visible",
"status": "exposed",
"explanation": "A Monero address contains its public spend key and view key. No Monero address type hides them.",

Monero subaddresses get the same result. Bunker shows no explorer link for Monero, because the network is private by design. The advice is to follow the Monero post-quantum research and move when an upgrade is available.

Institutions, payments and tokenized assets

Banks, payment firms and asset issuers use some of these networks. Their rules vary as much as anywhere else:

NetworkFormatRule
XRP Ledgerr...Hidden. The account can also change its key.
StellarG..., 56 charactersVisible. The account can change its key.
Hedera0.0.12345Visible. The account can change its key.
Algorand58 uppercase charactersVisible. Rekeying can change the key.
Polymesh (regulated securities)SS58Visible
Centrifuge (real-world assets)SS58Visible
TronT...Hidden
Canton Networkname::1220 and 64 hex charactersAsk your provider

QNT is a common question here. QNT is a token on Ethereum, so retail holders keep it on Ethereum addresses. Its result is the EVM result of the wallet that holds it.

Private bank networks such as Kinexys and Partior have no public addresses at all. No scanner can examine them. They need a review of the provider.

Inputs that are not wallets

People often paste things that look like addresses but hold no key of their own. Bunker recognizes them and does not rate them. Five real scans:

InputBunker saysExplanation from Bunker
example.ethName, not an addressThis tool does not look up names. Paste the address that the name points to.
[email protected]Lightning address or payment handleThis points to a payment server, not to a key. Examine the wallet behind it.
0x4a22...4675Token contract: QNT (Quant)This is the token contract, not a wallet. It has no key to protect. Paste your own address that holds this token.
11111111111111111111111111111111Program: Solana System ProgramThis is a program, not a wallet. It has no key to protect. Paste your own address.
tb1qw508...kxpjzsxTest network addressTest network coins have no value. Nothing to protect here.

The token contract row matters most. Many people copy the token contract instead of their own wallet address. Bunker keeps a short list of the most common contracts, so this frequent case gets a clear answer.

The whole test set in one scan

The project tests its rules with 57 real public addresses. Each one has a recorded source. I scanned all 57 in one run, with no answers:

ResultAddresses
Lock visible22
Check needed29
Lock hidden0
Not rated6
Total57

No address is “Lock hidden” in this run, and that is correct. A hash-type address needs your answer before it can be hidden. The 29 addresses wait for that answer. The 6 unrated inputs are token contracts, programs and Internet Computer identifiers that hold no key of their own.

What the tour shows

  1. The network does not decide the result alone. The address type does. Bitcoin, Litecoin, Liquid and Kaspa each have hidden and visible types.
  2. One key can cover many networks. On EVM networks, one transaction shows the key everywhere.
  3. On networks where the address is the key, a new address does not help. The fix must come from the network.
  4. Networks that can change keys have a path that does not need a move of funds.

Read the sources

In the next article, I open the engine. You will see the five steps that turn pasted text into a plan, and the code that runs each step.

Have a question or feedback about Bunker? Contact NosisTech.

Keep reading: Bunker by NosisTech

Previous article: The Sealed Box: When a Crypto Address Shows Its Public Key

Next article: From Pasted Text to a Plan: Inside the Five-Step Engine of Bunker

All articles: NosisTech Writing

This post is general information, not financial, legal or security advice. Bunker is an educational tool with no warranty. Examine each address on a block explorer, and send a small test amount before you move funds.

WEEKLY BUILD NOTES

One documented agent build in your inbox, every week

Real systems, real code, the errors left in. No spam, unsubscribe anytime.