Overview
By default, the SDK creates CHIPI wallets (OpenZeppelin account with SNIP-9 session keys) or READY wallets (Argent X v0.4.0). You can also pass a custom classHash to deploy any StarkNet account that implements SNIP-9.
When to Use Custom Class Hashes
- Your project has a custom account contract with special features (spending limits, social recovery, multisig)
- You need a specific audited account version (e.g., CHIPI v33 with spending policy)
- You’re building on top of an account standard not yet included in the SDK defaults
Requirements
Your custom account must:
Accounts without SNIP-9 support cannot use the Chipi paymaster. Transactions will fail at estimation with TRANSACTION_EXECUTION_ERROR.
Creating a Wallet with Custom Class Hash
When classHash is provided:
- The SDK uses your class hash instead of the default CHIPI or READY hash
- The wallet address is computed from your class hash + constructor calldata
- The Chipi paymaster sponsors the deployment (if your account supports SNIP-9)
Known Compatible Class Hashes
Upgrading Custom Wallets
Custom wallets can be upgraded to newer class hashes using the wallet upgrade flow:
Feature Compatibility
Related