⬡ chain://✕ exit
BSVKey logoBSVKey MAINNET no wallet loaded
Inference Paywall DTN AI in XRP Market Legal
BSVKey — Inscribe. Host. Register. Permanently on the BSV blockchain, 100% in your browser.

Inscribe data, host pages, and register names permanently on the BSV blockchain. 100% in your browser — your key never leaves this tab, and there's no server.

How it works: 1 Inscribe, 2 Publish a hosted page, 3 Claim a name.
⚠ You're on MAINNET — writes spend real BSV and are permanent & public. Switch to Testnet to practice for free, use a throwaway key, and only enter a real key on a page/host you trust.

1 · Network & wallet

Pick a network, then set up a wallet using either option below — a single key or a recovery phrase. You can switch between them anytime.

🚰 On Testnet? Get free practice coins at bsvfaucet.com.

Option A · Single key — one key = one fixed address. Simple.
Option B · Recovery phrase (HD wallet) — keep one phrase, generate unlimited fresh addresses for privacy.

★ Your wallet — assets & activity

A plain-English view of what this wallet owns, and what you've done this session. On-chain actions land in a block roughly every ~10 minutes — until then they won't appear in History (§5), so track pending ones here.

load a wallet, then “Show my assets”
🔁 Transfers: funds move between wallets via §4 Withdraw / send (an amount or Max) or §3 Send. Names can be handed to another wallet with Transfer a name in §10 (run from the current owner). A page stays at the address that published it — to move a site, transfer its name and re-publish from the new wallet.
No actions yet this session. Publish a page, claim a name, or inscribe data and it shows here with a countdown.

2 · Data to write required

The message or file to place on-chain. Type/paste text, or attach a file.

0 bytes

3 · Write it on-chain

You'll see the exact fee and get to confirm before anything is broadcast. A 1,000-sat service fee is included on mainnet writes to support this tool.

Leave blank to just inscribe the data. Fill in to also attach your message to a payment.

Only used if you entered a recipient above. Defaults to 1 sat.

Higher = confirms faster. Defaults to 1 (a safe minimum).

4 · Withdraw / send balance

Send an amount from this wallet to another address — or click Max to empty it entirely (minus fee). A specific amount returns the change to this wallet.

Enter an amount, or click Max to send the entire balance (minus fee).

Send as multiple coins (packets) — one transaction that hands over several separate coins at once, like passing someone a stack of bills instead of a single note. The receiving wallet then holds a handful of independent coins, so it can run actions back-to-back without waiting. Leave the destination blank to split your own wallet.

Total sent = coins × per-coin, plus a small miner fee. Any change returns to this wallet.

5 · Transaction history

Past transactions for the current address, pulled live from the chain. Each links to the explorer. Note: a new transaction can take ~10 minutes (one block) to appear here — track pending ones live in the ★ dashboard near the top.

6 · Fix a stuck transaction

If a tx sits unconfirmed too long, its fee is likely too low. Rebroadcast re-sends it; Bump (CPFP) pays a high fee on its change output to drag it into a block.

7 · Read & share a message

Paste any transaction ID to read its on-chain message as plain text — then copy a shareable link so others can find it.

8 · On-chain feed

A live view of what's being inscribed on the BSV chain — scan a time window, post your own message, reply, quote, like & bookmark. Posts, replies and quotes are real on-chain writes (they cost sats). Likes & bookmarks are saved only in this browser, not on-chain.

posts on-chain from your Section 1 wallet · costs a miner fee + a 1,000-sat service fee on mainnet · permanent & public
Scans confirmed blocks in your chosen window with up to 8 parallel engines, samples up to 2,000 transactions across 80 blocks, and decodes each OP_RETURN as text / hex / base64 / JSON / raw / inline image (buttons on each post); known protocols (B://, MAP, Bcat, AIP…) are labelled. Big scans take a few minutes — use Stop. Short windows may contain no blocks yet (BSV mines ~every 10 min). Go live polls the tip every 30s and drops new posts on top.

9 · Get BSV

Need BSV to write with? Swap USDC/USDT → BSV straight to your address below — no account needed. Always send to a BSV address — never a BTC address.

10 · Claim a name CHOST

Register a human name that points to your address in the on-chain registry (first-claim-wins). Then publish a page for it in §11, and it resolves as a shareable #site=name gateway link. A 20,000-sat domain fee applies on mainnet. Names: lowercase letters, numbers and hyphens.

💡 Claim first, then publish. Claim your name here, then in §11 Publish pick this name from the Site selector — from the same wallet. The name maps to your address and serves that page at #site=yourname. (A claimed name with no page yet shows a friendly setup placeholder to visitors.)
Transfer a name — hand a name you own to another wallet. Must be run from the current owner's wallet (§1); a 5,000-sat transfer fee applies on mainnet. Permanent & public.
Load a wallet (§1) to list the names you can transfer.
Bulk reserve names — grab many at once (one per line) as chained transactions from your key. Each pays the domain fee; availability isn't pre-checked, and a name already owned by someone else won't be won.

10b · Name Market BUY · SELL

Open the full marketplace → to browse every name for sale, search the registry and register free names. Buy and sell names for BSV. Every trade settles as one on-chain transaction: the buyer's payment, the seller's payout and the name hand-off happen together, or not at all. Nobody holds your coins or your name, and BSVKey never sees your key.

🔒 How it stays safe. Listing writes a small LIST record that locks the name to a 1-sat coin in your wallet, then you sign your half of the sale in advance. While listed, the name can only move by spending that coin, so it can't be sold twice. A buyer adds their payment and broadcasts. The seller receives the full price; the buyer pays the price + a 5,000-sat transfer fee + 2.5% market fee + miner fee. Listings last ~30 days; cancel or change the price any time.
Open this section or press Refresh to load names for sale.
Sell a name: from the wallet that owns it (§1). Listing costs only the miner fee; you're paid when it sells.
Load a wallet to see your listings.

11 · Publish a hosted page CHOST

Paste a full HTML page — written on-chain (prefix CHOSTv1) in one transaction, served from your address; re-publish anytime to update. A 5,000-sat publish fee applies on mainnet.

How hosting works: a name → an address → that address's page. Steps:
  1. Load your wallet in §1.
  2. Claim a name in §10 from that wallet.
  3. Publish your HTML here and pick that name in the Site selector below.
  4. Visit it (or share bsvkey.com/#site=yourname).
Give each on-chain action ~10 minutes to confirm before it resolves for others.
🏠 One wallet, many sites. The Site selector lists the names you own — pick which one this page is for. Choose “default page” to serve it for any of your names without their own page. If your HTML has a <meta name="bsvkey:site" content="…"> tag, the Site is auto-selected.
Load a wallet (§1) to list the names you can publish to.
0 bytes
Remove a published page — on-chain data is permanent and can't be erased, but you can publish a removal marker so BSVKey stops serving this page; visitors then get the setup placeholder. A 2,000-sat removal fee applies on mainnet. Or tick the box to replace it with your own page instead.

❓ Frequently asked questions

Everything you need to know about using BSVKey.

Is BSVKey custodial? Does my key ever leave my browser?
No. BSVKey runs 100% in your browser tab. Your private key and recovery phrase are never transmitted anywhere and no server stores them — there is no server. You have full control, and full responsibility: if you lose your key, no one can recover it for you.
What's the difference between Mainnet and Testnet?
Testnet is a free practice network using worthless test coins — use it to learn with zero risk. Mainnet spends real BSV and every write is permanent and public. Practice on Testnet first, and only enter a real key on a page/host you trust.
What are the fees?
On Mainnet: 1,000 sat per data write, 5,000 sat per published page, 20,000 sat per name claim (service fees), plus a small miner fee each time. Name Market sales: the buyer pays a 5,000-sat transfer fee + 2.5% of the price; listing is free apart from the miner fee. Every fee is shown in the confirmation dialog before you broadcast. Testnet is free.
How do I get BSV to use it?
See §9 Get BSV — swap USDC/USDT → BSV straight to your address (no account needed). Always send to a BSV address, never a BTC address.
Why doesn't my transaction show up in History right away?
History (§5) lists confirmed transactions, and a block is mined roughly every ~10 minutes. Until then your transaction sits in the mempool. Track pending actions live — with a countdown — in the ★ dashboard near the top. "Check balance" reads the mempool, so it updates immediately.
How do names, pages, and "Visit" connect? How do I point a name at my site?
A name → an address → a page at that address. To put a name on your site, claim the name (§10) and publish (§11) from the same wallet — in Publish, pick that name from the Site selector. Then Visit the name (or share bsvkey.com/#site=yourname) and it resolves to your page. Full steps are in §11.
Can one wallet host several different sites?
Yes. Claim each name in §10, then when publishing (§11) pick the name from the Site selector to bind that page to it — e.g. publish one page for shop and another for blog. Choose the default page option to set the wallet's fallback page, served for any of your names that don't have their own page. "Show my assets" lists every page you've published.
I published different pages for different names, but they all show the same page — why?
Because you published them to the default page instead of a specific name. The default is served for every name you own that has no page of its own — so re-publishing to default just replaces the one shared page for all of them. Fix: in §11, use the Site selector to pick the exact name the page is for before publishing — e.g. marsbase for the Mars page, moonbase for the Moon page. Then #site=marsbase and #site=moonbase each load their own page. (The selector only lists names you've claimed in §10 from this wallet — and if your HTML has a <meta name="bsvkey:site"> tag, the right Site is picked automatically.) Give it ~10 minutes to confirm; "Show my assets" will then list each page under its own site name.
How do I tag my HTML file with its name/domain so the Site is picked automatically?
Add one meta tag inside your page's <head> naming the site it belongs to. When you load that file in §11 Publish, BSVKey reads the tag and auto-selects the matching Site for you — no need to pick it by hand, and no risk of publishing to the wrong name. Put it right after the charset/viewport lines:
<!doctype html>
<html lang="en">
<head>
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width, initial-scale=1">
  <meta name="bsvkey:site" content="moonbase">   <!-- ← your claimed name -->
  <title>My Moon Base</title>
</head>
<body>
  … your page …
</body>
</html>
Set content to a name you've claimed in §10 from this wallet (lowercase letters, numbers, hyphens) — e.g. content="moonbase" makes the page resolve at bsvkey.com/#site=moonbase. If the tag names a name you don't own, BSVKey warns instead of publishing to the wrong place. Leave the tag out only if you want it to be your wallet's default page. Changing the tag later has no effect on already-published copies — re-publish to apply it.
Can I update a page after publishing it?
Yes. Re-publish from the same wallet with the same Site selected (or the default page) — that site always resolves to your latest version. Old versions stay on-chain, but the newest wins.
How big can a published page be? Is there a size limit?
A page is inscribed in a single transaction, so its size is bounded by what miners will relay — practically up to roughly 90–100 KB of HTML. But aim to keep pages under ~50 KB for the best experience: the blockchain data provider returns decoded scripts only up to ~50 KB, so BSVKey reads anything larger by re-fetching the full raw transaction — it still works, just slower, and a very large page sits closer to being rejected by miners at publish time. Pages under ~50 KB publish and load fastest and most reliably. To slim one down: minify the HTML/CSS/JS, drop unused code, and avoid embedding big images as data: URIs (keep images tiny or link them). If a publish fails outright, the page is almost certainly too large — trim it and try again.
Can I delete a published page?
On-chain data is permanent — nothing can erase the original inscription from the blockchain. But because BSVKey always serves the newest record for a page, you can effectively take one down. In §11, use Remove a published page: pick the page and click Remove, and BSVKey publishes a small "removal marker" that supersedes it — after ~1 block the page stops resolving and visitors get the friendly setup placeholder. Prefer to show your own message instead? Tick Replace with my own page and upload any HTML (or leave it blank to use a built-in "page removed" notice). Either way the old data remains on-chain forever; you're only changing what resolves now.
Are names global? If I claim a name, can anyone else take it?
Names live in a single shared on-chain registry, so they're global, not per-address, and first-claim-wins: whoever's claim is earliest owns the name, and BSVKey resolves that name to their address. So once you've claimed a name, later claims by others are ignored — you keep it. Two honest caveats: (1) uniqueness is a convention enforced by the resolver, not by the blockchain itself — anyone can still *write* a duplicate claim record, it just won't win; and (2) resolution currently scans a limited window of the registry, so it's a lightweight naming scheme rather than a fully-scalable global namespace (a dedicated indexer would remove that limit). Use Check availability before claiming, and remember failed/colliding claims still cost the fee (especially in bulk).
How does the Name Market work? Can a seller or BSVKey cheat me?
The seller lists a name by writing a LIST record that ties the name to a 1-sat coin, then signs their half of a sale transaction in advance with SIGHASH_ALL|ANYONECANPAY: that signature fixes every output (their payout, the market fee, the hand-off record) but lets any buyer add the payment input. The buyer's browser checks the seller's signature and the on-chain lock, adds the payment and broadcasts. One transaction does everything, so either the buyer gets the name and the seller gets paid, or nothing happens. While listed, the registry only accepts a hand-off that spends the lock coin, so a seller can't sell or transfer the name elsewhere at the same time. BSVKey's order book only stores the seller's half-signed offer; it never holds coins or keys. Buyers can't buy a listing within ~1 day of its expiry, and a listing becomes buyable once its LIST record confirms (one block, ~10 min).
Can I transfer a name or page to another wallet?
Funds: yes — use §4 Withdraw / send (enter an amount, or click Max to empty the wallet) or §3 Send. Names: yes — use Transfer a name in §10. Run it from the current owner's wallet; the registry records the hand-off and the resolver then points the name at the new owner's address (whose page it will serve). Pages: a page lives at the address that published it; to move a site, transfer its name to the new wallet and re-publish the page from that wallet.
I used a wallet and lost track of it — can I get back in?
Only if you saved it. If you clicked Save key to file or Save phrase to file (§1), load that file back. A recovery phrase re-derives all its addresses. A "Generate throwaway key" you never saved is gone — the tool never stores keys.
Is the code open? How do I know it's not tampered with?
Yes — it's a single inspectable file. In §13 you can download the source and verify integrity: the browser refuses to run vendor.js unless its hash matches (Subresource Integrity), and the code's SHA-256 is inscribed on-chain so you can confirm the page you're running is authentic.
Is anything I do private?
No. Everything on the blockchain is public and permanent — any data you inscribe, page you publish, or name you claim is visible forever. Never inscribe private keys, secrets, or anything you wouldn't post publicly.
A transaction failed with "txn-mempool-conflict" — what happened?
It happens when two actions fire back-to-back (e.g. claim a name, then immediately publish its page) and the second one tries to reuse a coin the first just spent while it's still unconfirmed. BSVKey now handles this two ways: it chains unconfirmed transactions onto each other, and if the network still rejects one as a conflict it automatically rebuilds from fresh coins and retries. If you ever still see the error, just wait ~10 minutes for the prior transaction to confirm and try again.
Why did my whole balance look "spent" after one small action? / How do I run two actions back-to-back?
Each action only spends enough coins to cover its tiny fee, and leaves the rest of your coins spendable — but there's one case it can't get around: if your wallet holds a single coin, any transaction must spend it (you can't split a coin without making a transaction). So after that action you'll temporarily have only unconfirmed change until it confirms (~10 min). The way to always have a coin free for a second action is to hold a few separate coins (UTXOs). Easiest way: use §4 → Send as multiple coins (packets) — leave the destination blank and it splits your own wallet into as many coins as you specify in one transaction (e.g. 5 coins of 10,000 sat). You can also use it to hand someone a whole stack of coins at once. After it confirms, a claim + publish back-to-back never competes for the same coin.

12 · Contact BSVKey

Questions, feedback, or a bug report? Send us a message.

13 · Monetize Your API

Use the open-source x402 paywall toolkit to charge for your API calls in BSV, or use our hosted service.

Open Source

Build your own paywall with the @bsvkey/x402-paywall toolkit. Zero dependencies, full control.

Hosted SaaS

Let us run it for you. Non-custodial x402 gateway, Stripe billing, dashboard, uptime. Get started with Starter ($29/mo, 1 endpoint, 100k calls).

14 · Legal · Risk · Privacy

BSVKey is open and inspectable — it's a single HTML file that runs entirely in your browser. to read or verify the code, or run it offline.

Verify integrity. The vendor.js library is locked with Subresource Integrity — your browser refuses to run it if it's been altered. You can also hash this page live and compare it to the copy inscribed on-chain.