Terminology
Core Concepts
Channel: A secure communication pathway between participants that locks funds in an on-chain smart contract while enabling off-chain state updates.
State: A snapshot of the channel at any point in time, including fund allocations and application-specific data.
Participant: An entity (identified by a wallet address) that is part of a channel.
Clearnode: A server implementing a virtual ledger layer that provides a unified ledger (through Nitro RPC), coordinates state channels (through Nitrolite), and enables chain abstraction for developers and users
Creator: The participant at index 0 in a channel who initiates channel creation.
App Sessions: Off-chain channels built on top of payment channels, intended to be used by app developers to enable application-specific interactions and transactions without touching the blockchain.
Unified Balance: An abstraction that aggregates users' funds across multiple blockchain networks, managed by a clearnode.
Session Key: A temporary cryptographic key delegated by a user's main wallet that provides a flexible way for the user to manage security of their funds by giving specific permissions and allowances for specific apps.
Identifiers
channelId: A unique identifier for a channel, computed as the hash of the channel configuration, formatted as a 0x-prefixed hex string (32 bytes).
packedState: A specific encoding of a channelId, state.intent, state.version, state.data, state.allocations, used for signing and signature verification.
requestId: A unique identifier for an RPC request, used for correlating requests and responses formatted as a 0x-prefixed hex string (32 bytes).
appSessionId: A unique identifier for an app session, formatted as a 0x-prefixed hex string (32 bytes). Used for all subsequent operations on that specific app session.
accountId: An identifier for an account or app session within the unified ledger. Can be either a 0x-prefixed hex string or a wallet address.
chainId: A blockchain network identifier (uint64). Examples: 1 (Ethereum Mainnet), 137 (Polygon), 8453 (Base), 42161 (Arbitrum One), 10 (Optimism).
assetSymbol: A lowercase string identifier for a supported asset. Asset symbols are consistent across chains.
walletAddress: A user's blockchain address (0x-prefixed hex string, 20 bytes) that identifies their account and owns funds. Used to identify participants in channels and app sessions.
userId: Identifies a user after authentication to the Clearnode. Currently, this is always equivalent to the user's walletAddress.
On-Chain Contracts
Custody Contract: The main on-chain contract implementing the Nitrolite protocol. It provides the functionality to lock and unlock funds; create, close and challenge a channel; track channel state, and coordinate with adjudicators to validate state transitions on state updates.
Adjudicator: A smart contract that defines the rules for validating state transitions during all channel lifecycle operations. The adjudicator's adjudicate(...) function is called by the Custody contract to verify whether a new state is valid based on previous states and application-specific logic. Examples include SimpleConsensus (requires both signatures) and Remittance (only sender must sign).
Protocol Components
Nitrolite: The on-chain smart contract protocol.
Nitro RPC: The off-chain communication protocol.
These terms are used throughout the protocol specification. Bookmark this page for easy reference while reading other sections.