Skip to content

fix(core): Remove ZkLogin and JWK#10737

Merged
muXxer merged 45 commits intodevelopfrom
node/remove-zklogin
Apr 24, 2026
Merged

fix(core): Remove ZkLogin and JWK#10737
muXxer merged 45 commits intodevelopfrom
node/remove-zklogin

Conversation

@jkrvivian
Copy link
Copy Markdown
Contributor

@jkrvivian jkrvivian commented Mar 17, 2026

Description of change

  • Remove ZkLogin authentication and JWK consensus update support from the codebase.
  • Protocol config fields for zklogin are preserved to maintain compatibility with historical protocol versions.
  • ZkLogin variants in enums and consensus transaction kinds are kept, ensuring existing data can still be deserialized.

Links to any relevant issues

None

How the change has been tested

  • Basic tests (linting, compilation, formatting, unit/integration tests)
  • Patch-specific tests (correctness, functionality coverage)
  • I have added tests that prove my fix is effective or that my feature works
  • I have checked that new and existing unit tests pass locally with my changes

Release Notes

  • Protocol:
    • Removed zkLogin authentication support entirely
    • zkLogin signatures (including within multisig) are now rejected
    • JWK consensus updates no longer occur
  • Nodes (Validators and Full nodes):
    • Removed jwk_fetch_interval_seconds and zklogin_oauth_providers config options
    • Removed JWK periodic fetching and consensus submission
  • Indexer:
  • JSON-RPC: Breaking schema changes:
    • CompressedSignature and PublicKey: zkLogin variant reshaped from { ZkLogin: <bytes|id> } to the string literal ZkLoginDeprecated.
    • GenericSignature.ZkLoginAuthenticator renamed to ZkLoginAuthenticatorDeprecated with a null payload.
    • IotaTransactionBlockKind drops the AuthenticatorStateUpdateV1 branch; IotaEndOfEpochTransactionKind drops AuthenticatorStateCreate and AuthenticatorStateExpire; TransactionFilter.TransactionKind drops the "AuthenticatorStateUpdateV1" value.
    • Removed schema components: ZkLoginAuthenticator,ZkLoginAuthenticatorAsBytes, ZkLoginInputs, ZkLoginProof, ZkLoginPublicIdentifier, Bn254FqElement, Bn254FrElement, Claim, IotaActiveJwk, IotaJWK, IotaJwkId, IotaAuthenticatorStateExpire.
  • GraphQL: Hard removals from the public schema:
    • Query field verifyZkloginSignature.
    • Types ActiveJwk, ActiveJwkConnection, ActiveJwkEdge, AuthenticatorStateCreateTransaction, AuthenticatorStateExpireTransaction, AuthenticatorStateUpdateTransaction, ZkLoginVerifyResult.
    • Enum ZkLoginIntentScope.
    • TransactionBlockKindInput.AUTHENTICATOR_STATE_UPDATE_V1.
    • Union members of EndOfEpochTransactionKind and TransactionBlockKind that pointed at the removed types.- [x] CLI:
    • Removed keytool commands: zk-login-sign-and-execute-tx, zk-login-enter-token, zk-login-sig-verify, zk-login-insecure-sign-personal-message
    • decode-or-verify-tx now shows "zkLogin is not supported" for zkLogin transactions
  • Rust SDK:

@jkrvivian jkrvivian added the node Issues related to the Core Node team label Mar 17, 2026
@vercel

This comment was marked as duplicate.

@github-actions github-actions Bot added the documentation Improvements or additions to documentation label Mar 17, 2026
@github-actions

This comment was marked as duplicate.

@jkrvivian jkrvivian force-pushed the node/remove-zklogin branch from 96d7e8f to d9767c6 Compare March 25, 2026 10:08
@github-actions

This comment was marked as duplicate.

@github-actions

This comment was marked as duplicate.

@github-actions github-actions Bot added the ts-sdk Issues related to the TS SDK label Mar 25, 2026
@vercel vercel Bot temporarily deployed to Preview – apps-backend March 25, 2026 10:48 Inactive
@vercel vercel Bot temporarily deployed to Preview – rebased-explorer March 25, 2026 10:48 Inactive
@vercel vercel Bot temporarily deployed to Preview – iota-evm-bridge March 25, 2026 10:48 Inactive
@vercel vercel Bot temporarily deployed to Preview – wallet-dashboard March 25, 2026 10:49 Inactive
@github-actions

This comment was marked as duplicate.

@alexsporn alexsporn added this to the v1.20.0 milestone Mar 25, 2026
@github-actions

This comment was marked as duplicate.

@muXxer muXxer modified the milestones: v1.20.0, v1.21.0 Mar 26, 2026
@jkrvivian jkrvivian self-assigned this Mar 30, 2026
@jkrvivian jkrvivian force-pushed the node/remove-zklogin branch from a3e6154 to 96643a0 Compare March 30, 2026 11:52
@github-actions

This comment was marked as duplicate.

@jkrvivian jkrvivian force-pushed the node/remove-zklogin branch from 96643a0 to 7a723b9 Compare March 30, 2026 13:10
@github-actions

This comment was marked as duplicate.

@jkrvivian jkrvivian force-pushed the node/remove-zklogin branch from 7a723b9 to 571942e Compare March 31, 2026 10:00
@github-actions

This comment was marked as duplicate.

@muXxer muXxer force-pushed the node/remove-zklogin branch from 571942e to fc1e22c Compare March 31, 2026 12:38
@github-actions

This comment was marked as duplicate.

@github-actions

This comment was marked as duplicate.

@jkrvivian jkrvivian force-pushed the node/remove-zklogin branch from c8d757e to dfdda09 Compare April 7, 2026 09:32
@github-actions

This comment was marked as duplicate.

muXxer and others added 20 commits April 23, 2026 21:49
…atureScheme::ZkLoginAuthenticator`, `PublicKey::ZkLogin` and `CompressedSignature::ZkLogin`
…torTrait` and `epoch` from `verify_authenticator`
Reorganize match arms for ConsensusTransactionKind in the consensus
validator.
@github-actions
Copy link
Copy Markdown
Contributor

✅ Vercel Preview Deployment is ready!

View Preview

@github-actions
Copy link
Copy Markdown
Contributor

✅ Vercel Preview Deployment is ready!

View Preview

Copy link
Copy Markdown
Member

@Thoralf-M Thoralf-M left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Approving the changes in files owned by dev-tools

// SPDX-License-Identifier: Apache-2.0

// zkLogin/AuthenticatorStateUpdate types are kept (deprecated) for
// serialization compatibility only.
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

There are actually no types kept in this file? Did you mean the variants?

@github-actions
Copy link
Copy Markdown
Contributor

✅ Vercel Preview Deployment is ready!

View Preview

Copy link
Copy Markdown
Member

@alexsporn alexsporn left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

core-protocol documentation Improvements or additions to documentation node Issues related to the Core Node team ts-sdk Issues related to the TS SDK

Projects

None yet

Development

Successfully merging this pull request may close these issues.