thirdweb SDK v5.102.0 - New Engine functions

v5.102.0 of the thirdweb TypeScript SDK rolls out server-side wallet orchestration and better transaction management—adding APIs to create & list server wallets, search transactions with flexible filters, batch multiple calls in one shot, and clearer error reporting.
Engine.createServerWallet()
Create a new server wallet with a custom label.
import { Engine } from "thirdweb";
const serverWallet = await Engine.createServerWallet({
client,
label: "My Server Wallet",
});
console.log(serverWallet.address);
console.log(serverWallet.smartAccountAddress);
Engine.getServerWallets()
List every server wallet that already exists.
import { Engine } from "thirdweb";
const serverWallets = await Engine.getServerWallets({
client,
});
console.log(serverWallets);
Engine.searchTransactions()
Search transactions by ID, chain ID, sender, and more (supports nested AND/OR filters).
// By transaction IDs
const transactions = await Engine.searchTransactions({
client,
filters: [{ field: "id", values: ["1", "2", "3"] }],
});
// By sender and chain
const transactions = await Engine.searchTransactions({
client,
filters: [
{
filters: [
{ field: "from", values: ["0x1234567890123456789012345678901234567890"] },
{ field: "chainId", values: ["8453"] },
],
operation: "AND",
},
],
pageSize: 100,
page: 0,
});
serverWallet.enqueueBatchTransaction()
Queue multiple transactions in a single batch and wait for completion.
// Prepare transactions
const tx1 = claimTo({ contract, to: firstRecipient, quantity: 1n });
const tx2 = claimTo({ contract, to: secondRecipient, quantity: 1n });
// Enqueue batch
const { transactionId } = await serverWallet.enqueueBatchTransaction({
transactions: [tx1, tx2],
});
// Wait for the batch to finish
const { transactionHash } = await Engine.waitForTransactionHash({
client,
transactionId,
});
console.log(transactionHash);
Improved Error Reporting
Server-wallet transactions now surface clearer, more actionable error messages.