We have released a new version of AbstractionKit, now equipped with new features for designing Smart Wallets. This version aligns with the latest Account Abstraction upgrades in EntryPoint v0.7. It includes audited, battle-tested Safe Smart Accounts and new Modules not previously available in the latest stable release, providing end users with greater flexibility and ownership control without compromising on the user experience.
We highlight here the main features and the changelog for developers integrating with AbstractionKit. If you want to learn more about these features, see our blogpost on Introduction AbstractionKit V0.02.
New Features
EntryPoint v0.7 Support:
- Added support for EntryPoint v0.7 in the Bundler class.
- Added support for EntryPoint v0.7 in the CandidePaymaster class.
CandidePaymaster:
- Integrated support for Candide Paymaster API V3, that introduces Gas Policies sponsorship.
SafeAccountV0.3.0:
- Added support for SafeAccountV0_3_0, which includes compatibility with ERC-4337 EntryPoint v0.7.
New Modules:
- Added support for the Safe Passkeys, enhancing security with WebAuthn authentication.
- Added support for the Social Recovery, bringing the ability for onchain account recovery.
Breaking Changes
CandidePaymaster:
- The
createSponsorPaymasterUserOperation
method now returns both the sponsored user operation and sponsor metadata. Update your code as follows:
import { CandidePaymaster } from "abstractionkit";
const paymasterRpc = "https://api.candide.dev/paymaster/$version/$network/$apikey";
const paymaster: CandidePaymaster = new CandidePaymaster(paymasterRPC);
// Construct user operation using createUserOperation()
const userOperation = smartAccount.createUserOperation(..);
// New return structure
const [sponsoredUserOperation, sponsorMetadata] =
await paymaster.createSponsorPaymasterUserOperation(
userOperation,
bundlerUrl
);Ensure your implementation captures both values, as the sponsor metadata is now a necessary part of the returned operation.
- The
SafeAccountV0_2_0
Update:- The variable
EIP712_SAFE_OPERATION
has been removed from theSafeAccountV0_2_0
class. It is now imported as a constant from the library. Please update your imports:
// EntryPoint V0.06
import { EIP712_SAFE_OPERATION_V6_TYPE } from "abstractionkit";
// or for EntryPoint V0.07
import { EIP712_SAFE_OPERATION_V7_TYPE } from "abstractionkit";- The variable
Some breaking changes to internal and advanced functions. Please see our updated docs for the specific updates.
Update Guides from v0.1.3
To update from v0.1.3 to v0.2.0, ensure the following changes are made in your code:
- Update any references to
createSponsorPaymasterUserOperation
to capture both thesponsoredUserOperation
and thesponsorMetadata
. - For SafeAccount implementations, replace
EIP712_SAFE_OPERATION
with the correct imported constant from the updated library version. - Review new module integrations (e.g., Safe Passkeys Module and Social Recovery Module) to determine if your application can leverage these enhanced features.
- Consider updating to the latest SafeAccountV0_3_0, so you can benefit your users from the latest Account Abstraction upgrades.
Dedicated Office Hours for Enterprises
To assist with this upgrades, we are offering dedicated office hours for enterprise customers on the Leader plan. Our team is be available to answer any questions, provide technical support, and ensure a smooth migration to v0.2.0.
Feel free to reach out directly to our private support channels schedule a session or ask about specific migration challenges.