Releases: wormhole-foundation/wormhole
v2.64.0
Key changes
Sui gRPC support
This release updates the Sui watcher to use Sui's new gRPC service, as json-rpc is being deprecated at the end of June 2026. For a migration guide, refer to https://docs.sui.io/develop/accessing-data/json-rpc-migration.
Guardians must update their suiRPC config option to point to the new gRPC service on their Sui nodes.
Arc support
This release adds support for Arc testnet and mainnet. To enable mainnet, use the following config options:
--arcRPC YOUR_RPC
--arcContract 0xC8aD24fC6063c41cB5C12a8e3851AafC3b3CF027 //this is MAINNET
Tempo mainnet support
This release adds support for Tempo mainnet. To enable it, use the following config options:
--tempoRPC YOUR_RPC
--tempoContract 0xbebdb6C8ddC678FfA9f8748f85C815C556Dd8ac6 //this is MAINNET
Tron testnet support
This release adds support for Tron testnet and mainnet. These release notes will be updated once the mainnet contract is deployed.
--tronRPC YOUR_RPC
--tronContract 0x294b5510a771111df96acbc08515678edf0f83e0 //this is TESTNET
What's Changed
- XRPL Watcher and Manager Service support by @evan-gray in #4705
- node: Update coverage baseline by @johnsaigle in #4811
- ci: Update Claude workflow to make code quality comments by @johnsaigle in #4807
- More operational docs updates by @SEJeff in #4817
- feat(node): multi uri for manager signers by @evan-gray in #4816
- node: Upgrade to Go 1.25 by @johnsaigle in #4823
- node(sdk): Clarify uses and limitations of vaa.Address by @johnsaigle in #4812
- solana/bridge: bump default submission time by @kcsongor in #4827
- feat(whitepapers): token bridge pauser by @evan-gray in #4809
- feat(node): token bridge set pauser gov by @evan-gray in #4810
- sui: update to new package system by @kcsongor in #4639
- add new governance files and VAAs by @aadam-10 in #4833
- ci: Modify flaky algorand test by @johnsaigle in #4825
- ci: Add exponential backoff for CCQ tests by @johnsaigle in #4821
- feat(evm): wtt pauser role by @evan-gray in #4801
- feat(solana): wtt pauser role by @evan-gray in #4802
- meta: Add guidelines for writing safe code by @johnsaigle in #4652
- docs: Resolve TODO in Shims README by @johnsaigle in #4613
- meta: Add coverage-check binary to gitignore by @johnsaigle in #4836
- docs: WTT upgrades should not use dirty memory by @johnsaigle in #4834
- node(svm-watcher): Add type to validate message account data by @johnsaigle in #4657
- ci: bump zizmor action by @johnsaigle in #4835
- Update SECURITY_CONTEXT.md with NTT attestations by @djb15 in #4842
- node: Update coverage baseline by @johnsaigle in #4832
- node(ccq): change outstandingResponses calculation by @bemic in #4844
- chore(node): tempo mainnet by @evan-gray in #4848
- node: Add Sui gRPC package by @pleasew8t in #4804
- ci: Install JS dependencies from lockfiles by @johnsaigle in #4806
- feat(node): Tron support by @evan-gray in #4779
- feat: Arc Testnet support by @douglasgalico in #4853
- chore(docs): enable ibc feature in operations.md by @SEJeff in #4854
- node: Update coverage baseline by @johnsaigle in #4856
- feat(whitepapers): update pauser with temporary pause by @evan-gray in #4855
- feat: Arc mainnet support by @douglasgalico in #4860
- node: close EVM watcher connector on supervisor restart by @bengtlofgren in #4852
- Add test-fast for Go unit testing by @johnsaigle in #4847
- sdk: Add function to convert on-chain times to Go timestamp by @johnsaigle in #4818
- node/hack/governor: Add diagnostic logging and Sui address workaround by @johnsaigle in #4851
- Update codeowners for suiclient package by @djb15 in #4869
- node: Migrate Sui watcher to use
suiclientpackage by @djb15 in #4850 - ci: Upgrade golangci-lint version to latest version by @johnsaigle in #4701
New Contributors
- @bengtlofgren made their first contribution in #4852
Full Changelog: v2.63.0...v2.64.0
v2.63.0
Note: several earlier versions were not proposed to all mainnet guardians, or a new release was cut during the time multiple guardians were in the process off upgrading. The key changes and the links to the previous releases are pasted in these release notes.
Key changes (2.63.0)
This release improves the reliability of the guardian node to gather and process delegated observations.
Key changes (2.62)
This release changes the message observation mechanism for Sei (not SeiEVM) to the direct cosmwasm watcher from the Wormchain IBC watcher.
To enable this watcher for Sei, use the following config options:
--seiWS ws://sei:26657/websocket
--seiLCD http://sei:1317
--seiContract sei1gjrrme22cyha4ht2xapn3f08zzw6z3d4uxx6fyy9zd5dyr3yxgzqqncdqnThis release also includes the CCQ improvement patch.
Key changes (v2.61)
This release adds support for Nexus mainnet. To enable it, use the following:
--nexusRPC YOUR_RPC
--nexusContract 0xC8aD24fC6063c41cB5C12a8e3851AafC3b3CF027
What's Changed
- fix(node): delegate quorum should use message publication digest by @evan-gray in #4805
Full Changelog: v2.62...v2.63.0
v2.62 Switch Sei to cosmwasm watcher
Key changes
This release changes the message observation mechanism for Sei (not SeiEVM) to the direct cosmwasm watcher from the Wormchain IBC watcher.
To enable this watcher for Sei, use the following config options:
--seiWS ws://sei:26657/websocket
--seiLCD http://sei:1317
--seiContract sei1gjrrme22cyha4ht2xapn3f08zzw6z3d4uxx6fyy9zd5dyr3yxgzqqncdqnWhat's Changed
- Adding more Solana tests + bug fix + hardening by @mdulin2 in #4783
- node: Add comments for hash input to file signer's Sign() method by @johnsaigle in #4622
- ci: Add govet shadow detection by @johnsaigle in #4722
- node: add exhaustruct lint for all processor structs by @johnsaigle in #4721
- node(processor): Remove double VAA broadcast by @johnsaigle in #4788
- feat(node): switch sei to cosmwasm watcher by @evan-gray in #4798
- chore(node): fix flaky adminserver test by @evan-gray in #4800
Full Changelog: v2.61...v2.62
v2.60.2 Switch Sei to cosmwasm watcher
Key changes
This is a patch release on top of v2.60.1 from the version/v260-1-sei-patch. It changes the message observation mechanism for Sei (not SeiEVM) to the direct cosmwasm watcher from the Wormchain IBC watcher.
To enable this watcher for Sei, use the following config options:
--seiWS ws://sei:26657/websocket
--seiLCD http://sei:1317
--seiContract sei1gjrrme22cyha4ht2xapn3f08zzw6z3d4uxx6fyy9zd5dyr3yxgzqqncdqnWhat's Changed
- hotfix feat(node): switch sei to cosmwasm watcher by @evan-gray in #4799
Full Changelog: v2.60.1...v2.60.2
v2.61 Nexus mainnet
Key changes
This release adds support for Nexus mainnet. To enable it, use the following:
--nexusRPC YOUR_RPC
--nexusContract 0xC8aD24fC6063c41cB5C12a8e3851AafC3b3CF027
What's Changed
- ci: fix Rust 1.95.0 lints by @johnsaigle in #4753
- meta: Add code coverage metrics for node/ and sdk/ by @johnsaigle in #4654
- relayer: rm by @evan-gray in #4644
- node(sui): Fix types for JSON decode by @johnsaigle in #4751
- Add delegated guardian set 1, 2 and 3 by @aadam-10 in #4736
- chore: update codeowners by @evan-gray in #4759
- chore: update codeowners by @evan-gray in #4760
- meta: Update codeowners by @johnsaigle in #4757
- docs: Update CONTRIBUTING.md links and remove Terra references by @johnsaigle in #4470
- ci: Add zizmor to CI and fix all zizmor violations by @djb15 in #4754
- ci(scripts/coverage-check): write baseline as sorted list, remove "new packages" section by @johnsaigle in #4758
- node: April Governor limits update by @djb15 in #4762
- node: add exhaustruct lint for MessagePublication by @johnsaigle in #4720
- ci: Bump forge-std version by @djb15 in #4771
- ci: Allow Claude to check out fork PRs by @djb15 in #4770
- Tron Nile testnet deployment by @evan-gray in #4777
- ci: enable "Poorly Chosen Identifer" lint by @johnsaigle in #4718
- ci: Relax delta for unit test coverage by @johnsaigle in #4772
- docs: Remove references to running Terra1 by @johnsaigle in #4563
- EVM Watcher Security Improvements by @mdulin2 in #4676
- fix(cosmwasm): update registration flow by @evan-gray in #4756
- node(governor): Remove Linea by @johnsaigle in #4764
- ci: Forbid use of time.Sleep by @johnsaigle in #4782
- meta: Add johnsaigle to codeowners for p2p pkg by @johnsaigle in #4785
- chore(node): update ccq bootstrap by @evan-gray in #4784
- meta: Add governance VAA ordering to SECURITY_CONTEXT.md by @johnsaigle in #4773
- chore(node): fix e2e test race condition by @evan-gray in #4786
- node: Update mutex handling in processor by @djb15 in #4713
- node: Support multiple transfers per tx in the Accountant audit flow by @djb15 in #4747
- node: Fix gossipAdvertiseAddress variable shadowing by @djb15 in #4712
- node: Enhance URL verification by @johnsaigle in #4755
- solana: reclaim rent for old accounts by @kcsongor in #4746
- chore: rm deprecated chains by @evan-gray in #4791
- feat(node): solana core close event handling by @evan-gray in #4790
- chore(node): fix flaky test by @evan-gray in #4793
- rm terra classic by @evan-gray in #4792
- chore(node): transfer fees template by @evan-gray in #4794
- chore(node): nexus mainnet by @evan-gray in #4795
Full Changelog: v2.60.0...v2.61
v2.60.1 Update ccq bootsrap peers
Key changes
This is a patch release on top of v2.60.0 from the version/v260-p2p-patch branch. It updates bootstrap peers for Cross Chain Queries as part of an effort to improve ccq reliability.
What's Changed
- chore(node): update ccq bootstrap by @evan-gray in #4787
Full Changelog: v2.60.0...v2.60.1
v2.60.0
v2.59.0 wasn't planned on being proposed to mainnet guardians, its changelog is copied below.
Key changes
#4743 allows any guardian to collect a quorum of delegated guardian set signatures for a message and broadcast them in a single message. This should improve the overall reliability of (re)observations happening on delegated chains.
What's Changed (v2.60.0)
- feat(node): guardian signed delegate signatures broadcast by @evan-gray in #4744
What's Changed (v2.59.0)
- node: Solana watcher tests by @djb15 in #4674
- ci: Cleanup codeowners by @djb15 in #4745
- node: Governor token list update by @djb15 in #4737
- feat(node): tempo testnet support by @evan-gray in #4750
Full Changelog: v2.58.0...v2.60.0
v2.59.0 Tempo testnet
Key changes
This release contains support for Tempo testnet. To enable it, use the following config parameters:
--tempoRPC YOUR_RPC
--tempoContract 0xa29E8c21924834E6249bCE1FD733f24eC492018c
What's Changed
- node: Solana watcher tests by @djb15 in #4674
- ci: Cleanup codeowners by @djb15 in #4745
- node: Governor token list update by @djb15 in #4737
- feat(node): tempo testnet support by @evan-gray in #4750
Full Changelog: v2.58.0...v2.59.0
v2.58.0 Nexus testnet & increased delegate observation window
Key changes
Go version bump
#4691 bumps the go version to 1.24.13. Guardians should use between this or earlier than 1.26.x for this release. 1.26.x has a known incompatibility with the guardian code and won't work.
Nexus testnet
This release contains support for Nexus testnet. To enable it, use the following config parameters:
--nexusRPC YOUR_RPC
--nexusContract 0x194B123c5E96B9b2E49763619985790Dc241CAC0
Delegate observation window bump
#4743 increases the delegate observation window to facilitate recovery of messages that did not receive a quorum of attestations within the 1 hour cleanup window. This is a temporary measure.
What's Changed
- meta: Add AR members as CODEOWNERS for the watchers by @johnsaigle in #4685
- sui: add method to create a vaa for testing by @kcsongor in #4141
- upgrade to go 1.24.13 by @fergarrui in #4691
- feat: governance sui call cmd by @douglasgalico in #4690
- node: Governor token list update by @djb15 in #4689
- Adds mainnet v2 guardian set v5 by @CurtBryan in #4696
- node: Reduce Governor chain limits by @djb15 in #4703
- node: Algorand watcher bounds checking + unit test coverage by @djb15 in #4687
- node: Fix trimming of CCQ block hashes by @djb15 in #4688
- feat(node): Manager Service and Dogecoin signing by @evan-gray in #4692
- node(notary): Improve concurrency handling by @johnsaigle in #4700
- node: Clear in memory messages on Governor reload by @djb15 in #4707
- chore: guardian set 5 admin template by @aapclark in #4697
- Add //SECURITY comments to the Solana watcher by @mdulin2 in #4662
- meta: Add SECURITY_CONTEXT.md for common security misreports by @johnsaigle in #4699
- node(ccq): stop retrying deterministic eth_call reverts by @evgeniko in #4675
- fix(node): manager service redeemScripts len check by @evan-gray in #4715
- ci: Add magic number detection lint by @johnsaigle in #4714
- docs: Add Delegated Guardian Sets whitepaper by @nvsriram in #4708
- meta: Add Cosmos-related governance to SECURITY_CONTEXT.md by @johnsaigle in #4719
- node: Nil pointer check in fetchMessageAccount by @djb15 in #4710
- node: Make copy of message in msg_verifier by @djb15 in #4709
- ci: add Claude Code review workflow by @evgeniko in #4686
- ci: Add asciicheck lint by @johnsaigle in #4723
- Add nexus testnet. Reserve Tempo chain ID by @fergarrui in #4733
- feat(ethereum): DelegatedManagerSet by @evan-gray in #4693
- chore(node): update default bootstrap peers for testnet by @evan-gray in #4734
- governor: Add manual token entries by @johnsaigle in #4726
- node: Add bounds check to Aptos Watcher payload parsing by @djb15 in #4706
- Add IBC and CosmWasm security comments. by @mdulin2 in #4683
- node: Reduce Solana Governor limits by @djb15 in #4741
- fix(cli): edit-vaa should normalize guardian addresses by @evan-gray in #4742
- node: Increase Governor max delay to 90 days by @djb15 in #4739
- chore(node): increase delegate observation window by @evan-gray in #4743
New Contributors
- @douglasgalico made their first contribution in #4690
- @evgeniko made their first contribution in #4675
Full Changelog: v2.56.0...v2.58.0