Skip to content
buybitcoinsmart

Glossary / Transactions & fees

Outpoint

Definition
An outpoint is the 36-byte pointer that identifies exactly one transaction output, combining the 32-byte id of the transaction that created it with the 4-byte index of its position.

Bitcoin has no account numbers, so every spend must state precisely which coin it is spending. Written for humans the pointer looks like a transaction id, a colon, and a number, and it serves as the primary key of the entire unspent output database that every full node maintains. If two transactions ever name the same outpoint, only one of them can be valid, and that single rule is what prevents a coin being spent twice.

How it works

The outpoint sits at the front of every transaction input, and it is the first thing a node looks up when checking whether a spend is allowed.

On the wire it is two fields with no separator: 32 bytes of transaction hash, then a 4-byte index stored little-endian. The hash is written in internal byte order, which is the reverse of the order you see on a block explorer, so a raw transaction in hexadecimal appears to reference a transaction id spelled backwards. This trips up everyone who reads raw hex for the first time and is purely a display convention, not a difference in the data.

Indexes count from zero. The first output of a transaction is index 0, the second is index 1, and a coin described as ending in :2 is the third output. The field is 4 bytes, so the theoretical ceiling is 4,294,967,295, which no real transaction approaches.

One value is reserved. A coinbase transaction, the one paying the miner, has a single input whose outpoint is 32 zero bytes with the index set to all ones, 0xffffffff. That combination points at nothing and signals that this input creates value rather than moving it.

Uniqueness had to be enforced by rule rather than assumed. Two coinbase transactions with identical contents would produce identical ids and therefore duplicate outpoints, which happened twice in bitcoin's early history. BIP30 forbade the pattern directly, and BIP34 then required every coinbase to include the block height in its input script, guaranteeing different contents. BIP34 became enforced at block 227,931 in March 2013.

Where you see it

The outpoint is the identifier you handle whenever you speak precisely about a specific coin rather than a balance.

Wallet coin control screens list holdings as transaction id and index. Bitcoin Core's RPC interface takes the two fields as a pair: listunspent returns them, gettxout looks one up, and createrawtransaction expects them. Lightning uses the funding transaction's outpoint as a channel's permanent name, which is why channel identifiers in node software look like a hash followed by a small number.

It is also the right thing to quote in a dispute. An address may have been paid dozens of times and a transaction may have dozens of outputs, but an outpoint names one payment of one amount at one moment, with no ambiguity to argue about. If an exchange asks you to prove a specific deposit, this is the level of precision that ends the conversation.

Outpoint vs output index

The output index is one field inside an outpoint, not a shorter name for it. On its own an index carries no information at all, because tens of millions of transactions have an output at index 0 and the number says nothing about which one is meant. The confusion comes from block explorer interfaces, which label the index "vout" and display it prominently, so people start calling the whole pointer the vout. Keep them separate when you write things down: the transaction id says which transaction, and the index says which output within it, and only both together identify a coin.

Not to be confused with

Frequently asked questions

Why is the transaction id in a raw transaction written backwards?

Because the outpoint stores the hash in internal byte order, while explorers and wallets display it reversed. Both refer to the same 32 bytes, and every tool that handles raw transactions performs the flip for you.

What does a coin written as a hash followed by a colon and a number mean?

It is an outpoint. The hash identifies the transaction that created the coin and the number is the position of that coin in the transaction's list of outputs, counted from zero. Together they name one specific spendable coin.

Related terms

More in Transactions & fees