Skip to main content
Use initData to attach a 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.

Provide existing account metadata

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, 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:
For a Rhinestone SDK v0 account, use experimental_getV0InitData from @rhinestone/sdk/utils 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:
deploy deploys the account from its factory metadata. setup installs missing modules, including the Intent Executor when required. Existing-account deployment and setup can require ERC-4337, so configure a bundler and optional paymaster. To sponsor intent fees after setup, follow sponsorship setup.