.NET SDK
ServerWallet.Create
ServerWallet
lets you operate a vault-secured signer that lives inside your Thirdweb project. Use it whenever you need backend signing with the same controls and monitoring offered in the dashboard.
Before you instantiate a server wallet from code, create it inside the dashboard (Transactions → Server wallets) and note the label you assign. The SDK searches for that label when you call Create
.
This call:
- Reuses your client credentials to talk to the Thirdweb Engine API.
- Finds the server wallet whose label matches
production-deployer
. - Auto-configures execution options that track the signer address and idempotency key.
The optional executionOptions
argument lets you control how the wallet submits transactions. Pass one of the SDK-provided option types to enable advanced flows:
ServerWallet.Create
will populate any missing From
, SignerAddress
, or smart-account data at runtime. If you pass an unsupported execution option, the call throws an InvalidOperationException
with guidance on the allowed types.
If you configured the wallet as self-managed, include the Vault Access Token issued by Thirdweb so your backend can sign requests on behalf of the vault.
The method injects the token as an X-Vault-Access-Token
header for all Engine API calls.
Creation will throw descriptive exceptions when it cannot find the target wallet:
ArgumentNullException
if you omit theclient
orlabel
.InvalidOperationException
when no server wallets exist or the label does not match (the error lists available labels).
Wrap your call in a retry or surface the labels to operators to resolve quickly.
A server wallet implements IThirdwebWallet
, so you can reuse it anywhere you expect a wallet, including:
- Contract writes via
await contract.Write(wallet, ...)
- Prepared transactions with
await contract.Prepare(wallet, ...)
- Direct Engine interactions through
wallet.SendTransaction
For end-user wallets, see the User Wallets guide.