Address types
Bitcoin taproot addresses
Every Spark wallet has a standard Bitcoin taproot address (bc1p... on mainnet) for L1 deposits. This is the same address format used by any Bitcoin wallet. Your users can receive Bitcoin from Coinbase, a hardware wallet, or any on-chain source.
On test networks you’ll see different prefixes: tb1p... (testnet/signet) and bcrt1p... (regtest/local).
Lightning invoices
Spark wallets can create and pay Lightning invoices without running a node or managing channels. Some apps only expose Lightning. Users never see a Spark address or know Spark exists.Spark addresses
Spark addresses are Bech32m-encoded identifiers that map to a wallet’s identity public key. Think of them as user IDs. They identify a wallet on the Spark network. Transfers between Spark addresses are instant and free.What to expose
Spark is modular. Pick the addressing that fits your use case:| Use case | What users see | What Spark does behind the scenes |
|---|---|---|
| Bitcoin wallet | Taproot address (bc1p... / tb1p... / bcrt1p...) | L1 deposits, Spark balance, L1 withdrawals |
| Payments app | Lightning invoices | Spark handles routing, no node needed |
| Exchange / fintech | Nothing (internal accounts) | Spark addresses for free internal transfers |
| P2P transfers | Spark addresses or usernames | Instant, free Spark-to-Spark settlement |
Spark address format
For developers working directly with Spark addresses, here’s the format:Network prefixes
| Network | Prefix | Availability |
|---|---|---|
| Mainnet | spark | Available |
| Regtest | sparkrt | Available |
| Testnet | sparkt | Coming soon |
| Signet | sparks | Coming soon |
| Local | sparkl | Available |
Key facts
- Derived from your wallet’s network and identity public key
- Same wallet always produces the same Spark address
- Network-specific. A mainnet wallet and regtest wallet will have different addresses