How CounterTools Keeps Your Wallet Safe
Your private keys never leave your device. Here's how we verify wallet ownership without compromising your security.
The Short Version
Your private key and seed phrase NEVER leave your browser or wallet. CounterTools uses Bitcoin's built-in message signing to verify you own an address. It's the same technology that secures billions of dollars in Bitcoin transactions.
What Happens When You Connect Your Wallet
We generate a random challenge
CounterTools creates a unique, one-time message naming your address, a timestamp, and a random nonceโe.g. โSign this message to verify ownership of your Counterparty address: / Address: 1ABCโฆ / Timestamp: โฆ / Nonce: โฆโ
You sign it in YOUR wallet
Your wallet (RarePepeWallet, Horizon, XCP Wallet, FreeWallet, etc.) signs the message using your private key. The key stays inside your wallet the entire timeโit never gets sent anywhere.
You send us only the signature
The signature is a string of characters that proves you signed the message. It contains no information about your private key.
We verify mathematically
Using Bitcoin cryptography, we can verify the signature matches your addressโwithout ever needing your private key. If it matches, you're authenticated!
Visual Explanation
YOUR DEVICE (Browser/Wallet) COUNTERTOOLS SERVER
=========================== ==================
[Private Key]
|
| 1. Request challenge
|----------------------------------> Generate random challenge
| |
| 2. Receive challenge |
|<---------------------------------- "Sign this: abc123..."
|
[Sign with Private Key]
|
| 3. Send ONLY signature
|---------------------------------->
| Verify signature
| matches address
| (pure math, no key needed)
| 4. Success! |
|<---------------------------------- "Welcome! Here's your session"
WHAT NEVER LEAVES YOUR DEVICE:
- Private Key
- Seed Phrase (12/24 words)
- Wallet Password
Why This is Mathematically Secure
Bitcoin uses something called asymmetric cryptography. Here's the important part:
- Your private key can create signatures that prove ownership
- Your public address can verify those signatures without knowing the private key
- It's mathematically impossible to figure out the private key from the signature
This is the same technology that secures every Bitcoin transaction on the blockchain. When you send Bitcoin, you're essentially signing a message that says โI authorize sending X BTC to address Y.โ The network verifies your signature without ever knowing your private key.
What CounterTools Never Does
- โWe NEVER ask for your private key
- โWe NEVER ask for your seed phrase (12/24 words)
- โWe NEVER store any secret that could access your wallet
- โWe NEVER transmit your private key over the internet
If any website ever asks you to type in your private key or seed phrase, it's a scam. Report it immediately.
Wallet Compatibility
CounterTools verifies both BIP-137 (legacy) and BIP-322 (native segwit and taproot) message signatures, so modern Counterparty wallets and address types all work. Not sure which wallet to pick? See our wallet guide.
Frequently Asked Questions
Can CounterTools move my assets?
No. Signing a message is completely different from signing a transaction. The signature only proves you own the addressโit cannot authorize any movement of funds.
What if someone intercepts my signature?
Each challenge is unique and expires in 15 minutes. Even if someone captured your signature, they couldn't reuse it because the challenge it was signed for has expired.
Is this the same as โSign In With Ethereumโ?
Yes, it's the same concept! Both use cryptographic signatures to prove wallet ownership. We use Bitcoin's message signing standard, which Counterparty assets are built on.
Why not just use a password?
Your Bitcoin address IS your identity in the Counterparty ecosystem. Using wallet signatures means you don't need to create another password, and we can directly verify you're the same person who holds specific assets.
Technical Details (for developers)
CounterTools verifies wallet ownership against two Bitcoin message-signing standards, so legacy and modern address types both work:
- Libraries:
bitcoinjs-message(BIP-137, legacy P2PKH) andbip322-js(BIP-322, native segwit and taproot). A signature is checked against BIP-137 first, then BIP-322. - Challenge format: a multi-line messageโ
Sign this message to verify ownership of your Counterparty address: Address: [ADDRESS] Timestamp: [ISO-8601] Nonce: [NONCE] - TTL: 15 minutes
- Signature format: BIP-137 signatures are Base64-encoded and start with H, I, J, or K; BIP-322 signatures are also Base64 but use the Seaport-style witness encoding (variable prefix).
Verification uses ECDSA/Schnorr on the secp256k1 curveโthe same cryptography securing Bitcoin's $1T+ market cap.
Questions about security? Contact us at security@countertools.io