Grin + Grin Wallet 3.0.0 Released

Grin and Grin wallet 3.0.0 have been released and are ready for use in advance of the upcoming hard fork in mid-January.

The hard-fork is scheduled on block 524,160, around Jan 15, 2020. Everyone is urged to upgrade to 3.0.0 as soon as possible, as the 2.x series will stop working at this time.

This release contains many new features, improvements and enhancements, all of which are detailed below. Big thanks goes out to everyone who has contributed their time and efforts to getting us to this point!


Grin 3.0.0 Binaries
Grin Wallet 3.0.0 Binaries

Release Planning

Planning notes for the 3.0.0 release

Major changes and enhancements


  • ASIC-Resistant PoW is changed to Cuckaroom29 post-hard fork (Reference solvers are included in the grin-miner project)
  • TUI logs screen
  • Node API V2
  • fast sync validation now shows progress during kernel and rangeproof validation
  • Enable fast sync (consensus changes)
  • Fix for tcp stream nonblocking flag
  • No more checking (old) orphans during txhashset write (fast sync)
  • Ability to stop txhashset mid download (fast sync)

Further Details

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


  • Detailed notes on all walllet changes for both users and upstream developers can be found here. Note that 3.0.0 wallets are able to transact with 2.x.x wallets with caveats around new feaures as outlined in the notes.

Futher Details

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

Options added to allow for separation of the finalize and post operations, to allow for offline transaction finalization.

This is a great feature and I tried it today on an air-gapped machine (sent from wallet1 to wallet2, extracted the finalize file via QR code). Worked!

However, it was a little surprising, that

grin-wallet finalize -i dat.response -d dat.finalized

tried to post, and if it fails (which it probably will for a file-out function intended for offline use), the output file is not created, because the error about the missing online connectivity halts the execution before the finalizing file is created.

It’s more or less mandatory to type the command as

    grin-wallet finalize -n -i dat.response -d dat.finalized

It makes not so much sense in my eyes, the no-post behavior should be default when -d is used.

But otherwise, great feature!