Skip to main content
An EVM smart account is a contract account controlled by one or more signers. Creating one computes its address; it does not deploy a contract or submit a transaction.

Create the account

This server-side example uses one ECDSA owner. Keep both environment variables private.
The SDK uses Nexus 1.2.1 when you configure evm.owners and omit evm.account. It deploys the account lazily on each chain when the account first sends a transaction there. Receiving funds does not deploy it.
The smart account address differs from its owner address. Send funds to the address returned by account.getAddress('evm') when you intend to fund the smart account.

Configure a Solana account

Reuse the SDK authentication and owner initialized above. Solana uses one authority, not an EVM owner set: a viem secp256k1 account or a WebAuthn account. Ed25519 wallet keys are not supported authorities.
Save id and swig durably with the owner configuration. swig identifies state; walletAddress is the derived asset-holding wallet. Creating the SDK object does not create the Swig onchain.
Deployment is sponsored and installs a permanent root authority. Never prefund an undeployed predictable wallet. A true result may mean the Swig already exists; it does not verify the root matches your owner. Verify the deployed authority before funding. See account deployment and Solana support.

Combine independent accounts

An EVM entry and a Solana entry can share one SDK object without sharing addresses or authority configuration. This example uses the independently minted Swig above:
Deploy this Solana entry with the same saved id; an EVM entry does not remove that requirement. Do not assume EVM modules, multisig, recovery, or session configurations apply to Solana.

Configure a receiver only

Use an address-only entry for a destination you do not control:
A receiver entry grants no spending, deployment, or authority-management capability. A Solana-only address entry is also valid for representing a receiver, but is not a source signer.

Restore the account

For EVM, call createAccount again with the same account implementation, owners, and provider-specific salt or nonce. Preserve the original provider version and deployment metadata rather than relying on SDK defaults to restore an address. Keep the complete configuration with the signer material. Changing an owner, threshold, account implementation, salt, or nonce can produce a different address. For Solana, restore the saved swig and the same authorized signer; do not call createSolanaSwigId() again. Keep the saved id for any still-needed deployment and preserve the cluster/environment metadata. Reconstruct a passkey from its saved credential metadata using the shared passkey procedure. Local owner configuration must track authority changes onchain. With swig loaded from saved configuration and owner reconstructed from securely stored key material:

Choose the configuration

Choose a signer

Select ECDSA, passkeys, an embedded wallet, an external wallet, multisig, or MFA.

Choose an account provider

Use the default Nexus account or choose another supported implementation.