core / NamedByHash

# NamedByHash

`interface NamedByHash`

Implemented by anything that can be named by a secure hash value (e.g. transactions, attachments).

### Properties

id | `abstract val id: SecureHash`

### Inheritors

Attachment | `interface Attachment : NamedByHash` An attachment is a ZIP (or an optionally signed JAR) that contains one or more files. Attachments are meant to contain public static data which can be referenced from transactions and utilised from contracts. Good examples of how attachments are meant to be used include:
LedgerTransaction | `data class LedgerTransaction : NamedByHash` A LedgerTransaction wraps the data needed to calculate one or more successor states from a set of input states. It is the first step after extraction from a WireTransaction. The signatures at this point have been lined up with the commands from the wire, and verified/looked up.
SignedTransaction | `data class SignedTransaction : NamedByHash` Container for a WireTransaction and attached signatures.
WireTransaction | `data class WireTransaction : NamedByHash` Transaction ready for serialisation, without any signatures attached.