Skip to content

Abstractionkit v0.3.0

Choose a tag to compare

@sherifahmed990 sherifahmed990 released this 14 Apr 13:55
· 174 commits to dev since this release

This is a major release introducing EIP-7702 account support, EntryPoint v0.9 compatibility, the audited multi-chain signature account, and a modernized build pipeline.

Highlights

  • EIP-7702 accountsSimple7702Account, Simple7702AccountV09, and Calibur7702Account with full delegation lifecycle (create, auto-check, revoke) and WebAuthn/passkey key
    management.
  • EntryPoint v0.9 — new UserOperationV9 type, version-entrypoint compatibility guards, and v0.9 support across paymaster and Tenderly simulation flows.
  • Safe v1.5.0SafeAccountV1_5_0_M_0_3_0 with EIP-7951 and Daimo P256 verifier for WebAuthn passkeys.
  • Audited multi-chain signaturesSafeMultiChainSigAccountV1 promoted from experimental after audit.
  • CandidePaymaster v0.9 + parallel signing — migrated to pm_getPaymasterData RPC with signing-phase awareness and parallel paymaster data flows.

Breaking Changes

Minimum Node.js version is now 18

isomorphic-unfetch has been removed — the SDK uses native fetch.

Build output paths changed (microbundle → tsdown)

Before After
dist/index.js dist/index.cjs
dist/index.m.js dist/index.mjs
dist/index.umd.js dist/index.iife.js
dist/index.d.ts dist/index.d.cts

A proper exports map is now included in package.json. Most bundlers and runtimes will resolve automatically — no action needed unless you reference dist paths directly.

Renamed APIs

Before After
ExperimentalSafeMultiChainSigAccount SafeMultiChainSigAccountV1
ExperimentalAllowAllPaymaster ExperimentalAllowAllParallelPaymaster
EIP712_MULTI_SAFE_OPERATIONS_TYPE EIP712_MULTI_CHAIN_OPERATIONS_TYPE
PaymasterInitValues ParallelPaymasterInitValues
listKeys (Calibur) getKeys

Removed APIs

  • createPaymasterUserOperation — use CandidePaymaster methods directly.

Signature method split

signUserOperation now only accepts a private key. For external or custom signers, use signUserOperationWithSigner.

TypeScript export type migration

Interfaces and type aliases are now exported with export type for isolatedModules compatibility. If you re-export them, update to export type { ... }. Affected types include
UserOperationV6, UserOperationV7, UserOperationV8, Allowance, DepositInfo, CandidePaymasterContext, Authorization7702Hex, and others. See
CHANGELOG.md for the full list.

Migration Guide

- import { ExperimentalSafeMultiChainSigAccount } from "abstractionkit";
+ import { SafeMultiChainSigAccountV1 } from "abstractionkit";

- import { ExperimentalAllowAllPaymaster } from "abstractionkit";
+ import { ExperimentalAllowAllParallelPaymaster } from "abstractionkit";

- import { EIP712_MULTI_SAFE_OPERATIONS_TYPE } from "abstractionkit";
+ import { EIP712_MULTI_CHAIN_OPERATIONS_TYPE } from "abstractionkit";

- import { PaymasterInitValues } from "abstractionkit";
+ import { ParallelPaymasterInitValues } from "abstractionkit";

// Type re-exports
- export { UserOperationV7, Allowance } from "abstractionkit";
+ export type { UserOperationV7, Allowance } from "abstractionkit";

What's New

EIP-7702

- Simple7702Account — lightweight EIP-7702 account (EntryPoint v0.8)
- Simple7702AccountV09 — with parallel paymaster support (EntryPoint v0.9)
- Calibur7702Account — WebAuthn/passkey keys, delegation auto-check, delegation revocation, getKeys for key management
- getDelegatedAddress() — check delegation status for any address
- Delegation helpers on BaseSimple7702Account: create, sign, and revoke authorizations

Safe Accounts

- SafeAccountV1_5_0_M_0_3_0 — Safe v1.5.0 with EIP-7951 + Daimo P256 verifier
- SafeMultiChainSigAccountV1 — audited multi-chain signature account
- createChangeThresholdMetaTransaction, createApproveHashMetaTransaction, getThreshold
- Auto-prepend approve(0) for tokens requiring allowance reset

Paymaster

- CandidePaymaster supports EntryPoint v0.9 and parallel signing flows
- Signing phases in the context object for paymaster-aware flows
- ExperimentalAllowAllParallelPaymaster for parallel paymaster data

EntryPoint v0.9

- UserOperationV9 type
- Version-entrypoint compatibility guard
- Entrypoint version resolved from account instance
- Tenderly simulation support for v0.9

Utilities

- MerkleTree helpers for multi-chain operations
- EIP-2098 compact signature support in parseRawSignature
- Entrypoint address constants: ENTRYPOINT_V6, ENTRYPOINT_V7, ENTRYPOINT_V8, ENTRYPOINT_V9
- EIP712_SAFE_OPERATION_PRIMARY_TYPE, EIP712_MULTI_CHAIN_OPERATIONS_PRIMARY_TYPE
- ALLOWANCE_MODULE_V0_1_0_ADDRESS for migration from v0.1.0

Bug Fixes

- Object mutation bugs in SafeAccountV1_5_0_M_0_3_0, CandidePaymaster, and multi-chain leaf hashes
- BigInt gas scaling and CHAIN_ID crash
- Gas overrides calculations
- paymasterAndData packing/signing with PAYMASTER_SIG_MAGIC (v0.9)
- Fractional percentage multipliers in applyMultiplier
- Multi-chain sig account singleton forwarding and type safety
- Merkle proof order reversed to match onchain verification
- WebAuthn passkeys v0.2.1 compatibility for custom contract addresses
- Token approval ordering in SafeAccount multisend
- formatSignaturesToUseroperationsSignatures overrides and single-op edge case
- Tenderly executeUserOp callData rewriting

---
Full Changelog: See [CHANGELOG.md ](https://github.com/candidelabs/abstractionkit/releases/CHANGELOG.md)for the complete list of changes.