EvmAccount: {
    address: Address;
    sign: (parameters: { hash: Hash }) => Promise<Hex>;
    signMessage: (parameters: { message: SignableMessage }) => Promise<Hex>;
    signTransaction: (transaction: TransactionSerializable) => Promise<Hex>;
    signTypedData: <
        const typedData extends TypedData
        | Record<string, unknown>,
        primaryType extends keyof typedData | "EIP712Domain" = keyof typedData,
    >(
        parameters: TypedDataDefinition<typedData, primaryType>,
    ) => Promise<Hex>;
}

Base type for any Ethereum account with signing capabilities. For example, this could be an EVM ServerAccount, or a viem LocalAccount.

Type declaration

  • address: Address

    The address of the signer.

  • sign: (parameters: { hash: Hash }) => Promise<Hex>

    Signs a message hash and returns the signature as a hex string.

  • signMessage: (parameters: { message: SignableMessage }) => Promise<Hex>

    Signs a message and returns the signature as a hex string.

  • signTransaction: (transaction: TransactionSerializable) => Promise<Hex>

    Signs a transaction and returns the signed transaction as a hex string.

  • signTypedData: <
        const typedData extends TypedData
        | Record<string, unknown>,
        primaryType extends keyof typedData | "EIP712Domain" = keyof typedData,
    >(
        parameters: TypedDataDefinition<typedData, primaryType>,
    ) => Promise<Hex>

    Signs a typed data and returns the signature as a hex string.