Skip to content

Releases: Agoric/agoric-sdk

Ymax v0.3.2604-beta1: router based remote accounts

03 Apr 09:54
cffb93b

Choose a tag to compare

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)

18 Mar 02:41
74b3808

Choose a tag to compare

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

09 Mar 17:54
2b24004

Choose a tag to compare

What's Changed

plus other planner/resolver changes:

prev planner sync: f561d5d 14 Feb

Note: contract changes are deployed separately.

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 tool command by @michaelfig in #12409

Full Changelog: ymax-v0.3.2602-beta3...ymax-v0.3.2603-beta1

ymax-v0.3.2602-beta3

23 Feb 18:44
fb41e57

Choose a tag to compare

ymax-v0.3.2602-beta3 Pre-release
Pre-release

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:

Full Changelog: ymax-v0.3.2602-beta2...ymax-v0.3.2602-beta3

bundle identification

b1-6ec20f7be4744b3d2ed55fe17106bb2dc855759a3d16670265db6cb71ac3a5878f1ff5af72b26e46f20e3fc7e3ee4a54ba0e3a47124f9f81a6020813ceed52be

Ymax v0.3.2602-beta2

19 Feb 23:47
b563887

Choose a tag to compare

Ymax v0.3.2602-beta2 Pre-release
Pre-release

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

13 Feb 23:54
e1bdc18

Choose a tag to compare

ymax-v0.3.2602-beta Pre-release
Pre-release

What's Changed

In ymax:

features:

  • Allow EVM depositFactory to 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 depositFactory by @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 pendingTx shapes by @michaelfig in #12394
  • fix(ymax-resolver): handle DepositFactory wallet creation transactions by @rabi-siddique in #12405
  • fix(portfolio-contract): add progressTracker to createAndDeposit by @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
also in this release

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

13 Feb 23:36
16059a9

Choose a tag to compare

Ymax v0.3.2601-beta Pre-release
Pre-release

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-source to esbuild if 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 rejectPlan by @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...
Read more

agoric-upgrade-22c-beta.1

14 Jan 19:10

Choose a tag to compare

Pre-release

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

20 Oct 21:15

Choose a tag to compare

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

21 Oct 13:59
6945e71

Choose a tag to compare

Ymax v0.3.2-beta Pre-release
Pre-release

Build Notes: Contract Bundle

contract bundle hash from CI job:

b1-ae002a5e194361653488f06b813ac4b30d142dbebc8a1f29be8d31446fa3fb2bf7a0e323388b798a2fe77e82c7f4c0dcef78f3e4c5fc2bfc52ac2704976a0998

contract addresses: (to add later, along with privateArgs if needed)

What's Changed

since ymax-v0.3.1-beta:

Full Changelog: ymax-v0.3.1-beta...ymax-v0.3.2-beta