Use evm.initData to attach an EVM smart account created outside the current SDK instance. The account implementation, owner configuration, address, and deployment metadata must describe the same onchain account.
This interface is experimental. Test the reconstructed address and signing path before using an existing account in production.
For an account that may need deployment on another chain, supply its address, factory, factory calldata, and whether the Rhinestone Intent Executor was included in the original initialization:
Use the actual validator module installed on the account. Set intentExecutorInstalled: true only if you have verified that the original initialization installed the Rhinestone Intent Executor.
If the account is already deployed on every chain you will use and no factory data is needed, evm.initData: { address } can pin the existing address.
Reconstruct an SDK-created account
For an account originally derived by the current SDK family, let the experimental helper compute the metadata from the original configuration:
Pass only the EVM configuration to these helpers, not the composite account configuration. For a live account, use account.config.evm as the helper context. Preserve the original provider version, adapter, salt or nonce, owners, and modules; do not substitute current defaults.
For a Rhinestone SDK v0 account, use experimental_getV0InitData from @rhinestone/sdk/evm with the account’s original account, owner, module, and session configuration. Do not guess legacy module addresses.
Deploy and set up each chain
For each chain you plan to use, choose a fee token funded at the account on that chain. This continuation uses feeToken for either intent-path operation:
deploy deploys the account from its factory metadata. Unsponsored intent-path deployment requires a same-chain source.token; a sponsored intent deployment can use { sponsored: true } instead. Deployment uses a UserOperation when the supplied initialization metadata lacks the Intent Executor, or when a custom bundler is configured, except for EIP-7702 adoption.
setup installs missing modules. If it must install the Intent Executor, it uses a UserOperation; otherwise, it uses an intent and requires a same-chain source.token. It returns false when nothing is missing. The UserOperation branches do not use the intent fee source or sponsorship option: configure a bundler and optional paymaster and fund gas as required.
To sponsor intent fees after setup, follow sponsorship setup.