Table of Contents

Class ServerWallet

Namespace
Thirdweb
Assembly
Thirdweb.dll

Interact with vault-secured server wallets created from the Thirdweb project dashboard's Transactions tab.

public class ServerWallet : IThirdwebWallet
Inheritance
ServerWallet
Implements
Inherited Members
Extension Methods

Properties

AccountType

Gets the account type of the wallet.

public ThirdwebAccountType AccountType { get; }

Property Value

ThirdwebAccountType

Client

Gets the Thirdweb client associated with the wallet.

public ThirdwebClient Client { get; }

Property Value

ThirdwebClient

WalletId

String identifier for the wallet to be used in analytics.

public string WalletId { get; }

Property Value

string

Methods

Create(ThirdwebClient, string, ExecutionOptions, string)

Creates an instance of the ServerWallet.

public static Task<ServerWallet> Create(ThirdwebClient client, string label, ExecutionOptions executionOptions = null, string vaultAccessToken = null)

Parameters

client ThirdwebClient

The Thirdweb client.

label string

The label of your created server wallet.

executionOptions ExecutionOptions

The execution options for the server wallet, defaults to auto if not passed.

vaultAccessToken string

The vault access token for the server wallet if self-managed.

Returns

Task<ServerWallet>

A new instance of the ServerWallet.

Exceptions

ArgumentNullException

Thrown when client or label is null or empty.

InvalidOperationException

Thrown when no server wallets are found or the specified label does not match any existing server wallet.

Disconnect()

Disconnects the wallet (if using InAppWallet, clears session)

public Task Disconnect()

Returns

Task

EthSign(byte[])

Signs a raw message using Ethereum's signing method.

public Task<string> EthSign(byte[] rawMessage)

Parameters

rawMessage byte[]

The raw message to sign.

Returns

Task<string>

The signed message.

EthSign(string)

Signs a message using Ethereum's signing method.

public Task<string> EthSign(string message)

Parameters

message string

The message to sign.

Returns

Task<string>

The signed message.

ExecuteTransaction(ThirdwebTransactionInput)

Sends a transaction and waits for its receipt.

public Task<ThirdwebTransactionReceipt> ExecuteTransaction(ThirdwebTransactionInput transactionInput)

Parameters

transactionInput ThirdwebTransactionInput

Returns

Task<ThirdwebTransactionReceipt>

The transaction receipt.

GetAddress()

Gets the address of the wallet.

public Task<string> GetAddress()

Returns

Task<string>

The wallet address.

GetLinkedAccounts()

Returns a list of linked accounts to the current wallet.

public Task<List<LinkedAccount>> GetLinkedAccounts()

Returns

Task<List<LinkedAccount>>

A list of LinkedAccount objects.

IsConnected()

Checks if the wallet is connected.

public Task<bool> IsConnected()

Returns

Task<bool>

True if connected, otherwise false.

LinkAccount(IThirdwebWallet, string, bool?, Action<string>, string, IThirdwebBrowser, BigInteger?, string, string, string, List<string>)

Links a new account (auth method) to the current wallet. The current wallet must be connected and the wallet being linked must not be fully connected ie created.

public Task<List<LinkedAccount>> LinkAccount(IThirdwebWallet walletToLink, string otp = null, bool? isMobile = null, Action<string> browserOpenAction = null, string mobileRedirectScheme = "thirdweb://", IThirdwebBrowser browser = null, BigInteger? chainId = null, string jwt = null, string payload = null, string defaultSessionIdOverride = null, List<string> forceWalletIds = null)

Parameters

walletToLink IThirdwebWallet

The wallet to link.

otp string

The OTP code if the wallet to link is an email or phone wallet.

isMobile bool?

Set to true if linking OAuth on mobile.

browserOpenAction Action<string>

The action to open the browser if linking OAuth.

mobileRedirectScheme string

The redirect scheme if linking OAuth on mobile.

browser IThirdwebBrowser

The browser to use if linking OAuth.

chainId BigInteger?

The chain ID if linking an external wallet (SIWE).

jwt string

The JWT token if linking custom JWT auth.

payload string

The login payload if linking custom AuthEndpoint auth.

defaultSessionIdOverride string

The default session ID override if linking Guest auth.

forceWalletIds List<string>

The wallet IDs to force display if linking using SiweExternal auth.

Returns

Task<List<LinkedAccount>>

A list of LinkedAccount objects.

PersonalSign(byte[])

Signs a raw message using personal signing.

public Task<string> PersonalSign(byte[] rawMessage)

Parameters

rawMessage byte[]

The raw message to sign.

Returns

Task<string>

The signed message.

PersonalSign(string)

Signs a message using personal signing.

public Task<string> PersonalSign(string message)

Parameters

message string

The message to sign.

Returns

Task<string>

The signed message.

RecoverAddressFromEthSign(string, string)

Recovers the address from a signed message using Ethereum's signing method.

public virtual Task<string> RecoverAddressFromEthSign(string message, string signature)

Parameters

message string

The UTF-8 encoded message.

signature string

The signature.

Returns

Task<string>

The recovered address.

RecoverAddressFromPersonalSign(string, string)

Recovers the address from a signed message using personal signing.

public virtual Task<string> RecoverAddressFromPersonalSign(string message, string signature)

Parameters

message string

The UTF-8 encoded and prefixed message.

signature string

The signature.

Returns

Task<string>

The recovered address.

RecoverAddressFromTypedDataV4<T, TDomain>(T, TypedData<TDomain>, string)

Recovers the address from a signed message using typed data (version 4).

public virtual Task<string> RecoverAddressFromTypedDataV4<T, TDomain>(T data, TypedData<TDomain> typedData, string signature) where TDomain : IDomain

Parameters

data T

The data to sign.

typedData TypedData<TDomain>

The typed data.

signature string

The signature.

Returns

Task<string>

The recovered address.

Type Parameters

T
TDomain

SendTransaction(ThirdwebTransactionInput)

Sends a transaction.

public Task<string> SendTransaction(ThirdwebTransactionInput transaction)

Parameters

transaction ThirdwebTransactionInput

The transaction to send.

Returns

Task<string>

The transaction hash.

SignAuthorization(BigInteger, string, bool)

Signs an EIP-7702 authorization to invoke contract functions to an externally owned account.

public Task<EIP7702Authorization> SignAuthorization(BigInteger chainId, string contractAddress, bool willSelfExecute)

Parameters

chainId BigInteger

The chain ID of the contract.

contractAddress string

The address of the contract.

willSelfExecute bool

Set to true if the wallet will also be the executor of the transaction, otherwise false.

Returns

Task<EIP7702Authorization>

The signed authorization as an EIP7702Authorization that can be used with AuthorizationList.

SignTransaction(ThirdwebTransactionInput)

Signs a transaction.

public Task<string> SignTransaction(ThirdwebTransactionInput transaction)

Parameters

transaction ThirdwebTransactionInput

The transaction to sign.

Returns

Task<string>

The signed transaction.

SignTypedDataV4(string)

Signs typed data (version 4).

public Task<string> SignTypedDataV4(string json)

Parameters

json string

The JSON representation of the typed data.

Returns

Task<string>

The signed data.

SignTypedDataV4<T, TDomain>(T, TypedData<TDomain>)

Signs typed data (version 4).

public Task<string> SignTypedDataV4<T, TDomain>(T data, TypedData<TDomain> typedData) where TDomain : IDomain

Parameters

data T

The data to sign.

typedData TypedData<TDomain>

The typed data.

Returns

Task<string>

The signed data.

Type Parameters

T

The type of the data.

TDomain

The type of the domain.

SwitchNetwork(BigInteger)

Attempts to set the active network to the specified chain ID.

public Task SwitchNetwork(BigInteger chainId)

Parameters

chainId BigInteger

The chain ID to switch to.

Returns

Task

UnlinkAccount(LinkedAccount)

Unlinks an account (auth method) from the current wallet.

public Task<List<LinkedAccount>> UnlinkAccount(LinkedAccount accountToUnlink)

Parameters

accountToUnlink LinkedAccount

The linked account to unlink. Same type returned by GetLinkedAccounts().

Returns

Task<List<LinkedAccount>>

WaitForTransactionHash(string)

public Task<string> WaitForTransactionHash(string txid)

Parameters

txid string

Returns

Task<string>