Skip to main content

Documentation Index

Fetch the complete documentation index at: https://docs.startale.com/llms.txt

Use this file to discover all available pages before exploring further.

The AA SDK currently supports Soneium Mainnet (chain ID 1868) and Soneium Minato testnet (chain ID 1946). Both networks run EntryPoint v0.7 and the call sites are identical, only the chain object and bundler URL change.See Supported networks for bundler and paymaster URLs per chain.
The SDK targets EntryPoint v0.7 exclusively. UserOperations are encoded in the v0.7 layout (paymaster, paymasterVerificationGasLimit, and paymasterPostOpGasLimit are separate fields rather than packed into paymasterAndData). You do not need to set the EntryPoint version manually.
Any object that satisfies the SmartAccountSigner interface works. Common choices:
  • Dynamic: social login, passkey, and MPC-backed keys. See Dynamic integration.
  • Privy: embedded wallets and social login. See Privy integration.
  • viem LocalAccount: raw private key, useful for scripts and testing.
The signer slot in toStartaleSmartAccount accepts any of the above interchangeably.
AA SDK (@startale-scs/aa-sdk)App SDK (@startale/app-sdk)
AudiencedApp developers building custom AA flowsdApp developers integrating with the Startale App wallet
Account modelERC-7579 modular smart account you deploy and controlSmart account managed by the Startale App
SignersAny SmartAccountSigner (Dynamic, Privy, private key)Startale App user session
GasManaged or self-funded SCS paymasterGasless via the Startale App (for Startale App users)
Best forCustom AA, sessions, recovery, EIP-7702Miniapps and in-app transactions
API keys for the SCS bundler and paymaster are issued from the SCS Portal. After signing in, create a project, provision a paymaster, and copy the API key. The Portal setup tutorial walks through this end to end.
Both modes use the same RPC and paymasterId call site. The difference is funding:
  • Self-funded (prepaid): You deposit ETH into the paymaster contract. Gas is debited from your balance per UserOperation. Good for predictable budgets.
  • Managed (postpaid): SCS fronts gas and bills you in fiat on a monthly cycle. Good for production apps that prefer not to manage onchain treasury.
Switch between modes by using a different paymasterId, no code change required.
Yes. Pass token instead of paymasterId in paymasterContext:
paymasterContext: {
  token: "<SUPPORTED_ERC20_ADDRESS>",
}
The Startale Token Paymaster quotes the token amount against the ETH gas cost at signing time. Supported tokens per network are listed in Supported networks.
Yes. Soneium Minato (chain ID 1946) is the testnet. Use the soneiumMinato chain from viem/chains and point the bundler URL to https://soneium-minato.bundler.scs.startale.com?apikey=YOUR_API_KEY. Everything works identically to mainnet.
Use the faucets listed at docs.soneium.org. The Bridge lets you move Sepolia ETH to Soneium Minato as well.
Replace sendUserOperation with debugUserOperation on your StartaleAccountClient. It logs the packed UserOperation, decodes the AA error code, and prints a Tenderly simulation URL if you have TENDERLY_API_KEY, TENDERLY_ACCOUNT_SLUG, and TENDERLY_PROJECT_SLUG set.See Debugging UserOperations for the full error code table and decoding patterns.
Yes. The Startale Account, Factory, Bootstrap, ECDSA Validator, and both paymasters have been audited. Audit reports and all deployed addresses are in Contracts and audits.
Yes. EIP-7702 lets an existing EOA delegate to the Startale Account implementation without changing its address. The upgraded EOA then behaves like a full ERC-7579 modular smart account and supports all SDK features: gas sponsorship, batched calls, smart sessions, and social recovery. See EIP-7702.
A smart session is a scoped, time-bound session key issued by the account owner. It lets a dApp sign UserOperations on the user’s behalf, within a defined set of allowed contracts, functions, and spend limits, without requiring the user to approve every action. Backed by the ERC-7579 Smart Sessions validator module. See Smart sessions.
Yes. Pass an array to calls in sendUserOperation. All calls execute atomically, if any one reverts, the entire batch reverts. For independent UserOperations that should not block each other, use parallel lanes.