Changelog
The thirdweb TypeScipt SDK v5.84.0 release adds support for Nebula, our new AI model designed interact with real time blockchain data and execute transactions with natural language.
Simply install the thirdweb package on your frontend or backend to get started.
Nebula enables developers to query real-time blockchain data using simple natural language prompts. From checking contract symbols to analyzing on-chain metrics, Nebula provides human-readable responses to your blockchain queries.
Nebula goes beyond just querying data - it can now execute blockchain transactions based on natural language instructions. Simply connect your wallet and describe the transaction you want to perform.
- Natural language processing for blockchain queries
- Real-time data access across 2000+ chains
- Transaction execution through simple prompts
- Works with 300+ wallet providers, in-app wallets, smart wallets and engine
- Context-aware responses and actions with multi step sessions
This addition to the SDK marks a significant step forward in making blockchain technology more accessible and user-friendly. Nebula's natural language capabilities greatly reduce the complexity of doing complex actions on the blockchain.
For detailed documentation and examples, please visit our documentation portal or join our Discord community for support and discussions.
Happy Building! 🛠️
The thirdweb TypeScript sdk v5.84.0
introduces the new engineAccount()
function, enabling seamless backend integration with your thirdweb Engine instance. This addition allows developers to leverage the full power of the thirdweb SDK and contract extensions functions in backend environments while benefiting from Engine's performance, reliability, and monitoring capabilities.
- Create Engine-powered accounts for backend transaction handling with nonce and fund management
- Full access to thirdweb SDK functions and extensions from the backend
- Built-in transaction monitoring and reliability features
This update helps backend development workflows by opening up the large catalog of extensions functions available in the SDK. The engineAccount()
function serves as a bridge between your backend services and the blockchain, handling transaction preparation, submission, and confirmation in a reliable manner.
For more information about this release, please visit our documentation or join our Discord community for support and discussions.
Happy building! 🛠️
We're excited to introduce powerful new batching capabilities in Engine v2.1.25, enabling you to execute multiple operations atomically and efficiently read from multiple contracts in a single call.
New Endpoint: /backend-wallet/{chainId}/send-transaction-batch-atomic
Send multiple transactions that will be executed together in a single atomic operation. Perfect for operations that need to happen in a specific order, like token approvals followed by transfers. Check out the API Reference for more details.
- Guaranteed order of execution
- All transactions succeed or fail together
- Single queue ID for tracking the entire batch
- Compatible with all smart account setups:
- Smart backend wallets (no additional headers needed)
- Regular backend wallets using
x-smart-account-address
header
- Previous: Each transaction got its own queue ID, executed independently
- New: Single queue ID for entire batch, guaranteed atomic execution
New Endpoint: /contract/{chainId}/read-batch
Execute multiple read operations across different contracts in a single call, with guaranteed consistency of data from the same block. Check out the API Reference for more details.
- All reads executed in the same block
- Reduced RPC calls using multicall3
- Perfect for getting related data across contracts
- Consistent state snapshot across all reads
The transaction status object now includes a batchOperations
field that provides details about all operations in an atomic batch. This field will be null for non-batch transactions:
thirdweb Engine is an open-source server for your app to read, write, and deploy contracts at production scale. Self-host for free or get a cloud-hosted Engine for $99/month.
Contract Analytics on thirdweb dashboard is now powered by thirdweb Insight
You can select a date range and see various analytics for the contract such as
- Unique wallets that have sent transactions
- Total Transactions & Events
- Breakdown of unique Functions calls & emitted Events
View this contract analytics on dashboard
Insight is a powerful tool that lets you retrieve blockchain data from any EVM chain, enrich it with metadata, and transform it using custom logic.
Whether you're building a gaming inventory system, tracking DeFi metrics, or analyzing NFT collections, Insight makes it easy to get the data you need with simple API calls. Learn more about thirdweb insight to use in your projects!
We’re excited to announce a major update to Insight API! The latest changes enhance the API’s functionality by introducing multichain support, enabling seamless data fetching across multiple blockchain networks.
- Parallel Data Fetching: Fetch data from multiple chains simultaneously, improving efficiency.
- Consolidated Responses: Responses now include
chain_ids
in the payload to identify the source chain for each piece of data. - Enhanced Response Schema: Added metadata fields:
chain_ids
: List of queried chain IDs.total_items
: Total count across all chains.limit_per_chain
: Indicates the per-chain limit derived from the request's original limit.
Only requests with supported chain IDs—validated against Thirdweb Insight’s chain list—are now processed. This ensures consistent and accurate responses.
The following endpoints now support multichain queries:
/tokens/erc20
: Consolidates token balances across chains/events
: Returns events from specified chains, preserving chain identification./transactions
: Provides transactions with proper error handling for invalid chain IDs./query
: Delivers raw query results with metadata for chain information.
Existing single-chain requests remain fully supported, ensuring no disruptions for current users.
This update lays the groundwork for future improvements on multichain queries via Insight API. As we continue to expand, our goal is to make working with multichain data as seamless and efficient as possible.
Start leveraging these improvements today to explore multichain insights more effectively!
We're excited to announce that thirdweb Insight has expanded its blockchain data querying capabilities with support for 43 chains, including these 15 new chains:
- Polygon mainnet
- Polygon Amoy testnet
- Optimism mainnet
- OP Sepolia testnet
- Celo mainnet
- Ancient8 mainnet
- Ancient8 testnet
- Plume mainnet
- Plume testnet
- Avalanche Fuji testnet
- Superposition testnet
- Etherlink testnet
- Mantle Sepolia testnet
- XAI testnet
- Lumia testnet
What This Means For Developers
With these additions, you can now use all of Insight's powerful features across these new chains:
- Query on-chain events with the Events Blueprint
- Track transactions with the Transactions Blueprint
- Monitor token balances (ERC-20, ERC-721, ERC-1155) with the Tokens Blueprint
For example, to query latest events on Optimism
View All Supported Chains
For a complete list of supported chains and their respective chain IDs, check the thirdweb chainlist.
We’re excited to share the latest updates to Nebula, bringing powerful new features, enhancements, and bug fixes to improve your development experience. This release focuses on expanding Nebula’s capabilities, making it even easier to deploy contracts, retrieve information, and interact seamlessly with the platform.
- Contract deployment support: Deploy thirdweb ERC-20 (Token), ERC-721 (NFT Collection), ERC-1155 (Edition), and Split contracts using Nebula via the chat interface or the API.
- Prompt Nebula to prepare and execute contract deployments in natural language — example, “Deploy an ERC-20 contract named “Hello World” with description “Hello world token deployed with an AI” and symbol “HELLO”
- More published contracts will be supported in upcoming releases. If you would like for your published contract to be enabled on Nebula, please contact us.
- Multi-message API: Enable multi-message on the
/chat
and/execute
endpoints to allow multi-shot prompts that can be helpful to maintain and clarify context, and refine responses. The/chat
and/execute
endpoints accept:message: string
or
- Comprehensive support for developers: Expanded resources and guidance to help developers effectively build web3 apps and games using thirdweb's extensive tooling and documentation.
- "How do i transfer erc20 tokens in .NET?”
- "How do i setup a session key in unity?”
- Build using Nebula and Eliza, a simple and lightweight framework for creating autonomous AI agents.
- Eliza plugin is current available for testing out on dev and will be available on production soon. Start with https://github.com/elizaOS/eliza/tree/develop/packages/plugin-thirdweb
Nebula is currently in Alpha for a select number of developers. For access to the product, please sign up on the Nebula waitlist.
For any feedback or support inquiries, please visit our support site.
- Additions from Thirdweb's .NET SDK Release 2.14.0
- Additions from Thirdweb's .NET SDK Release 2.15.0
- Added
AuthProvider.Backend
's relatedwalletSecret
to In-App and Ecosystem Wallets' options. You can now create server side wallets! - Split
ThirdwebManager
intoThirdwebManagerBase
,ThirdwebManager
(frontend),ThirdwebManagerServer
(backend)- Adds
ThirdwebManagerServer
prefab, usesSecretKey
instead ofClientId
andBundleId.
- Adds a lot of flexibility and extendability for various use cases.
- Adds
It's time to make blockchain-powered AI allies and opponents that leverage backend wallets and perhaps even Nebula.
Engine v2.1.24 introduces sponsored transaction support for regular backend wallets, enabled on zkSync chains leveraging native account abstraction.
Added x-transaction-mode: sponsored
header that enables sponsored transactions for regular backend wallets. This brings key benefits:
- No need to hold or manage gas tokens
- All gas costs are handled by thirdweb's paymaster
- Receive consolidated gas usage bills from thirdweb
- Compatible with local, AWS KMS, and GCP KMS wallets
To send sponsored transactions:
The header:
- Works with regular backend wallets on supported chains
- Is ignored when used with Smart Backend Wallets (their transactions are already sponsored)
- Returns an error if used on currently unsupported chains
- Update to Engine v2.1.24
- Add the
x-transaction-mode: sponsored
header - Send transactions normally through your regular backend wallet
Smart Backend Wallets handle sponsored transactions by deploying a separate smart account for your wallet. On zkSync, wallets can act as their own smart accounts - meaning your regular wallet address can send sponsored transactions directly without needing a separate smart account address.
Contact support@thirdweb.com for any questions about implementing native AA support in your application.
thirdweb Engine is an open-source server for your app to read, write, and deploy contracts at production scale. Self-host for free or get a cloud-hosted Engine for $99/month.
- Added
DropER721_Burn
,DropERC1155_BurnBatch
,TokenERC721_Burn
,TokenERC1155_Burn
,TokenERC1155_BurnBatch
contract extensions. - Overriding default RPCs is now allowed through a new
ThirdwebClient
creation parameterrpcOverrides
.
- Removed some leftover unnecessary logging.
- Additions from Thirdweb's .NET SDK Release 2.13.0
- Exposed the ability to override RPC per chain ID in the
ThirdwebManager
. - Exposed the ability to force specific wallet ids into your WalletConnect modal in the
ThirdwebManager
. - Added hover tooltips for all
ThirdwebManager
options.
Flag under ThirdwebManager > Preferences.
If enabled, Thirdweb will automatically connect to the last connected wallet on initialization (this behavior does not apply to the WalletConnectWallet provider option).
If a wallet was connected as a non smart wallet, then later upgraded, the smart wallet is saved as the last wallet, and the next session will autoconnect to the smart wallet.
Any failure during this entire flow should not throw.
We are thrilled to announce support for backend wallets! This enhancement empowers developers to programmatically access wallets through their backend systems without needing to manage private keys directly. It simplifies wallet management while maintaining security and flexibility for various use cases.
Traditionally, managing wallets in decentralized applications often required dealing with private keys or relying on client-side solutions. However, there are scenarios where programmatic access to wallets on the backend is essential, such as:
- Server-side automation: Automating blockchain interactions for services like token minting, payments, or data signing.
- Enhanced security: Keeping private keys off the client side while enabling wallet operations.
- Custom integrations: Integrating wallets seamlessly with backend APIs for complex workflows.
With backend wallet support, developers can now securely and conveniently access wallets from their backend infrastructure.
The new feature allows you to create a wallet instance on the backend using the backend
, here's how it's done with the typescript SDK:
Ready to explore backend wallet support? Try it out on all version of the thirdweb
SDK from 5.83.0
onwards.
Features 🚀
We've added beta support for EIP-7702 authorization lists. You can now construct and send 7702 authorizations with the following functions:
signAuthorization
: Generate authorization signaturesprepareTransaction
: AddedauthorizationList
parameter
Added deploySmartAccount
function to explicitly deploy smart account contracts.
Improvements 🔧
Deployed smart accounts now use the legacy signature behavior (ERC-1271) rather than ERC-6492 pre-deploy signatures.
Features 🚀
We've added the getAdminAccount
method to inAppWallet interfaces when using Account Abstraction (AA), including gasless ecosystem wallets. This addition allows developers to retrieve the admin account for AA-compatible in-app wallets.
Improvements 🔧
We've added a new onClose
callback option to Connect Details modal, providing developers with greater control over modal behavior and user interactions. The callback receives the last active screen name when the user closes the modal, enabling better UX flows and analytics.
We've also added an onTimeout
callback in useAutoConnect hook to handle connection timeout scenarios gracefully. Timeouts can happen if the user has previously connected a wallet, but we're unable to reconnect to that wallet.
Bug Fixes 🐛
We fixed an issue where smart accounts could not execute transactions on chains besides the one they were initially created on. AA transactions on chains besides the initial one now deploy the smart account on the new chain before executing the transaction
Removals and Deprecations 🗑️
We've removed co.lobstr from the available wallets list as it is not EVM-compatible
Adds the ability to Unlink a LinkedAccount
from your In-App or Ecosystem Wallet.
EIP-7702 Integration (Experimental)
Integrates authorizationList
for any transactions.
This EIP essentially allows you to set code to an EOA, unlocking a world of possibilities to enhance their functionality.
The best way to understand it outside of reading the EIP is looking at the example below; to preface it: we sign an authorization using the wallet we want to set code to. Another wallet sends a transaction with said authorization passed in, essentially activating it. The authority wallet now has code set to it pointing to an (insecure) Delegation contract in this case, which allows any wallet to execute any call through it on behalf of the authority. In this example, we call the wallet executing both the authorization and the claim transaction afterwards, the exectuor.
An authority may execute its own authorization, the only difference is internal whereby the authorization nonce is incremented by 1.
Note that for the time being this only works on 7702-enabled chains such as Odyssey and the feature has only been integrated with PrivateKeyWallet
.
Adds the ability to retrieve auth provider specific user information from In-App and Ecosystem Wallets.
SwitchNetwork
is now part of the mainIThirdwebWallet
interface. Smart Wallets now attempt to switch the underlying admin network automatically as well.ERC721_TotalSupply
extension now includes burned NFTs when using thirdweb contracts, allowing forERC721_GetAll
andERC721_GetOwned
functions to return said NFTs as well.- Various new utilities for conversions and transaction decoding, including decoding
authorizationList
.
Full Changelog: https://github.com/thirdweb-dev/dotnet/compare/v2.11.1...v2.12.0
Christmas is around the corner and thirdweb wallets have some gifts for you!
If you're using the React UI components, you should now see the options to remove accounts that you might have linked by accident.
For users on typescript, this is also available as a function
This give you more flexibility to manage users account and privacy!
Some of you have been asking for custom session tokens beyond the standard 7 days we have today and we hear you.
Starting today, you will be able to set customer session expiration if you're on custom auth endpoints on JWK.
Simply return a field exp
corresponding to the Unix timestamp in seconds that you want to session token to expire.
Sign an exp
field in the JWT payload that is signed by your server.
All these features are available today fromthirdweb@5.78.0
onwards. We have more things planned and look forward to seeing you again with more updates when the new year rolls around!
Merry Christmas and happy holidays!
We've made Engine even more reliable in v2.1.20. Here's a sample of nonce management improvements we made:
Transactions can be stuck in mempool for multiple reasons (usually chain-specific). We made improvements to more aggressively retry transactions through including:
- Retries with increasing gas (up to 10x gas).
- Retries after a fixed amount of time, even if the RPC blocks are delayed.
- Configuration to limit the max gas to spend on resends to stay within chain limits.
- Configuration to limit how long to retry a transaction for.
Engine resets the nonce when a wallet runs out of funds to ensure that after the wallet is funded, transactions are sent with correct nonces.
The Retry Failed Transactions now allows retrying any failed transactions including user operations.
Want to force a specific transaction to retry with the same nonce? Use the Retry Transaction (Synchronous) endpoint.
Advanced usage to manage wallet nonces
Most users should rely on Engine to manage and correct wallet nonces. If you want more direct control, the following endpoints allow you to directly manage Engine's wallet nonces. These endpoints are safe to run and intended to "fix" wallets that are stuck. Be warned they may cancel any pending transactions with those nonces.
The Reset Nonces endpoint was updated to optionally allow resetting the nonce state for a single wallet (by default it resets all wallets).
A new Cancel Nonces endpoint allows you to send null transactions with high gas to effectively "cancel" pending transactions using those nonces.
The small team at thirdweb is on a mission to build the most intuitive and complete web3 platform. Our products empower over 70,000 developers each month including Shopify, AWS, Coinbase, Rarible, Animoca Brands, and InfiniGods.
See our open roles. We’d love to work with you!
We just released a new package that allows you to use thirdweb's in-app and smart wallets within you wagmi app with minimal effort. Few lines of code to add web2 sign in like google, discord, passkey, etc along with ERC-4337 smart accounts that unlock gasless transactions, batched transactions and session keys.
First, install the thirdweb
and @thirdweb-dev/wagmi-adapter
packages in your wagmi app.
Make sure you're running wagmi 2.14.1 or above.
You probably already have a wagmi config with some connectors, simply add the inAppWalletConnector
to the list, along with the desired options.
Now you can connect users with the desired auth strategy. Options include email, phone, passkey, google, discord, x, telegram, github, and more.
And that's it! The example above connects your users with their google account, creates an ERC4337 smart account with sponsored transactions that you can use with the rest of your wagmi app.
Happy building! 🛠️
We previously added unified identities to the thirdweb SDK, allowing users to link multiple profiles as valid authentication options within your app. However, you couldn't tell which provider they had signed in with for the current session. In thirdweb v5.77.0, we've added the getLastAuthProvider
utility to the React module, allowing you to retrieve the most recently used provider from within any web context.
- Fixed a caching issue in our new headless components
Users can now publish their contracts with contract references in deploy params.
What this means is, if there are address params in your contract's constructor, you can provide a reference to another published contract for those params. These reference contracts will then be deterministically deployed before deploying your contract.
You can specify these references in publish form as shown below:
For e.g., _owner
param is of type address
and allows publisher to specify a contract reference. You can do this by selecting Dynamic Input
and providing details of the published contract. Please note that the contract being set as reference should be a published contract with default values pre-filled.
You can also setup a chain of such references, i.e. a referenced contract has another reference contract in its deploy params, and so on.
In addition to the address
type, you can also provide dynamic inputs for bytes
params. For e.g., if the bytes param is composed of address
, uint256
, and bool
, you can specify these values instead of giving an encoded bytes value. These will be encoded during deployment. The address param within this bytes param can again be a dynamic reference. See below:
This feature works for address[]
and bytes[]
params too.
Engine is used by web2 and web3 companies for production use, powering 10M+ transactions per week. Making sure your Engine is secure and your funds are safe are critical, so here's security improvements we made (v2.1.20) and what's coming up.
We've completed our second code and infrastructure assessment from an independent third party auditor and will be sharing the report shortly.
No critical vulnerabilities were identified, and all reported issues were addressed.
- Improved CORS response handling. Clearer logs + responses if calls are made from invalid origins.
- Added modern browser security headers to restrict unused permissions (embedding, geolocation, camera, etc.).
- Updated dependencies to address publicly reported vulnerabilities.
singlePhaseDrop
added to allclaim-to
endpoints allowing users to set claim conditions and claim tokens in a single phase for custom drop contracts.gasPrice
can now be overridden allowing users to explicitly set the gas price for pre-EIP1559 chains.- Post-EIP1559 chains should continue to use
maxFeePerGas
andmaxPriorityFeePerGas
overrides, if needed.
- Post-EIP1559 chains should continue to use
- All
/mint-to
endpoints were updated to thirdweb v5 SDK and should have greatly improved response times. - Idempotency keys up to 200 characters are now supported.
- The codebase is updated with better organization and code standards, and we're enforcing linting rules moving forward.
The small team at thirdweb is on a mission to build the most intuitive and complete web3 platform. Our products empower over 70,000 developers each month including Shopify, AWS, Coinbase, Rarible, Animoca Brands, and InfiniGods.
See our open roles. We’d love to work with you!