Releases: Agoric/agoric-sdk
Ymax v0.3.2604-beta1: router based remote accounts
This Ymax release introduces support for new remote account EVM contracts, paving the way for a better UX when signing Ymax portfolio operations, and enabling future upgrades of EVM based features.
What's Changed
- docs: update resolver docs by @rabi-siddique in #12548
- chore(ymax-resolver): rename sourceAddress to txIdPlaintext in OperationResult parser by @rabi-siddique in #12567
- chore: enable efficient vetted router upgrades for remote accounts by @mhofman in #12558
- chore: Minor cleanup in ymax-planner and core package comments by @gibson042 in #12588
- refactor(ymax-resolver): consolidate operation-watcher to single Alchemy subscription by @rabi-siddique in #12552
- feat(ymax-planner): use alchemy api for getting pool balances by @frazarshad in #12518
- refactor(ymax-planner): Renames to indicate Spectrum specificity by @gibson042 in #12589
- chore: update ymax0 devnet addresses by @mhofman in #12593
Full Changelog: v0.3.2603-beta2...ymax-v0.3.2604-beta1
bundle identification
b1-ada80b68358662c55c2e3ffb8da391df4b9a97bbd76d4634c8befb6d517f401538c65978fd34884f8eda128bb31b7a2f4fc6dbecf54a5bc829a5bd9f48f4945f
Ymax v0.3.2603-beta2 - concurrent processing & support for resolving router contract transactions (post-Mar 13 deploy)
What's changed
fix(ymax-planner): process pending tx events concurrently with portfolio events
chore(ymax-resolver): resolve operation events
Notes
- Builds on v0.3.2603-beta1 (rate limit retry improvements)
- Last planner deployment: March 13, 2026
- Contract changes are deployed separately
Ymax v0.3.2603-beta1 - retry on rate limit
What's Changed
- chore(ymax-resolver): handle 429 rate-limit errors in resolver by @rabi-siddique in #12535
plus other planner/resolver changes:
- chore: run lookback success and failure scans sequentially by @rabi-siddique in #12498
- CI: Notify on ymax0 Planner Deployment failure by @Muneeb147 in #12510
- refactor: use allowlist for supported pending tx types by @rabi-siddique in #12514
- chore(ymax-resolver): remove observing tx reverts for arb and aval in lookback by @rabi-siddique in #12517
- chore: filter lookback pending txs by resolver-supported types by @rabi-siddique in #12519
- fix(ymax-resolver): add watcher diagnostics and prevent duplicate subscriptions by @rabi-siddique in #12534
prev planner sync: f561d5d 14 Feb
Note: contract changes are deployed separately.
- fix(portfolio-contract): in CCTPfromEVM, await makeAccount by @dckc in #12505
- Prepare for evm router by @mhofman in #12533
other agoric-sdk changes
- chore(deps): Patch concordance for better ava diff formatting by @gibson042 in #12500
- test(swingset): deflake device-plugin restart replay test by @turadg in #12492
- misc agent config by @turadg in #12496
- Upgrade to TypeScript 6.0.0-beta by @Copilot in #12462
- build(install): use hard links mode by @turadg in #12499
- refactor: decouple client-utils published path typing from domain packages by @turadg in #12506
- feat(cosmos): Chunked bundle installation by @kriskowal in #12211
- tighter TypeScript config by @turadg in #12478
- format in pre-commit hook by @turadg in #12523
- upgrade Telescope to v2 and dedupe client-utils by @turadg in #12501
- Add BootstrapVatItems parameter to makeSwingsetTestKit by @turadg in #12531
- Upgrade Golang to v1.24 and leverage new
go toolcommand by @michaelfig in #12409
Full Changelog: ymax-v0.3.2602-beta3...ymax-v0.3.2603-beta1
ymax-v0.3.2602-beta3
What's Changed
ymax focussed:
- chore: add logic to look for failed txs in lookback mode by @frazarshad in #12396
- fix(portfolio-contract): scheduler corner cases by @dckc in #12487
- Release pending account on flow start by @mhofman in #12497
other:
- Add agentic workflow daily-test-improver by @turadg in #12485
- disable auto reviews by CodeRabbit by @turadg in #12490
Full Changelog: ymax-v0.3.2602-beta2...ymax-v0.3.2602-beta3
bundle identification
b1-6ec20f7be4744b3d2ed55fe17106bb2dc855759a3d16670265db6cb71ac3a5878f1ff5af72b26e46f20e3fc7e3ee4a54ba0e3a47124f9f81a6020813ceed52be
Ymax v0.3.2602-beta2
What's Changed
ymax contract:
- fix(portfolio-contract): move CCTPtoUser async tick after tx registration by @turadg in #12465
- test(portfolio-contract): update snapshots for portfolio tests by @Copilot in #12471
- Fix provideEVMAccount failure handling by @mhofman in #12464
- Block on make account recovery by @mhofman in #12473
other:
- vendor dprint plugins by @turadg in #12470
- build: replace xsnap submodules with pinned archives by @turadg in #12477
- chore: Vendor anylogger in @agoric/internal by @Copilot in #12469
Full Changelog: ymax-v0.3.2602-beta...ymax-v0.3.2602-beta2
Bundle Identification
b1-13fc5d0dbc8d10690d519278cd3262ef8c40989254326b4a699d9e6723ffb5e71ed28dbb36560442941d13bfa640ac8ecee1e0d90a3a5241a8f76b318a66bcae
ymax-v0.3.2602-beta
What's Changed
In ymax:
features:
- Allow EVM
depositFactoryto be the Permit2 spender by @michaelfig in #12418 - feat: cctp v2 support in portfolio contract by @frazarshad in #12415
- feat: planner support for cctpv2 by @dckc in #12427
- Enable portfolio-contract to support EVM "deposit more" via
depositFactoryby @michaelfig in #12431 - feat: add morpho addresses for other chains by @frazarshad in #12438
- feat(portfolio-contract): remove Access token requirement for openPortfolio by @dckc in #12458
fixes:
- fix(portfolio-contract): rework the
pendingTxshapes by @michaelfig in #12394 - fix(ymax-resolver): handle DepositFactory wallet creation transactions by @rabi-siddique in #12405
- fix(portfolio-contract): add
progressTrackertocreateAndDepositby @michaelfig in #12408 - Fix permit2 witness type string by @mhofman in #12437
- fix: allow sourceAddress in PublishedTxShapes CCTP_TO_EVM by @dckc in #12442
- fix(portfolio-contract): Remove direct CCTPv2 routes from the production network by @gibson042 in #12454
- fix: unsubscribe resolver on GMP send failure by @rabi-siddique in #12463
ymax chore/refactor/docs
- chore(ymax-resolver): handle reverted make account transactions by @rabi-siddique in #12387
- chore: Update CAIP URLs by @gibson042 in #12397
- refactor(portfolio-contract): Optimize makeGraphBase by @gibson042 in #12402
- chore: Clean up some code for working with Permit2 data by @gibson042 in #12411
- ymax control lib by @turadg in #12413
- Improve portfolio EVM tests by @mhofman in #12395
- docs(portfolio-api): Update the FlowStep['phases'] JSDoc comment by @gibson042 in #12410
- refactor(portfolio-contract): phase out EVMT in favor of viem Abi etc. types by @dckc in #12412
- chore: Resolve planner-oriented ymax TODOs by @gibson042 in #12392
- chore(ymax-resolver): add stable error codes to watcher timeout/not-found by @rabi-siddique in #12445
- ci(ymax-planner): add deploy-ymax1-planner to ymax1-mainnet environment by @LuqiPan in #12446
also in this release
- refactor: stop using deprecated "sloppy" interface option by @erights in #11931
- drop vats runtime dependency from client-utils by @turadg in #12424
- end ambient types by @turadg in #12426
- disable workerThreads in some flaking packages by @turadg in #12428
- remove bundles build step by @turadg in #12447
- prefer performance.now() by @turadg in #12459
Full Changelog: ymax-v0.3.2601-beta...ymax-v0.3.2602-beta
Bundle Identification
b1-772314fa416433eb360d6735eaed817225ce7ba4b66c1c1f3827861c69480a2164f01927d675ebf998e721c9445a38d7c4355708742d397d0bae828776e2c223
from build-bundle ci job
Ymax v0.3.2601-beta
retroactive release to mark ymax1 upgrade Jan 2026
bundle hash: b1-cdb4dc43fd34c57a80e433cda7c84731d1e76c6f97ce2b26d449e7b85f1c231d770a581fb923d3c270851ae26b3cec40d91be4e5d328bc4ed71e8e760e7b66f5
What's Changed
Feature Highlights
- Schedule flow steps concurrently from partial order constraints (#12153).
- Add withdraw support in portfolio flows (#12335, #12351).
- Support EVM deposits for existing portfolios (#12354).
- Pre-compute EVM account addresses via CREATE2 for account provisioning paths
(#12236). - Surface richer flow status detail (FlowDetail, including type) in published
flow status (#12178).
Fix Highlights
- Ensure evmHandler.withdraw and evmHandler.rebalance execute their flows (wire
through executePlan) (#12393). - Prevent preflightValidateNetworkPlan from masking underlying errors (#12233).
- Enforce minimum outbound CCTP amount of 1 USDC (#12184).
- Make deposit/withdraw pendingTx linkage unidirectional to avoid ambiguous links
(#12337). - Publish steps[].phases[] txIds in deterministic order (#12330).
All Pull Requests in this release
- feat(SwingSet): Record duration of processCleanupTerminatedVat vat-cleanup work by @gibson042 in #11971
- CI (ymax-planner): Auto Deploy ymax0-planner on Image Publish by @Muneeb147 in #12089
- fix(ymax-planner): Call CosmosRPCClient error logic directly upon heartbeat timeout by @gibson042 in #12132
- fix(ymax0-planner-deloyment): Add Missing GCE_ZONE env in ymax0-planner-deployment CI by @Muneeb147 in #12152
- ci: generic bundle builder workflow by @mujahidkay in #12144
- Fix passable in kernel by @mhofman in #12155
- Fix: don't include dust accounts in graph solving by @dtribble in #12154
- fix(SwingSet): Tolerate absence of a kpid from maybeFreeKrefs by @gibson042 in #12145
- chore: update planner to not timeout pending txs by @frazarshad in #12165
- fast results from Ymax offers by @turadg in #12168
- misc portfolio contract & api by @turadg in #12169
- feat!(smart-wallet): do not publish invitation details handles by @mhofman in #12167
- fix(SwingSet): Make the README example work again by @gibson042 in #12162
- feat(portfolio-contract): schedule steps concurrently based on partial order by @dckc in #12153
- feat(portfolio-contract): include FlowDetail (esp. type) in StatusFor['flow'] by @dckc in #12178
- NodeNext for swingset-vat by @turadg in #12181
- custom eslint plugin that fixes typedef imports by @turadg in #11949
- fix(ymax-planner): Prefer to query balances using Spectrum GraphQL by @gibson042 in #12185
- feat(ymax-planner): Improve output for scanning/searching GCP Logs by @gibson042 in #12197
- remove tests and ops for auctions by @turadg in #12200
- group JSDoc imports by @turadg in #10665
- fix(ymax-planner): Don't resubmit steps to the same effective portfolio state by @gibson042 in #12201
- fix(ymax-planner): Exit handlePortfolio for unchanged effective state by @gibson042 in #12210
- chore: added a lower bound gas estimation by @frazarshad in #12207
- chore: starting lookback from a stored time value by @frazarshad in #12172
- Invoke for existing wallet by @mhofman in #12206
- fix(ymax-planner): Exit handlePortfolio for unchanged effective state by @turadg in #12214
- test(ymax-planner): Use a shorter timeout for gmp-watcher.test.ts by @gibson042 in #12224
- build: update planner build for sqlite3 by @frazarshad in #12228
- refactor(SwingSet): Simplify conditions in mapVatSlotToKernelSlot by @gibson042 in #11668
- fix(ymax-planner): adjust the default fee to 0.015 BLD for planner and resolver txns by @LuqiPan in #12209
- fix(ymax-planner): Consider old allocations in computeWeightedTargets by @gibson042 in #12231
- switch to NodeNext module resolution by @turadg in #12179
- include flow key trace ID in planner logs by @turadg in #12235
- fix(portfolio-contract): Prevent preflightValidateNetworkPlan from masking underlying errors by @gibson042 in #12233
- remove auctioneer instance and liquidation functionality from vaults by @turadg in #11879
- feat: patch
@endo/bundle-sourcetoesbuildif bundle is too big by @michaelfig in #12212 - chore: resolver changes to observe and resolve makeAccount transactions by @rabi-siddique in #12213
- chore(deployment): Ymax1-Planner Manual Deployment Workflow by @Muneeb147 in #12157
- docs: update makeAccount flow by @rabi-siddique in #12239
- dprint for prettier by @turadg in #7237
- fix(ymax-planner): Scale [u]USDC@agoric balances from Spectrum GraphQL responses by @gibson042 in #12244
- chore(ymax-planner): Fix lint issues by @gibson042 in #12245
- fix(ymax-planner): add missing kvStore and txId to SmartWallet watchers by @rabi-siddique in #12247
- chore: Make lerna aware of services/ymax-planner by @gibson042 in #12246
- ci(deployment): Add Missing GCE_ZONE env in deployment by @Muneeb147 in #12251
- fix(ymax-planner): Restore the 0.5 BLD fee amount by @gibson042 in #12254
- fix(ymax-planner): Increase the resolver tx fee submission to 0.25 BLD by @gibson042 in #12255
- chore: Set spend-action tx fees to 0.01 BLD by @gibson042 in #12257
- chore(portfolio-contract): predictWalletAddress using CREATE2 by @dckc in #12240
- chore: increase gas estimate padding to 20% by @frazarshad in #12258
- fix: address account sequence errors when resolving transactions by @rabi-siddique in #11968
- fix: use SDK types for REST API account responses by @rabi-siddique in #12260
- feat(portfolio-contract): pre-compute EVM account addresses a la CREATE2 by @dckc in #12236
- feat(ymax-ops): upgrade by @dckc in #12133
- ymax state model by @turadg in #12249
- docs(portfolio-contract): incorporate single-flow and NFA into design by @LuqiPan in #12091
- prefer objectMap by @turadg in #12266
- state viz for concurrent steps by @turadg in #12267
- feat(portfolio-contract): planner can reject promise/vow for plan by @dckc in #12183
- chore(portfolio-contract): Split solveRebalance into two phases by @gibson042 in #12270
- chore: tidying up for orchestration by @michaelfig in #12269
- chore: add ability to fail txs in resolver by @frazarshad in #12276
- chore: post rejectionReason for a failed pending transaction on vstorage by @rabi-siddique in #12279
- chore: manually process and resolve pending transactions by @rabi-siddique in #12278
- fix(portfolio-contract)!: limit outbound CCTP to >= 1USDC by @dckc in #12184
- feat(ymax-planner): Reject flows that have no steps or solution by @gibson042 in #12274
- feat: count unhandled rejections in subprocess by @Copilot in #12280
- feat(ymax-planner): Support --dry-run with a previously-unused address by @gibson042 in #12287
- chore(ymax-planner): Improve use of
rejectPlanby @gibson042 in #12290 - chore: capture and report axelar scan error messages by @rabi-siddique in #12288
- docs: add resolver service documentation with visual flow diagram by @rabi-siddique in #12291
- feat: prepare for `Pr...
agoric-upgrade-22c-beta.1
The Agoric OpCo engineering team has published the agoric-upgrade-22c-beta.1 patch release. This is a binary preview for an upcoming release. Unlike full releases, it should be applied on top of an existing agoric-upgrade-22b deployment. It can be applied without a coordinated upgrade on any chains running agoric-upgrade-22.
This pre-release addresses GHSA-c32p-wcqj-j677
Cosmos Upgrade Handler Name
As a patch, this release does not contain a new upgrade handler name. It should be applied without a governance proposal.
Tags
Below is the git information related to this software release. Note the git tag does not always match the cosmos upgrade handler name.
Please note that the @agoric/cosmos package version did not change in this patch release.
Git Tag: agoric-upgrade-22c-beta.1
Git Commit: 98cc9b1f95ddcbe28378e7038ac0cf8a762b1601
@agoric/cosmos package version: v0.35.0-u22.1
Docker: ghcr.io/agoric/agoric-sdk:dev-upgrade-22c
As shown in go.mod this release is based on:
ibc-go v8.7.0
cosmos-sdk v0.50.14
cometbft v0.38.20 (shows as `devel`)
How to upgrade
Validators should extract the attached tarball on top of an existing (already built) agoric-upgrade-22b version of the software. It is compatible with any chains that upgraded to the agoric-upgrade-22 upgrade name.
cd agoric-sdk-upgrade-22b
tar -xzf /path/to/agoric-bin-amd64.tar.gz
For Docker users, validators can run ghcr.io/agoric/agoric-sdk:dev-upgrade-22c
docker pull ghcr.io/agoric/agoric-sdk:dev-upgrade-22c
Verifying patch version
To verify that the files were extracted successfully, run agd version --long | grep cometbft which should show a devel version.
Alternatively if running the API server, query curl http://localhost:1317/cosmos/base/tendermint/v1beta1/node_info | jq . | grep -C2 cometbft which should show "sum": "".
The sha256 of the amd64 files should be as follow:
$ sha256sum bin/agd golang/cosmos/build/agd golang/cosmos/build/libagcosmosdaemon.so
0f9f83dee3ed808e396bc07474232df2115f6be0daf3c5e82f25a07c50453677 bin/agd
31634cc2416060a53588aa72cf06182f227820530fec97882e5ed1b241edcdc7 golang/cosmos/build/agd
f98c01ae3bd7a564204b51ed45b8575f86b3f334101d4b53a5e7d971c5306c21 golang/cosmos/build/libagcosmosdaemon.so
Please refer to the agoric-upgrade-22b release for any other requirements.
agoric-upgrade-22b
The Agoric OpCo engineering team has published the agoric-upgrade-22b patch release. This release is hot patch to address the agoric-3 chain halt at block 22152552. It can be applied without a coordinated upgrade on any chains running the agoric-upgrade-22 upgrade.
The full set of changes in this release can be found at #12135. And reviewed in detail at agoric-upgrade-22a...agoric-upgrade-22b.
Please note this release is incompatible with Node.js 22. Use Node.js 20 instead
Cosmos Upgrade Handler Name
As a patch, this release does not contain a new upgrade handler name. It should be applied without a governance proposal.
Tags
Below is the git information related to this software release. Note the git tag does not always match the cosmos upgrade handler name.
Please note that the @agoric/cosmos package version did not change in this patch release.
Git Tag: agoric-upgrade-22b
Git Commit: d15cbb93a8c1e96b364de7d961909ff1199876e5
@agoric/cosmos package version: v0.35.0-u22.1
Docker: ghcr.io/agoric/agoric-sdk:69
As shown in go.mod this release is based on:
ibc-go v8.7.0
cosmos-sdk v0.50.14
cometbft v0.38.17
How to upgrade
Validators should use this agoric-upgrade-22b version of the software instead of agoric-upgrade-22 or agoric-upgrade-22a for any chains that upgrade to the agoric-upgrade-22 upgrade name.
Validators should start using this agoric-upgrade-22b software for any chains that are already running the agoric-upgrade-22 upgrade.
Prerequisites
Install supported versions of Go, Node.js, and a compiler such as gcc or clang as documented in the README.
Please note this release is incompatible with Node.js 22. Use Node.js 20 instead
Make sure that the environment running the agd service has the same Node.js version as the environment used for building. In particular, if using nvm to manage Node.js version, the service environment should enable nvm and use the same version.
Building
# (stop the agd service)
cd agoric-sdk
git fetch --all
git checkout agoric-upgrade-22b
git clean -xdf && git submodule foreach --recursive git clean -xdf
./bin/agd build
# (start the agd service)
Do not copy the agd script or Go binary to another location. If you would like to have an executable agd in another location, then create a symlink in that location pointing to agoric-sdk/bin/agd.
Troubleshooting module ... was compiled against a different Node.js version and SyntaxError issues
The agd service is not using the same version of Node.js as the one used when building. The most likely cause is that nvm was used to manage the Node.js version in the shell when building. Either install the required version of Node.js globally using the system's package manager, or enable nvm in the environment of the agd service.
Troubleshooting repoconfig.sh: No such file or directory
Unlike typical cosmos-sdk chains where the daemon is a single executable file, Agoric's use of cosmos-sdk depends on many components of agoric-sdk at runtime. Copying agd to /usr/local/bin or the like is unlikely to produce a working installation. For more detail, see: #7825
Troubleshooting yarn: command not found or error This project's package.json defines "packageManager": "yarn@4.9.x". However the current global version of Yarn is 1.22.22
Generally, running corepack enable before running yarn install will resolve this issue. But if the issue persists, following corepack enable with corepack prepare yarn@4.9.x --activate helps resolve the issue. Replace 4.9.x with the actual version.
Troubleshooting Cannot find dependency ... in systemd
If you have LimitNOFILE=4096 in your systemd unit file, change it to LimitNOFILE=65536. For more detail, see #7817
Ymax v0.3.2-beta
Build Notes: Contract Bundle
contract bundle hash from CI job:
b1-ae002a5e194361653488f06b813ac4b30d142dbebc8a1f29be8d31446fa3fb2bf7a0e323388b798a2fe77e82c7f4c0dcef78f3e4c5fc2bfc52ac2704976a0998contract addresses: (to add later, along with privateArgs if needed)
What's Changed
since ymax-v0.3.1-beta:
- Fix: Remove automatic flow unwinding by @dtribble in #12129
- fix!: obsolete netTransfers - positive assumption is faulty by @dckc in #12130
- fix(ymax-planner): Run with 6-second heartbeats by @gibson042 in #12128
- chore: Suggestions from #12123 review by @gibson042 in #12124
Full Changelog: ymax-v0.3.1-beta...ymax-v0.3.2-beta