JavaScript Smart Contracts on Bitcoin.
A Turing-complete metaprotocol for UTXO-based blockchains.
<html>
<head>
<script type="module">
import { Computer, Contract }
from 'https://unpkg.com/@bitcoin-computer/lib/dist/bc-lib.browser.min.mjs'
// A smart contract
class Counter extends Contract {
constructor() { super({ n: 0 }) }
inc() { this.n += 1 }
}
// Create and fund a wallet on testnet
const computer = new Computer()
await computer.faucet(1e5)
// Create and update an on-chain object
const counter = await computer.new(Counter);
document.getElementById("count").innerHTML = counter.n;
await counter.inc(); // Update
document.getElementById("count").innerHTML = counter.n;
</script>
</head>
<body>
<span style="font-size:200px" id="count">*</span>
</body>
</html>
Save this as a file and open it in a browser. That is a smart contract running on testnet.
Full walkthroughTry It in the Playground.
The Counter from the code above becomes an object on testnet. Calling inc() changes its value.
The editor works best on a bigger screen. Tap the picture to open the playground.
Sign In
Click Sign in, then Log In to create an in-browser wallet.
Fund the Wallet
The wallet starts empty. Click on Wallet, then on Fund from faucet to add free testnet coins.
Create the Counter, Then Update It
Scroll down and click Create object. Open the object, and call inc() with Call method.
Five Things Already Running on It.
All open source. Clone any of them and ship your own.

An Order-Book Exchange on Bitcoin
Ethereum exchanges use automated market makers, not because they trade better but because a real order book needs more compute than the chain can afford. On Bitcoin Computer the order book runs as a smart contract. That makes order books, the best trading algorithm there is, available to decentralized exchanges for the first time, with high capital efficiency.

Chess for Money
Two players put coins down. The winner takes them at the end of the game. Checking whether a chess position is winning takes more compute than an entire Ethereum block allows. On Bitcoin Computer it is a 1ms computation on the user's device.

A Bitcoin-Only NFT Site
Mint NFTs and store the metadata or the artwork itself on-chain. Clone the repo, add your branding, and launch your own trading site.

A Block Explorer You Can Write To
Browse smart objects on Bitcoin, create new ones, and update any object you own by calling a method on it.

A Non-Custodial Wallet for Coins and Assets
Holds your money and your on-chain assets across Bitcoin, Litecoin, Dogecoin, Bitcoin Cash and Pepecoin. Wallet developers can add the same support to their own product.
No Bridge.No New Chain.No New Language.
No Middlemen That Hold Your Coins
Most ways to run smart contracts on Bitcoin use a separate chain joined to Bitcoin by a bridge. Your coins typically move to an address that middlemen control. Bitcoin Computer runs directly on Bitcoin and Bitcoin-like chains. The coin that carries your object stays under your key, and its code and every call made to it are written into ordinary transactions. There is no bridge, no custodian, and nobody who can switch it off.
Fees Stay Flat No Matter How Much the Contract Computes
Only the people who use a contract run its code, not every validator on the network. The fee pays for the bytes a transaction takes up, not for the work inside it, so a call that runs a million steps costs the same as a call that runs one. On an account-model chain every validator would run all million steps and charge for each.
| Call | Steps | Fee | Transaction |
|---|---|---|---|
| inc() | 1 | 4,122 sats | f864a813…e878 |
| big() | 1,000,000 | 4,122 sats | 21b2bfcf…2ad3 |
Both transactions are 626 bytes. The second one took the counter from 1 to 1,000,001. See the object.
Your Data Is as Hard to Change as Your Coins
A smart object is carried by a coin, an unspent transaction output with a small amount in it. Updating the object means spending that output and creating a new one for the next version, which takes the owner's private key. So changing someone else's data is exactly as hard as stealing their Bitcoin, and miners enforce it.
Every Version Is Kept, Signed and Timestamped
| Version | n | Confirmed | Transaction |
|---|---|---|---|
| 1 | 0 | 17 Sep 2026 | 4d4fcd51…c1c1 |
| 2 | 1 | 17 Sep 2026 | cc79fb09…6bb3 |
| 3 | 2 | 17 Sep 2026 | f1e64b1d…385c |
| 4 | 3 | 17 Sep 2026 | c5892dd4…2528 |
All four were confirmed at 05:44 UTC in block 657 of the test network. See the object in the explorer.
Every update is a new transaction, and the old ones stay on the chain, signed and timestamped. The table above is a real Counter on the test network: four revisions, each one a transaction you can open in the explorer.
Your Normal Tools
Your IDE, your package manager, your linter and your test runner all work as they do for any web project.
Browser and Node.js
Contracts run in modern JavaScript engines, so you get their speed and their security work for free.
Built-In Encryption
Keep user data private with encryption that is part of the library, not something you bolt on.
On-Chain or Off-Chain Storage
Put data where it belongs. Games, DeFi and digital assets each need a different mix.
Compatible with Runes and Ordinals
Fungible and non-fungible tokens work alongside the protocols people already use.
GDPR and CCPA
Designed from the start so that meeting privacy law is not a retrofit.
What People Build with It.
Games
Monetize player-to-player payments, tournaments, levels, items and achievements without ever holding player funds.
Runes and Ordinals Apps
Build fungible and non-fungible token applications that stay compatible with the protocols people already trade on.
DeFi
Exchanges, lending platforms and stablecoins, built on real order books instead of automated market makers.
Shared Data Between Organizations
Keep records synchronized across companies with a signed history of every change, and skip the manual reconciliation.
Need a Team to Build It?
MetaRune Labs is the official development partner. They have shipped several applications on Bitcoin Computer and know the platform well. Tell us what you want to build and we will make the introduction.
Where the Project Lives
- GitHub MonorepoLibrary, apps and templates
- DocumentationQuickstart, API and guides
- Node.js TemplateStart a backend project
- Vite TemplateStart a browser app
- X@BTC_Computer
- TelegramAsk questions, get answers

