<!--
{
  "availability" : [

  ],
  "documentType" : "symbol",
  "framework" : "BitcoinKernel",
  "identifier" : "/documentation/BitcoinKernel/TransactionInput",
  "metadataVersion" : "0.1.0",
  "role" : "Class",
  "symbol" : {
    "kind" : "Class",
    "modules" : [
      "BitcoinKernel"
    ],
    "preciseIdentifier" : "s:13BitcoinKernel16TransactionInputC"
  },
  "title" : "TransactionInput"
}
-->

# TransactionInput

A transaction input — a reference to a previous output
([`TransactionOutPoint`](/documentation/BitcoinKernel/TransactionOutPoint)) plus the scriptSig and witness data that
unlock it.

```
final class TransactionInput
```

## Overview

Inputs are obtained from a [`Transaction`](/documentation/BitcoinKernel/Transaction) via
[`input(at:)`](/documentation/BitcoinKernel/Transaction/input(at:)); there is no public `create` initializer
because inputs are only meaningful in the context of a signed
transaction.

Wraps the opaque `btck_TransactionInput` type; `deinit` calls
`btck_transaction_input_destroy` when the last Swift reference drops.