Reference input.

A UTxO the transaction can read but not spend. Used to look at on-chain data (or a script) without consuming it.

Think of it as

Looking at the price tag on someone else's box without taking the box. Lots of people can look at the same tag at the same time.

In depth

Added in Plutus V2 (CIP-31), reference inputs let a transaction observe the datum, value, or script of another UTxO without consuming it. The referenced UTxO stays available for other transactions to spend in parallel. Crucial for oracles (many txs want to read the same price feed without fighting over it) and for reference scripts.

Example

Multiple DEX trades reference the same oracle UTxO holding the current ada/USD price in its inline datum, without contending for it.

Next on this path

  1. Concurrency Multiple transactions making progress at the same time. On eUTxO, possible whenever the transactions don't touch the same UTxO.
  2. Contention When multiple parties want to spend the same UTxO, only one can win per pool-state transition. The rest must wait for the new UTxO.