Releases: erc7824/nitrolite
Releases · erc7824/nitrolite
v0.5.0
This release introduces enhanced security features, improved app session management, and critical infrastructure updates for the Clearnode API and Nitrolite SDK.
Changelog
Documentation
- Added the
v0.5.0Migration Guide. - Added a huge and incredibly fruitful Protocol section, providing detailed specifications for the current protocol version.
- Added instructions on how to request a blockchain and an asset support.
- As always, the up-to-date Clearnode API documentation can be found in the API docs of the ClearNode.
Nitrolite SDK
- Added a support for new
revoke_session_keyandget_session_keysendpoints - 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
viemdependency through multiple security patches (from2.37.6to2.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
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.4protocol 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.1→2.37.6) andzod(3.25.67→3.25.76) for improved security and performance. - Updated SDK version to
0.4.0to reflect the major protocol enhancements.
Clearnode
- Implemented app protocol enforcement: developers can no longer use the
protocolfield inside app sessions as custom values. Only two protocol versions are now supported:NitroRPC/0.2(maintains the same app sessions functionality as before) andNitroRPC/0.4(introduces new functionality). - Introduced
NitroRPC/0.4protocol 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:versionandintent. - 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-composeconfiguration for simplified local development setup. - Upgraded to Go
1.25and 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
This release focuses on streamlining channel creation, improving API consistency, and adding support for modern signature standards.
Changelog
Nitrolite SDK
- Replaced an optional NitroliteClient
stateWalletClientfield with a requiredStateSignerinterface to handle state signing operations (viasignState(channelId, state)). - Added
WalletStateSigner(using viem'sWalletClient) andSessionStateSigner(using raw private key account) classes to provide convenient implementations of theStateSignerinterface. - Updated
CreateChannel(...)method parameters to support the improved channel creation flow. - Standardized the request types in all Clearnode API methods, so that now
paramsis an object instead of an array. This improves type safety and clarity. - Standardized
CreateChannel,CloseChannel, andResizeChannelmethod response types. - Changed the
Signaturetype from{r, s, v}struct toHex. - Added pagination types and parameters for requests to ClearNode pagination-supporting endpoints.
Clearnode API
- Added
create_channelmethod to facilitate the improved, single-transaction channel opening flow. The response includes theChannelandStatestructs, alongside with theserverSignaturefor the initial state. - Standardized the request structure in all Clearnode API methods, so that now
paramsis an object instead of an array. This improves type safety and clarity. - Standardized
create_channel,close_channel, andresize_channelmethod responses. - Added
metadatastruct to theget_channels,get_app_sessions,get_ledger_entries, andget_ledger_transactionsmethod 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 inparticipantsarray. - Changed the
Signaturetype from{r, s, v}struct tobytes. - Added
EIP712AdjudicatorBaseto support EIP-712 typed structured data signatures in Adjudicator contracts. - Added support for EIP-191, EIP-712, EIP-1271, and EIP-6492 signatures.