Docs · 01 / 8

Introduction

What Sats-20 is, the mental model, and how the pieces fit together.

What is Sats-20

Sats-20 is a smart-contract protocol on Bitcoin. Programs, small JSON smart contracts, are deployed on Bitcoin. Users call them with actions, which are ordinary Bitcoin transactions. An indexer reads every block, verifies actions, runs them in a deterministic VM and keeps the resulting state.

Bitcoin signatures prove who sent an action and which program it targets, so no extra trust is needed for authorship. The protocol tag is sats-20.

Programmable

Programs declare their own storage and methods instead of being limited to a fixed token template.

Bitcoin-native auth

Bitcoin signatures prove the sender and the target program. No extra trust for authorship.

Deterministic

A pure, bounded VM: the same chain always produces the same state.

Unlocking Bitcoin DeFi

On Ethereum, DeFi is possible because contracts hold their own state and run custom logic when called. Sats-20 brings that model to Bitcoin: a program defines storage and write methods, and every action is a signed Bitcoin transaction that calls one of them.

Sats-20 vs BRC-20

BRC-20 is the widely used inscription-based token standard on Bitcoin. Both rely on an indexer to interpret on-chain data; they differ in what that data can express.

BRC-20Sats-20
ModelA fixed set of JSON operations (deploy, mint, transfer) carried in ordinals inscriptions.General programs: JSON contracts with their own storage and methods.
LogicToken rules are fixed by the standard; no custom logic per token.Per-program logic: require checks, arithmetic, branches and ordered writes.
TransfersTwo steps: inscribe a transfer, then send that inscription.One action transaction that calls the program's transfer method.
AuthorshipOwnership follows the inscription's UTXO.Signatures through a leaf bound to the program's cmr; the sender is $tx.inputs[0].address.
Payments in rulesNot part of the standard.Programs can require payments to specific outputs, such as a mint price.
Beyond tokensToken balances only.Anything expressible within the program limits.
ExecutionIndexer applies the fixed operations.Indexer runs a deterministic, bounded VM; invalid actions change nothing.

Mental model

Overview diagram

Deploy

commit + reveal transactions publish a program (JSON)

Actions

ordinary Bitcoin transactions that call a program method
every block

Indexer

verifies signatures, runs the deterministic VM

State

storage per program, derived only from valid actions
Programs live on Bitcoin; the indexer derives state from the chain.

Where to next