Skip to content

refactor(tempo)!: remove multisig config_id concept#281

Merged
jxom merged 2 commits into
mainfrom
jxom/backport-multisig-remove-config-id
Jul 2, 2026
Merged

refactor(tempo)!: remove multisig config_id concept#281
jxom merged 2 commits into
mainfrom
jxom/backport-multisig-remove-config-id

Conversation

@jxom

@jxom jxom commented Jul 2, 2026

Copy link
Copy Markdown
Member

Backport of #280 from v1 to main, tracking the removal of the config_id concept from the TIP-1061 native multisig implementation in tempoxyz/tempo#5178.

The multisig account address now derives directly from the initial config. The owner approval digest binds only account, and the signature wire format drops the config ID element: 0x05 || rlp([account, signatures, init?]), with init omitted entirely when absent.

Breaking changes:

  • Removed MultisigConfig.toId; getAddress takes only a config, and getSignPayload takes { account } or { genesisConfig }.
  • Removed genesisConfigId from SignatureEnvelope.Multisig.
  • Raised MultisigConfig.maxOwners to 255; total owner weight and threshold are now u8-bounded.

Owner approvals may now be nested multisig signatures. SignatureEnvelope.assert enforces the stateless rules: keychain approvals rejected, nested approvals cannot carry init, and nesting depth is capped at MultisigConfig.maxNestingDepth (3).

The src/zod/tempo portion of the original PR is omitted since those schemas do not exist on main, and the changeset is restyled to a minor bump per this branch's conventions.

* refactor(tempo)!: remove multisig config_id concept

Derive multisig account addresses directly from the initial config.
Drop config_id from the owner approval digest and the 0x05 wire format.
Raise maxOwners to 255 with u8 weights. Validate nested multisig owner
approvals (depth limit, no init, no keychain).

* Update multisig-remove-config-id.md

* test(tempo): add multisig access-key e2e coverage

Authorize an access key via a multisig-signed AccountKeychain
authorizeKey call, execute a keychain-signed transaction with it,
and reject keyAuthorization on multisig transactions.
@vercel

vercel Bot commented Jul 2, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
ox Ready Ready Preview, Comment Jul 2, 2026 11:00pm

Request Review

@pkg-pr-new

pkg-pr-new Bot commented Jul 2, 2026

Copy link
Copy Markdown

Open in StackBlitz

npm i https://pkg.pr.new/ox@281

commit: e223839

…pshots

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@jxom
jxom merged commit da3309e into main Jul 2, 2026
11 of 12 checks passed
@jxom
jxom deleted the jxom/backport-multisig-remove-config-id branch July 2, 2026 22:56
@github-actions github-actions Bot mentioned this pull request Jul 2, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant