Skip to content

Conversation

@miker83z
Copy link
Contributor

@miker83z miker83z commented Dec 2, 2025

Description of change

This part involves the development of a new iota type to represent a new GenericSignature variant, that is the MoveAuthenticator type, and a execution path to authenticate an Account being the sender of a TX.

Internal AA architecture document.

  • The MoveAuthenticator type has a unique field which is call_args; this is a vector of CallArg working similarly to the ProgrammableTransactionBlock inputs.
  • The MoveAuthenticator is used to pass the inputs to the move call indicated by the AuthenticatorInfoV1 found attached to the Account object.
  • This authentication job is performed by the Validator, which:
    • checks that the MoveAuthenticator is correctly formed
    • loads MoveAuthenticator input objects at a specific version
    • loads the AuthenticatorInfoV1 from the account object dynamic field
    • finally, executes the authenticate() function (that has no effects to store)

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: Add the flag move_auth and the protocol parameter max_auth_gas, which allow to enable the authentication of Abstract Accounts and define the maximum gas budget allowed for the execution of the authentication.
  • Nodes (Validators and Full nodes): Enable the authentication of Abstract Accounts.
  • Indexer:
  • JSON-RPC:
  • GraphQL:
  • CLI:
  • Rust SDK: Add a new GenericSignature variant named MoveAuthenticator, which allows to authenticate Abstract Accounts.
  • REST API:

@miker83z miker83z requested review from a team as code owners December 2, 2025 15:28
@vercel
Copy link

vercel bot commented Dec 2, 2025

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

6 Skipped Deployments
Project Deployment Preview Comments Updated (UTC)
apps-backend Ignored Ignored Preview Dec 4, 2025 5:42pm
apps-ui-kit Ignored Ignored Preview Dec 4, 2025 5:42pm
iota-evm-bridge Ignored Ignored Preview Dec 4, 2025 5:42pm
iota-multisig-toolkit Ignored Ignored Preview Dec 4, 2025 5:42pm
rebased-explorer Ignored Ignored Preview Dec 4, 2025 5:42pm
wallet-dashboard Ignored Ignored Preview Dec 4, 2025 5:42pm

@miker83z miker83z changed the title feat: Add the MoveAuthenticator generic signature variane and enable AA transactions feat: Add the MoveAuthenticator generic signature variant and enable AA transactions Dec 2, 2025
@iota-ci iota-ci added sc-platform Issues related to the Smart Contract Platform group. vm-language Issues related to the VM & Language Team labels Dec 2, 2025
Co-authored-by: Valerii Reutov <[email protected]>
Co-authored-by: Pavlo Botnar <[email protected]>
@miker83z miker83z force-pushed the vm-lang/aa-auth/move-authenticator branch from 6dccabc to d19a0d3 Compare December 2, 2025 15:29
Copy link
Member

@thibault-martinez thibault-martinez left a comment

Choose a reason for hiding this comment

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

Approving dev-tools files

@miker83z miker83z force-pushed the vm-lang/aa-auth/move-authenticator branch from 5d6d2da to 9c8a1e7 Compare December 2, 2025 17:27
Copy link
Contributor

@kodemartin kodemartin left a comment

Choose a reason for hiding this comment

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

lgtm

// Enable Move authentication in devnet
cfg.feature_flags.move_auth = true;
// Max auth gas budget is in NANOS and an absolute value 1IOTA
cfg.max_auth_gas = Some(1_000_000_000);
Copy link
Contributor Author

Choose a reason for hiding this comment

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

This is basically the parameter used to limit pre-consensus validator's resource usage.
It is currently an arbitrary value and we need some benchmarking in order to set a proper value.

Base automatically changed from vm-lang/aa-auth/authenticator-and-package-metadata to vm-lang/aa-auth/8805-beta-feature-branch December 4, 2025 13:12
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

sc-platform Issues related to the Smart Contract Platform group. vm-language Issues related to the VM & Language Team

Projects

None yet

Development

Successfully merging this pull request may close these issues.

6 participants