Skip to main content
Version: 1.x

Terminology

This page defines protocol terms used throughout the App Layer specification. Each term is defined once, and other pages in this section use these terms consistently.

Naming Conventions

  • Protocol entities use CamelCase, for example ChannelState and AppSession.
  • Field names use CamelCase, for example ChannelId and StateVersion.
  • Operations use lowercase with hyphens in document references, for example state-advancement.

Core Entities

TermDefinition
ChannelA state container shared between a User and a Node that allows off-chain state updates while maintaining on-chain security guarantees. Each channel operates on a single unified asset.
Channel DefinitionThe immutable parameters that define a channel: User, Node, asset, nonce, challenge duration, and approved signature validators. A channel definition is fixed at creation time and MUST NOT change during the channel lifecycle.
Channel StateThe current agreed configuration of a channel, including home and non-home ledger allocations, a version number, and a transition field.
ParticipantAn entity that holds a signing key and participates in a channel. Each channel has exactly two participants: a User and a Node.
AssetA representation of value identified by a human-readable symbol and decimal precision. Assets are identified independently of any specific blockchain.

State Concepts

TermDefinition
StateAn abstract data structure representing the current configuration of a protocol entity at a specific version.
State VersionA monotonically increasing integer that identifies the order of state updates. During off-chain advancement, each new state MUST have a version exactly one greater than the previous state.
State AdvancementThe process of updating a protocol entity's state off-chain through signed transitions exchanged between participants.
State EnforcementThe process of submitting a signed state to the blockchain layer for on-chain validation and enforcement.
TransitionA typed operation that describes the reason and parameters for a state update. Each transition carries a type, transaction identifier, account identifier, and amount.
IntentA value derived from the transition type that determines how the blockchain layer processes an enforced state.

Cryptographic Concepts

TermDefinition
SignatureA cryptographic proof that a specific key holder authorized a specific message. The protocol uses ECDSA over secp256k1.
SignerAn entity capable of producing signatures. Each signer is associated with a specific key.
Session KeyA delegated signing key authorized by a participant's primary key to sign state updates on their behalf within an authorization scope.
Signature Validation ModeA mechanism that determines how a signature is verified. The protocol currently defines default mode (0x00) and session key mode (0x01).

:::warning Session key authority Session key authorization MUST be associated with the same address as the channel's User or Node participant. Participants SHOULD treat session-key compromise as equivalent to control of the participant's authority within the scope they issued, for the duration of the validity window. :::

Ledger Concepts

TermDefinition
LedgerA record of asset allocations within a channel, associated with a specific blockchain. Each ledger tracks User and Node allocations and net flows, and MUST satisfy the allocation/net-flow invariant.
Home LedgerThe primary ledger of a channel state, associated with the blockchain where the state is enforced.
Non-Home LedgerA secondary ledger tracking asset allocations on a blockchain other than the home chain. Used for cross-chain escrow operations and migrations.
Home ChainThe blockchain identified by the home ledger's chain identifier. The home chain determines where enforcement operations are executed and MAY change through migration.
Locked FundsThe total assets held by the blockchain enforcement contract on behalf of a channel. Unless the channel is being closed, UserAllocation + NodeAllocation MUST equal the locked funds.
VaultA pool of available funds maintained by the Node on a specific blockchain, separate from any specific channel.
WAD NormalizationScaling chain-specific asset amounts to the asset's configured decimal precision for exact, lossless cross-chain comparisons.

WAD normalization is:

NormalizedAmount = Amount * 10^(18 - ChainDecimals)

Each unified asset defines a canonical decimal precision used during protocol interactions. The maximum supported decimal precision is 18.

State Signing Categories

TermDefinition
Mutually Signed StateA state that carries valid signatures from both the User and the Node. Only mutually signed states are enforceable on-chain.
Node-Issued Pending StateA state produced by the Node that carries only the Node's signature. A pending state is NOT enforceable on-chain and becomes mutually signed only after the User acknowledges it.
Channel StatusA specific on-chain channel data configuration throughout the lifecycle. The current RPC status surface is void, open, challenged, closing, and closed; closing means the Node has issued the finalization state and the channel is in the close path.
Escrow Channel IdentifierA 32-byte hash derived deterministically from the home channel identifier and state version. It uniquely identifies each escrow operation.

Protocol Operations

OperationDefinition
State EnforcementSubmitting a signed state to the blockchain layer so the latest agreed state is recorded on-chain. SDK or contract surfaces may expose a narrower checkpoint entry point for specific enforcement paths.
ChallengeAn on-chain operation where a participant disputes the current enforced state by submitting a signed state and challenger signature.
CommitMoving assets from a channel into an extension, such as an application session.
ReleaseReturning assets from an extension back to channel allocations.
EscrowA two-phase mechanism for cross-chain operations: initiate locks funds, finalize releases them upon cooperative completion or after a timeout.

Extension Concepts

TermDefinition
ExtensionAn additional protocol module that provides functionality beyond the core channel protocol.
Application SessionAn extension that enables off-chain application functionality. Application sessions hold committed assets and maintain their own state.
Application StateThe state associated with an application session, tracking committed assets and application-specific data.