Skip to content

Releases: erc7824/nitrolite

v0.5.0

27 Nov 13:46
225c898

Choose a tag to compare

This release introduces enhanced security features, improved app session management, and critical infrastructure updates for the Clearnode API and Nitrolite SDK.

Changelog

Documentation

Nitrolite SDK

  • Added a support for new revoke_session_key and get_session_keys endpoints
  • Modified the Authorization structure
  • Added a conditional mechanism to choose channel state signer based on the channel participant.
  • Fixed EIP712 signature types to properly support float amounts, ensuring accurate transaction processing.
  • Upgraded viem dependency through multiple security patches (from 2.37.6 to 2.38.5) for improved security and stability.

Clearnode

  • Added app session keys with allowances and expiration functionality for granular access control.
  • Implemented session keys revocation mechanism, allowing users to invalidate compromised or unused session keys.
  • Enhanced authentication flow to avoid creating duplicate session keys when one already exists.
  • Wallet address is now used as channel and app-session participant to improve consistency
  • Added non-replayable transfer mechanism to prevent transaction replay attacks.
  • Enabled zero deposit channel creation for improved user onboarding.
  • Introduced restrictions on off-chain operations for users with non-zero channels to improve security.
  • Added escrow mechanism for channel resize operations.
  • Streamlined blockchain and asset configuration for easier management.
  • Fixed asset validation to properly skip empty assets in app allocations.
  • Extended Cerebro CLI functionality for better administrative capabilities.

v0.4.0

14 Oct 10:39
ba6f478

Choose a tag to compare

This release introduces the NitroRPC/0.4 protocol version with enhanced app session management, expanded network support, and improved infrastructure components for the Clearnode API.

Changelog

Nitrolite SDK

  • Introduced NitroRPC/0.4 protocol version for improved communication between clients and servers.
  • Added support for app session deposits and withdrawals, enabling more flexible fund management within active sessions.
  • Implemented app protocol enforcement to ensure consistent behavior across different client implementations.
  • Upgraded critical dependencies including viem (2.24.12.37.6) and zod (3.25.673.25.76) for improved security and performance.
  • Updated SDK version to 0.4.0 to reflect the major protocol enhancements.

Clearnode

  • Implemented app protocol enforcement: developers can no longer use the protocol field inside app sessions as custom values. Only two protocol versions are now supported: NitroRPC/0.2 (maintains the same app sessions functionality as before) and NitroRPC/0.4 (introduces new functionality).
  • Introduced NitroRPC/0.4 protocol version with support for app session deposits and withdrawals, enabling dynamic fund management during active sessions. When using this protocol version, two new required fields must be specified: version and intent.
  • Enabled Flow and XRPL EVM network support on production, expanding the platform's blockchain compatibility.
  • Exported RPC node, client, and dialer implementations in a public package for external integrations.
  • Introduced comprehensive infrastructure improvements:
    • Chain-agnostic signing package for multi-blockchain support
    • Dedicated logging package for better debugging and monitoring
    • RPC protocol package for standardized communication
    • User action log store for audit trails and analytics
  • Patched a security vulnerability when it was possible to challenge the channel with an older state. Clearnode now listens to such events and checkpoints with a newer valid state.
  • Added docker-compose configuration for simplified local development setup.
  • Upgraded to Go 1.25 and updated multiple dependencies for improved performance and security.

The v0.4.0 API documentation can be found in the API docs of the ClearNode.

v0.3.0

21 Aug 14:31
fcbf8a7

Choose a tag to compare

This release focuses on streamlining channel creation, improving API consistency, and adding support for modern signature standards.

Changelog

Nitrolite SDK

  • Replaced an optional NitroliteClient stateWalletClient field with a required StateSigner interface to handle state signing operations (via signState(channelId, state)).
  • Added WalletStateSigner (using viem's WalletClient) and SessionStateSigner (using raw private key account) classes to provide convenient implementations of the StateSigner interface.
  • Updated CreateChannel(...) method parameters to support the improved channel creation flow.
  • Standardized the request types in all Clearnode API methods, so that now params is an object instead of an array. This improves type safety and clarity.
  • Standardized CreateChannel, CloseChannel, and ResizeChannel method response types.
  • Changed the Signature type from {r, s, v} struct to Hex.
  • Added pagination types and parameters for requests to ClearNode pagination-supporting endpoints.

Clearnode API

  • Added create_channel method to facilitate the improved, single-transaction channel opening flow. The response includes the Channel and State structs, alongside with the serverSignature for the initial state.
  • Standardized the request structure in all Clearnode API methods, so that now params is an object instead of an array. This improves type safety and clarity.
  • Standardized create_channel, close_channel, and resize_channel method responses.
  • Added metadata struct to the get_channels, get_app_sessions, get_ledger_entries, and get_ledger_transactions method responses to provide additional pagination information: current page, number of items per page, total pages, and total items.

The v0.3.0 API documentation can be found in the API docs of the ClearNode.

Smart Contract

  • Channels can now become operational immediately after the create(...) method call if all participant signatures are provided. In such case, the funds of all participants other than thee sender ("creator") are transferred from the respective address specified in participants array.
  • Changed the Signature type from {r, s, v} struct to bytes.
  • Added EIP712AdjudicatorBase to support EIP-712 typed structured data signatures in Adjudicator contracts.
  • Added support for EIP-191, EIP-712, EIP-1271, and EIP-6492 signatures.