Grin + Grin Wallet 2.1.0-beta.3 Released

Grin and Grin wallet 2.1.0-beta.3 have been released and are ready for public testing in advance of the full release slated for the week of October 14, 2019. We encourage everyone in the community to download and try the new release, particularly wallet developers who may be interested in the additional functionality provided by the V3 API.

Particular Areas to focus on for testing

  • Sync a new chain from scratch
  • Replace binary, using chain data from previous versions
  • Sending between 2.1.0 wallets and older wallets?
  • Sending/receiving between a 2.1.0 wallet and your exchange of choice (use small test amounts!)
  • Wallet Developers - Using the V3 wallet API
  • Wallet Developers - Ensure your existing code works as before with the 2.1.0 release


Grin 2.1.0-beta.3 Binaries
Grin Wallet 2.1.0-beta.3 Binaries

Release Planning

Planning notes for the 2.1.0 release

Major changes and enhancements (Please note this information may change before release)


  • Blocking IO (major changes to networking implementation)
  • Improved handling of p2p connections (inbound and outbound peer connections)
  • Implement batch verification of kernel signatures (50% performance increase)
  • Kernel serialization optimization (and increased flexibility)

Further Details

Details for all node changes for the 2.1.0 release can be found here:


  • Addition of the V3 Owner API, (at /owner/v3) which includes lifecycle functions for creating wallets, as well as enhanced security between the server and clients. A full description of the new API can be found in the rustdoc documentation.
  • Fixes to API secret handling, note the upgrade notice below
  • Fixes to transactions not confirming when no change outputs exist
  • Addition of the kernel excess field to the transaction log, to help with identifying transactions on the chain

Upgrade Notice

Wallet API Tokens

  • Upon wallet creation, the wallet now creates 2 authentication tokens in the wallet directory: .api_secret and .owner_api_secret
  • .api_secret is the secret shared with the node for wallet to node communication. Previous versions used this file for both node communication and Owner API authentication. This file should now only be used for the node secret and users should update files and paths in grin-wallet.toml accordingly
  • .owner_api_secret is now used only to authenticate the Owner API.
  • In grin-wallet.toml , api_secret_path corresponds to the Owner API secret file ( .owner_api_secret by default), while node_api_secret_path corresponds to the node secret file ( .api_secret by default)
  • When running the Owner and Foreign APIs on the same port via the owner_api_include_foreign option in grin-wallet.toml , calls to the Foreign API no longer require the Owner API authentication secret.

Kernel Excess

  • 2 fields are added to the TxLogEntry as found in the retrieve_txs and get_stored_tx functions:
    • kernel_excess - Optional kernel excess (identifier) for the transaction
    • kernel_lookup_min_height - The minimum height to begin scanning for a kernel excess value when attempting to retrieve it from the nod.

Futher Details

Details on all wallet changes for the 2.1.0 release can be found here: