Type Aliases

EvmAccount

type EvmAccount = {
  address: Address;
  policies?: string[];
  sign: (parameters: {
     hash: Hash;
  }) => Promise<Hex>;
  signMessage: (parameters: {
     message: SignableMessage;
  }) => Promise<Hex>;
  signTransaction: (transaction: TransactionSerializable) => Promise<Hex>;
  signTypedData: <typedData, primaryType>(parameters: TypedDataDefinition<typedData, primaryType>) => Promise<Hex>;
};
Defined in: src/accounts/evm/types.ts:73 Base type for any Ethereum account with signing capabilities. For example, this could be an EVM ServerAccount, or a viem LocalAccount.

Properties

address
address: Address;
Defined in: src/accounts/evm/types.ts:75 The address of the signer.
policies?
optional policies: string[];
Defined in: src/accounts/evm/types.ts:90 A list of Policy ID’s that apply to the account.
sign()
sign: (parameters: {
  hash: Hash;
}) => Promise<Hex>;
Defined in: src/accounts/evm/types.ts:77 Signs a message hash and returns the signature as a hex string.
Parameters
parameters
hash
Hash
Returns
Promise<Hex>
signMessage()
signMessage: (parameters: {
  message: SignableMessage;
}) => Promise<Hex>;
Defined in: src/accounts/evm/types.ts:79 Signs a message and returns the signature as a hex string.
Parameters
parameters
message
SignableMessage
Returns
Promise<Hex>
signTransaction()
signTransaction: (transaction: TransactionSerializable) => Promise<Hex>;
Defined in: src/accounts/evm/types.ts:81 Signs a transaction and returns the signed transaction as a hex string.
Parameters
transaction
TransactionSerializable
Returns
Promise<Hex>
signTypedData()
signTypedData: <typedData, primaryType>(parameters: TypedDataDefinition<typedData, primaryType>) => Promise<Hex>;
Defined in: src/accounts/evm/types.ts:83 Signs a typed data and returns the signature as a hex string.
Type Parameters
typedData
typedData extends TypedData | Record<string, unknown>
primaryType
primaryType extends keyof typedData | "EIP712Domain" = keyof typedData
Parameters
parameters
TypedDataDefinition<typedData, primaryType>
Returns
Promise<Hex>

EvmServerAccount

type EvmServerAccount = Prettify<EvmAccount & AccountActions & {
  name?: string;
  type: "evm-server";
  useNetwork: <Network>(network: Network) => Promise<NetworkScopedEvmServerAccount<Network>>;
}>;
Defined in: src/accounts/evm/types.ts:121 Server-managed ethereum account

EvmSmartAccount

type EvmSmartAccount = Prettify<EvmSmartAccountProperties & SmartAccountActions>;
Defined in: src/accounts/evm/types.ts:181 Ethereum smart account which supports account abstraction features like user operations, batch transactions, and paymaster.

EvmSmartAccountProperties

type EvmSmartAccountProperties = {
  address: Address;
  name?: string;
  owners: EvmAccount[];
  policies: string[] | undefined;
  type: "evm-smart";
  useNetwork: <Network>(network: Network) => Promise<NetworkScopedEvmSmartAccount<Network>>;
};
Defined in: src/accounts/evm/types.ts:148

Properties

address
address: Address;
Defined in: src/accounts/evm/types.ts:150 The smart account’s address.
name?
optional name: string;
Defined in: src/accounts/evm/types.ts:152 The name of the smart account.
owners
owners: EvmAccount[];
Defined in: src/accounts/evm/types.ts:154 Array of accounts that own and can sign for the smart account (currently only supports one owner but will be extended to support multiple owners in the future).
policies
policies: string[] | undefined;
Defined in: src/accounts/evm/types.ts:158 The list of policy IDs that apply to the smart account. This will include both the project-level policy and the account-level policy, if one exists.
type
type: "evm-smart";
Defined in: src/accounts/evm/types.ts:156 Identifier for the smart account type.
useNetwork()
useNetwork: <Network>(network: Network) => Promise<NetworkScopedEvmSmartAccount<Network>>;
Defined in: src/accounts/evm/types.ts:173 A function that returns a network-scoped smart account.
Type Parameters
Network
Network extends KnownEvmNetworks
Parameters
network
Network The network name or RPC URL
Returns
Promise<NetworkScopedEvmSmartAccount<Network>>
Example
// For known networks, type is inferred automatically:
const baseAccount = await smartAccount.useNetwork("base");

// For custom RPC URLs with type hints (requires casting):
const typedAccount = await smartAccount.useNetwork<"base">("https://mainnet.base.org" as "base");

// For custom RPC URLs without type hints (only sendTransaction, transfer and waitForTransactionReceipt methods available):
const customAccount = await smartAccount.useNetwork("https://mainnet.base.org");