Protocol & Mining
What a Bitcoin-Native Application Means
The distinction in one sentence
A bitcoin-native application controls bitcoin through the same mechanism any wallet does: it holds or co-controls keys, it constructs transactions, and it produces signatures that satisfy the script conditions on the outputs it is spending. The network validates those signatures and confirms the transaction. Nothing between the application and the ledger has to be trusted, because the ledger is the arbiter.
A wrapped or custodial application does not do that. It records a claim — an entry in a database, a token on another chain, a balance in an account — and the claim is redeemable for bitcoin according to the operator's rules. The bitcoin itself sits somewhere else, under someone else's control. Spending the claim is a request to the operator, not a transaction the Bitcoin network validates, and the operator's solvency, honesty and continued operation are all part of the security model whether the user thinks about them or not.
The distinction is not about whether an application is good or bad. Custodial designs can be appropriate, and wrapped assets can serve purposes that native bitcoin cannot. The point is that the two designs make different promises, and a reader should be able to tell which one they are looking at. The rest of this page sets out the properties that separate them.
Protocol-level signing
The defining property of a native application is that it can produce a valid signature for a Bitcoin transaction. That means it has access to key material, or to a share of key material in a threshold scheme, and it can construct a transaction whose inputs are satisfied by that material. The signature is checked by every node against the script conditions on the outputs being spent, and the transaction is confirmed if the checks pass.
The script conditions are where the interesting design choices live. A single-key output requires one signature. A multisignature output requires several, which lets an application share control between a user and a service without either party being able to spend alone. A taproot output can commit to a script tree and be spent either by a key path or by revealing a script, which allows an application to offer a cooperative path and a fallback path in the same output. The BIPs that define these constructions are the reference for what an application can require before a spend is valid.
The practical consequence is that a native application's authority is bounded by the script it is spending. If the application does not hold enough key material to satisfy the script, it cannot move the coins, no matter what its own database says. That is a strong property, and it is the one that custodial designs cannot offer, because in a custodial design the operator holds the keys and the user holds a claim.
Custody, claims and what changes
In a custodial design, the operator controls the bitcoin and the user holds a claim. The claim is enforced by the operator's rules and by whatever legal or contractual framework surrounds them. When the user wants to move value, they instruct the operator, and the operator decides whether and how to honour the instruction. The Bitcoin network is involved only when the operator moves coins between its own addresses, which may happen rarely or never.
This changes the failure modes. A native application can fail in ways that are visible on-chain: a transaction is or is not confirmed, a signature is or is not valid. A custodial application can fail in ways that are invisible until they are not: the operator can freeze withdrawals, misstate reserves, lose keys or become insolvent, and none of those failures is detectable from the Bitcoin ledger alone. The user's recourse is to the operator and to whatever jurisdiction the operator sits in, not to the protocol.
Wrapped bitcoin on another chain is a variant of the same structure. The wrapper is a token whose issuer claims to hold an equivalent amount of bitcoin, and the token's value depends on that claim being true. The bitcoin is held by a custodian, and the token's transfer rules are the other chain's rules. The design can be useful for moving value into an environment that cannot hold native bitcoin, but it does not make the bitcoin native to that environment, and the custody assumption travels with the token.
How to tell which one you are looking at
The question to ask is who can move the coins without anyone's permission. If the answer is "the holder of a key that satisfies the output's script", the application is native. If the answer is "the operator, according to its own rules", the application is custodial, however the user interface describes it. The presence of a withdrawal button is not evidence either way; what matters is whether the withdrawal is a signed Bitcoin transaction or a request to a service.
A second question is what the user actually holds. A native application's user holds key material, or a share of it, and can in principle spend without the application's cooperation if the script allows it. A custodial application's user holds an account balance, and the account balance is a record in someone else's system. The two feel similar in a user interface and are entirely different in what they guarantee.
A third question is what happens if the application disappears. A native application's outputs remain on-chain and remain spendable by whoever holds the keys, using any compatible wallet. A custodial application's users depend on the operator's continued operation or on a legal process to recover anything. That difference is the clearest practical expression of the distinction, and it is the one worth carrying away. The same reasoning applies to the unspent output model that underlies every native spend.
Sources and references
The description of transaction signing, script conditions and the custody distinction is taken from the BIPs and developer documentation that define Bitcoin's transaction and script rules. No claim about specific products, their reserves or their behaviour is made here.
- Transaction structure, inputs and signature checking. Bitcoin, Bitcoin Developer Reference — Transactions: defines how inputs reference previous outputs and how a transaction's signatures are validated against the script conditions on those outputs.
- Multisignature and shared-control outputs. Bitcoin, BIP 11: M-of-N Standard Transactions: defines the multisignature output type that lets control be shared between parties so that no single party can spend alone.
- Taproot, script trees and the key path. Bitcoin, BIP 341: Taproot — Segregated Witness v1: defines the output type that allows a cooperative key-path spend and a script-path fallback to be committed in the same output.
- The unspent output model that native spends operate on. Bitcoin, Bitcoin Developer Guide — Transactions: explains that outputs are spent whole and recreated, and that ownership is the ability to satisfy an output's script.
Related reading
- Protocol, Transactions & MiningThe supply schedule, transaction mechanics and mining economics behind the price.
- Proof of WorkThe hash puzzle, the target and nonce, and why accumulated work secures the chain.
- Difficulty AdjustmentThe 2,016-block retarget, its caps, and the ten-minute target it defends.
- HashrateWhat hashrate measures, why it is estimated, and how it differs from difficulty.
- Mining PoolsPooled hash rate, share accounting, payout schemes and centralisation.
- Miner RevenueThe block subsidy plus fees, and how the mix changes across subsidy epochs.