corda / net.corda.core.contracts / LinearState


interface LinearState : ContractState

A state that evolves by superseding itself, all of which share the common "linearId".

This simplifies the job of tracking the current version of certain types of state in e.g. a vault.



abstract val linearId: UniqueIdentifier

Unique id shared by all LinearState states throughout history within the vaults of all parties. Verify methods should check that one input and one output share the id in a transaction, except at issuance/termination.

Inherited Properties


abstract val participants: List<AbstractParty>

A participant is any party that should be notified when the state is created or consumed.

Extension Functions


fun Any.contextLogger(): <ERROR CLASS>

When called from a companion object, returns the logger for the enclosing class.


fun ContractState.hash(): SecureHash

Returns the SHA-256 hash of the serialised contents of this state (not cached!)

fun ContractState.hash(algorithm: String): SecureHash

Returns the hash of the serialised contents of this state (not cached!)



interface DealState : LinearState

Interface representing an agreement that exposes various attributes that are common. Implementing it simplifies implementation of general flows that manipulate many agreement types.