Changelog

We've added Transak to our suite of supported onramp providers in the Universal Bridge. Along with Coinbase and Stripe, Transak brings the total supported countries to over 160, and supported direct onramp tokens to over 170. Explore all the countries and tokens Transak supports.
When used with Universal Bridge, our onchain routing allows you to onramp to thousands of tokens. Some of the notable countries the Universal Bridge now supports:
- Philippines
- South Korea
- Brazil
- Japan
- Indonesia
- Hong Kong
To get an onramp link and quote using the Universal Bridge API, use the following:
The returned quote will look something like this:
You can then use the top-level id
to get the onramp's status:
The returned status:
To learn more about how to use thirdweb's Universal Bridge for onramping, bridging, or swapping, check out the API reference or docs.

We've improved token balance fetching in the PayEmbed
for near-instant balance display. We check thousands of tokens for possible routes and return any the user can use to perform their desired transaction in less than a second.
The improved performance is available as of TypeScript SDK v5.99.0. Try it out for yourself on the thirdweb playground.

Version 5.99.0 of the TypeScript thirdweb SDK brings first-class support for EIP-5792. The new implementation streamlines how you batch calls, sponsor gas and track confirmations, while aligning our API with the final EIP-5792 spec.
Highlights:
- New React hooks – useSendAndConfirmCalls, useWaitForCallsReceipt
- Simpler useSendCalls / sendCalls signatures – no more explicit client prop, aligned return types with v2.0.0 of the EIP
- Decoupled receipt handling for flexible UI handling of receipts
- Easy wallet-capability detection
As usual, you can try out the integration on the live playground:
TypeScript (node / backend)
React (front-end)
1 – Fire-and-forget, then wait for the receipt
2 – One-liner helper
The previous version of the SDK had beta support for 5792, which got some breaking changes in this version, listed below:
React
Before | After |
---|---|
useSendCalls({ client }) returned string bundleId | useSendCalls() returns { id, client, chain, wallet } |
useSendCalls({ waitForBundle: true }) returned receipts | Waiting is now decoupled; use useWaitForCallsReceipt |
N/A | New helper useSendAndConfirmCalls combines both steps |
TypeScript / non-React
Before | After |
---|---|
type SendCallsResult = string; | type SendCallsResult = { id: string; client: ThirdwebClient; chain: Chain; wallet: Wallet } |
getCallsStatus(bundleId) | getCallsStatus(id) (field renamed) |
Any existing code that relies on the old return type must now read result.id and call waitForCallsReceipt (or the React hook) to obtain transaction receipts.
We recommend upgrading as soon as possible to leverage gas sponsorship and the simplified developer experience. For a full diff, see PR #7003 on GitHub.

As soon as the Pectra Ethereum Upgrade was released, so were our next-gen 7702 smart accounts - read more about them here!
Today, we introduce support for more chains that upgraded to Pectra!
TypeScript / React
.NET / Unity

This release includes significant improvements to the Nebula agent's architecture, entity memory management, error handling, and documentation search capabilities. Key updates focus on simplifying blockchain entity handling, improving transaction management, supporting more content types in chat, and enhancing error messaging for a better user experience.
- New Content Support in Chat
- Add support for image and transaction content types in chat messages
- Enable transaction hash messages for blockchain status checks
- Enhanced Entity Management
- Simplify loading entities by type with a cleaner implementation
- Improve entity memory formatting for better readability
- Reduce database operations for improved performance
- Add user wallet as parsed entity for better context
- Documentation and Search Improvements
- Implement new LLMs documentation search with better context retrieval
- Add URL to web search results for better source attribution
- Format blockchain entities as links in responses
- Improved Error Handling
- Better error messaging for deployment and payment issues
- Add instructions to help users correct chain context issues
- Support graceful error handling in streaming responses
- New agent action types for better request handling
- Support for image and transaction inputs in chat messages
- More structured error responses with helpful suggestions
- Revised agent action structure to use more specific types
- Updated event streaming format for better client compatibility
- Fix undefined behavior when no routes found in Universal Bridge
- Handle payment required errors from storage service
- Fix wallet balance formatting and improve entity display
- Ensure price and token supply data is displayed correctly
Ready to try out all these new features? Give it a spin at https://nebula.thirdweb.com!

We just added Universal Bridge support for $HONEY, Berachain's stablecoin. You can now pay with or accept HONEY for any transaction on any chain.


Introducing Engine Cloud — read and write to the blockchain at scale, without the cost or complexity of traditional blockchain API setups.
Engine Cloud is our answer to lowering the barrier to developing high volume applications onchain- with fully-hosted, scalable APIs that let you perform on-chain actions from your backend. No upfront costs. Only pay-as-you-go.
It includes a non-custodial way to manage your wallets and ready-to-go API calls that do things like mint NFTs, transfer tokens, airdrops, sponsor gas for users — on any contract, across any EVM chain.
Engine Cloud includes:
- Server Wallets managed via Vault (our new key management system)
- New Transaction Gateway with retry logic, nonce management, and sub-second speed
- New transaction API improved DX, new typescript SDK integration, and more
- Secure, granular access tokens to work with multiple wallets and teams via vault access tokens and permissions
- No more manual gas top-ups or alerts— we handle that for you by topping through our paymasters from your payment on file.
Learn more about use cases and benefits of using Engine Cloud.
- Create a thirdweb project — this will include a ready-to-go Engine server for you to start making API calls on.
- Get your Vault Admin Key + Access Tokens — via the dashboard. Learn more about Vault.
- Create a server wallet — for secure, granular signing and management. You can create one or multiple server wallets.
- Start calling the API — write and send transactions from your backend using the simple API endpoints. All API endpoints can be accessed via the dashboard or through the API reference.
Engine will be free during beta without charging for any requests until May 19th. You can integrate it to your application today.
For any questions or feedback, please reach out to our support team.

EIP-7702 unlocks a new capability for externally-owned accounts (EOAs): the ability to behave like smart contract accounts. The latest SDK let you enable 7702 on any of your in-app wallets with one line of code, giving your users gas-sponsored, batched and automated transactions faster and more efficiently than ever before.
Once an in-app wallet is running in EIP-7702 mode you can:
• Sponsor gas so users can sign transactions with zero ETH in their balance.
• Batch transactions so multiple contract calls clear in a single signature.
• Add session keys to automate on-chain actions safely (think scheduled mints, subscription based payments or game loops).
• …and any other capability you’d expect from smart accounts—all while your user keeps their familiar EOA address.
All it takes is a tiny config change.
But what about EIP-4337 smart wallets?
In our testing, using 7702 is up to twice as fast and orders of magnitude cheaper than using 4337 smart contract wallets!
Don't take our word for it, try it yourself on the live playground:
https://playground.thirdweb.com/connect/account-abstraction/7702
In-app wallets lets you create wallets for your users based on standard logins like email, passkey or Google. Below are drop-in examples to turn those wallets into 7702 smart accounts for every stack the thirdweb SDK supports today.
TypeScript / React
. NET / Unity
Heads-up EIP-7702 only works on chains that enable it. Ethereum mainnet and Sepolia already support it, with more coming soon; keep an eye on the thirdweb blog for other chain activation dates.
Don’t want to embed an in-app wallet? No problem. EIP-5792 lets you tap into the same 7702 capabilities from any external wallet—like Metamask and Coinbase Wallet —via the sendCalls
RPC method.
Sponsoring Gas & Batching Transactions
The useSendCalls
React hook (or the plain sendCalls
function in vanilla TypeScript) lets you bundle multiple calls into one and attach a paymaster so your dApp covers the gas:
Thie enabled single signature, gas-free, batched execution on exernal wallets like Metamask!
Documentation links: React API | TypeScript API
Upgrade your thirdweb SDK to the latest version, flip on executionMode: "EIP7702"
or use EIP5792's sendCalls
, and your users instantly level-up to smart-account features—no new wallets, no migrations, just better UX.
Got questions or feedback? Jump into the thirdweb Discord and let us know what you’re building!

With the latest release of Universal Bridge, we've added a number of new filters to make building advanced payment UIs more convenient. These are available starting in v5.97.0 of the TypeScript SDK.
The /routes
endpoint (API) and Bridge.routes
function (SDK) now have an optional sortBy
option to determine how the returned routes will be ordered. The first option we've made available is sortBy: "popularity"
, which will ordered the returned routes based on the number of times they've been used. The following will return the 10 most popular routes originating from ETH on mainnet:
The maxSteps
filter already allows you to filter routes
based on the number of steps required to fulfill a routes. With this update, we've added this same option to the Buy.quote
, Buy.prepare
, Sell.quote
, and Sell.prepare
functions, as well as their corresponding API endpoints. You can now guarantee the quote returned uses a certain number of steps or fewer:
We've added a new endpoint and SDK function to get all chains supported by Universal Bridge along with their name, icon, and native currency.
This will return:
- Fixed an issue where Coinbase onramps were not returning the associated transaction hash
- Fixed routes returning the zero address rather than the native token address

You can now verify a domain for your team!
- Teams can verify their domain (e.g.
@yourcompany.com
)
→ When logged in, navigate to Settings`→ General and scroll downDomain Verification
to verify your domain. - To complete the verification, you'll need to add a DNS TXT record to your domain. This part must be completed through your domain provider's dashboard.
- Please note you may only verify one domain per team.

- Verified badge: Your team gets a special badge, so it’s easier to confirm you're in the right place.
- Recommended team members: On the
Settings → Members
page, you’ll see users with emails that match your domain but aren’t in the team yet — making it super easy to invite everyone on the team.
- Instant invite alerts: Team owners will get a notification (in the dashboard and optionally via email) when someone signs up with your verified domain — with a 1-click invite option.
- Recommended teams for users: New users with a matching email domain will see teams they can request to join, giving team owners control to approve or deny.
For any questions or support please reach out to our support team.


In preparation for Ethereum’s upcoming Pectra upgrade this May, the thirdweb Pack contract has been officially deprecated and is no longer deployable via the dashboard, SDK, or CLI.
Important: Existing Pack contracts are not compatible with the Pectra upgrade.
We strongly recommend that users abandon or conclude any unopened packs as soon as possible to avoid potential issues once the upgrade goes live.
For any questions or support, please reach out to the official thirdweb team support channel.

TL;DR: Update your SDK to 5.96.9+ to fix external wallet mobile connections.
A recent chrome update introduced a change in websockets that broke Wallet Connect connection flows on mobile. This resulted in users not being able to connect their wallets to mobile websites, infinitely loading. All wallet providers were affected. A bug fix was shipped by the Wallet Connect team to support the latest version of Chrome, and we immediately adopted the new version in the latest version of the thirdweb SDK.
Version 5.96.6 and above includes the fix, so update your library to resolve this issue.

Nebula v0.0.12 brings significant improvements to the user experience and functionality. This release focuses on enhancing transaction management, adding support for NFTs and tokens, and improving the overall user interface. Key highlights include improved deployment workflows, better transaction formatting, and new token management capabilities.
- More sophisticated entity tracking system
- Better persistence of blockchain interactions
- Enhanced context enrichment for more relevant responses
- Add ERC20 token transfer and approve functionality
- Transferring tokens between addresses
- Granting spending allowances to contracts
- Add ERC721 transfer support for NFT management
- Add minting capabilities
- New NFT minting tool for creating digital collectibles
- Token minting functionality with improved user feedback
- Support for images in tokens and NFTs
- Add rendering support for NFT and token images on the frontend
- Enhanced deployment workflows
- Improve deployments to include more detailed information as markdown
- Support multi-stage deployments for complex contract setups
- Better UI feedback during deployment processes
- Transaction array support
- New functionality to handle batched transactions
- Unify simulation and execution outputs
- Consistent formatting for all transaction operations
- Better readability of transaction details
- Add rate limit checks to RPC calls
- Prevent API throttling issues with improved handling
- Fix native transfer rendering
- Correct display of native token transfers in UI
- Fix deploy UI issues
- Address multiple UI bugs in the deployment interface
- Fix early yielding creating duplicate UI cards
- Fix contract output when metadata is missing
- Better handling of contracts with missing information
- Token Bridging / Swapping (Universal Bridge) fixes
- Switch to new endpoints for improved reliability
- Fix ABI handling for better contract interaction
- Fix image parsing
- Correct handling of image data in responses
Try it out today at https://nebula.thirdweb.com!

There are 2 changes to the Insight API to improve usability and fix a numeric overflow in Javascript.
The NFT and Token transfer endpoints have been changed and now the owner_address
query param is not mandatory anymore, enabling queries for all transfers on a chain.
Since this query can be heavy, we also added block number filters. You can narrow down the query using block_number_from
and block_number_to
query params.

Since Solidity supports numbers larger the Javascript's max number, APIs consuming the decoded events and transactions would receive some numeric values in scientific notation, losing precision.
We updated the decoded data to return large numeric values as string to prevent this. This is what a decoded transaction would look like now
Note that the _value uint256
input is returned as string 4179950264410000000000
📖 Learn more about Insight - it’s open source and ready to power your applications!

This release introduces new image generation capabilities, improves error handling for rate limits, and fixes several key components including IPFS functionality and token minting. Performance optimizations have also been implemented to make token queries faster.
- Add image generation functionality - Implement new image generation capabilities. Create assets with generative artwork in a single prompt!
- Improve rate limit handling - Add ability to gracefully abort execution when API rate limits are reached
- Optimize token information retrieval - Add option to exclude price data for faster query performance
Check it out at https://nebula.thirdweb.com

The latest thirdweb typescript SDK release - v5.96.4 - adds a new way to make the Connect modal feel like your own by adding custom metadata to in-app wallets.
In wide mode, you can customize the name and icon of your in-app wallet in the list of wallets, and the image above the login options separately.

In compact mode, only the image above the login options is displayed.

Simply pass your app metadata along the other options when creating your inAppWallet
, then pass it as one of the available wallets
in the ConnectButton
or ConnectEmbed
.
Happy building! 🛠️

This release focuses on improving reliability, performance, and user experience with several key enhancements:
- Universal Bridge: Enables bridge and swapping
- Search: Enhances search capability to improve onchain knowledge and optimizes thirdweb documentation search and access
- Contract Interaction: Simulates transactions result and improves contract information retrieval
- Performance: Improves contract interaction latency and performance
- Improves token balance display with native token support
- Fixes intermittent failure when interacting with newly deployed contracts
- Improves error message formatting with actionable suggestions
- Improves handling of missing contracts with better error messages

This release significantly enhances Nebula's blockchain integration capabilities with a focus on improved multichain support, better token and NFT handling, and more robust authentication.
The model has been upgraded to provide more accurate and consistent responses more quickly. Users can now see the model's step-by-step thinking process as it performs tasks.
New approach to chain management. By default, only mainnet chains are enabled, to enable testnet requires setting context.networks = "testnet"
in the /chat
endpoint. The Chain IDs in the context may also be updated through conversations.
Breaking Changes 🔨
- Model Updates: Experience more accurate and consistent responses with the improved
t0_003
model. - Chain Management: Defaults to mainnet only. Enabling testnets require specific flag in the context. By setting,
context.networks = "testnet"
- Delegate Auth: Create a SIWE delegated auth tokens for scoped API access to chat and session.
Features ✨
- Guided Tool Prompts: More accurate tool selection by AI agents, resulting in fewer errors and more relevant responses.
- Improved Output Consistency: More standardized and predictable response formats, making automated parsing of outputs more reliable.
- Chain ID Parameter Prioritization: Explicit control over which blockchain they're interacting with, reducing confusion and errors from context-switching
- Comprehensive Blockchain Data Retrieval: Access detailed information about blocks, transactions, and events, enabling more complex analyses within the tool.
- Multi-chain Insight Support: Perform cross-chain operations and comparisons without needing to use separate tools or interfaces.
- Domain Name Resolution: Interact with human-readable domain names (like ENS) instead of complex addresses, improving usability.
- Human-readable Timestamps: See dates and times in standard formats rather than UNIX epochs, making information immediately understandable.
- Creating Assets: create different token standards (ERC20, ERC721, ERC1155) more easily.
- NFT Collection Name Display: Friendly collection names rather than just contract addresses, making NFT identification more intuitive.
- Better Wallet Balance Display: Updated token balances with proper decimal divisions, showing correct human-readable amounts. Correct token names for native blockchain currencies (e.g., ETH, MATIC).
- Nebula Auth Method: Developer can delegate scoped account access, improving security while maintaining functionality.
- Smart Account Validator: Smart contract wallets (using ERC-1271 and ERC-6492) can now authenticate with Nebula Auth.

We just released one of our biggest updates yet to the Universal Bridge API. These changes will be coming soon to the SDK and UI components.
The new response schema includes a steps
field, which gives you all the info you need to build a comprehensive bridge and swap UI. This includes token metadata, price, expected execution time, input and output amounts, and the transactions to be executed.
A buy, sell, or transfer prepared quote will now look something like this:
Onramp quotes will now have the following schema:
The steps
are to be completed after the use has done the initial onramp.
You can find all this and more in our API reference docs.
steps
parameter for all quotes with prepared transactions and estimates- Faster approximate quote responses
- Onramping with post-onramp cross-chain swaps
- Fiat quote included in onramp responses
- Removed ZK chains from intermediate steps, due to inconsistent addresses when using smart wallets

We have added CLI and SDK support for Stylus contracts.
This allows developers to use thirdweb CLI to create, publish, and deploy their contracts written with Stylus. The deployed contracts can be used via thirdweb dashboard or SDK.
- Rust toolchain should be installed (https://www.rust-lang.org/tools/install)
- Solidity (solc) should be installed (https://docs.soliditylang.org/en/latest/installing-solidity.html)
You can also use the Stylus quickstart guide for reference: https://docs.arbitrum.io/stylus/quickstart
Setup a starter repo (can be skipped if you already have a Stylus project)
npx thirdweb create-stylus
This will setup a project containing a template contract.
You can now publish this contract by running the publish command:
npx thirdweb publish-stylus -k <YOUR SECRET KEY>
Publishing a contract saves the contract metadata to an onchain registry, and creates a contract page from where you can deploy a specific version of this contract multiple times.
This is how it will look:

Alternatively, you can use the deploy command to do a one-time deployment:
npx thirdweb deploy-stylus -k <YOUR SECRET KEY>
After deployment, the contract will be available on thirdweb dashboard. You can interact with it via dashboard or integrate it in your app using the code snippets as shown below:


We've significantly increased the number of onramp routes available in the Universal Bridge widget. You can now onramp to chains like Mantle, Unichain, Lens, Treasure, and more. No SDK upgrade necessary. Try it out on the bridge page here.

We’ve fixed the issues with how metadata links are resolved — and introduced a new way to give you control over it.
- Fixed a bug where metadata responses sometimes included incorrectly resolved URLs.
- Added validation logic to detect bad URIs in cached or stored metadata — and automatically re-fetches only the original source.
- Introduced a new
resolve_metadata_links
parameter (default:true
) to all NFT endpoints which can return metadata. - When set to
false
, the response will return original links such asipfs://
andar://
, instead of their resolved HTTP versions.
This gives clients full control — whether you want cleanly resolved URLs or raw metadata as authored on-chain.

We're excited to announce a major enhancement to the thirdweb TypeScript SDK that will significantly improve the developer experience when building blockchain applications. With release 5.95.0
, we've supercharged the SDK by integrating it with Insight - our in-house indexer - replacing traditional RPC calls for fetching contract state, events, balances, NFT metadata, and more.
The Power of Insight
Until now, the thirdweb SDK has relied primarily on RPC calls to fetch on-chain data. While functional, this approach sometimes faced limitations in terms of speed, reliability, and functionality. By integrating Insight directly into our SDK, we've addressed these challenges head-on, offering:
- Significantly faster queries for contract events, balances, and NFTs
- Enhanced reliability with reduced dependency on mutli roundtrip RPC calls
- Cross-chain functionality that lets you query data across multiple blockchains in a single call
- Advanced filtering capabilities for more precise data retrieval
The Connect UI modal now uses Insight to give your users a full wallet experience directly in your websites:
- Shows all ERC20 token balances
- Show all NFTs
- Shows past transactions of the connected wallet
You can now view all your tokens and NFTs in the connect modal
Your favorite thirdweb functions have been turbocharged with Insight integration:
getContractEvents
getOwnedNFTs
getNFTs
getNFT
These functions now automatically leverage our indexer on supported chains, with a graceful fallback to traditional RPC calls when needed.
If you're already using those functions in your app, no changes needed on your end, you'll just get the improved functionality out of the box.
If for any reason you need to turn off that behavior, you can pass useIndexer: false
to always use RPC.
We've added a dedicated Insight
namespace with powerful new functions:
Insight.getOwnedTokens()
- Get ERC20 tokens owned by an address across multiple chainsInsight.getOwnedNFTs()
- Get NFTs (ERC721 and ERC1155) owned by an addressInsight.getNFTs()
- Get NFTs (ERC721 and ERC1155) for a given contractInsight.getNFT()
- Get NFTs metadata for a given contract and tokenIdInsight.getTransactions()
- Get all transactions for a given wallet addressInsight.getContractEvents()
- Query indexed events with advanced filtering options
You can import those with import { Insight } from "thirdweb"
For developers who need direct access to our indexer API, we've released a standalone package: @thirdweb-dev/insight
. This lightweight API wrapper provides:
- Typed functions, request bodies, and responses
- Always stays in sync with the Insight API
- Perfect for backend applications requiring optimized blockchain data access, without the rest of the SDK
For the existing functions, you will get the improved functionality out of the box without any changes. If you want to use the new multichain capabilities directly, here's some examples using the new Insight
namespace:
With just a few lines of code, you can now retrieve all ERC20 tokens owned by an address across Base, Polygon, and Arbitrum networks simultaneously!
For developers who want low level access to the Insight API with type-safe functions, here's how to use the standalone @thirdweb-dev/insight
package:
These functions will map one to one with the Insight OpenAPI spec and will stay in sync as the service changes.
These new features are available now in thirdweb
SDK v5.95.0 and the new @thirdweb-dev/insight
v1.0.0 package.
To get started:
Looking for dotnet/unity? It's already out, head over to the dotnet documentation to learn more.
This Insight integration is just the beginning. We're continuously working to enhance the thirdweb developer experience with more powerful indexing capabilities, additional cross-chain functionality, and deeper integration with our developer tools ecosystem.
Stay tuned for more updates, and as always, happy building!
For more detailed documentation on these new features, visit portal.thirdweb.com.

Insight adds more data to token price API to also return market data, historical price data and holder count in addition to the price!
The following data is now included by default for each token:
percent_change_24h
- Percentage change of the price over the last day
volume_24h_usd
- Trading volume in USD over the last day
volume_change_24h
- Percentage change of volume over the last day
market_cap_usd
- Market cap value in USD
By specifying include_holders=true
query param the number of on-chain holders of the token will also be returned
By including include_historical_prices=true
query param, the response will contain a list of token prices per hour over the last 30 days.
Here is an example response for USDC on Ethereum
Try it out in our playground

📖 Learn more about Insight - it’s open source and ready to power your applications!

We're constantly working to improve the developer and administrative experience of ecosystem wallets. Today, we're excited to announce two significant enhancements to Ecosystem Wallets, designed to give you more flexibility and control:
- Unified User Search: Find users faster, regardless of the address you have.
- Better Ecosystem Analytics: You can now see how each partner brings users to your ecosytem over time
- Collaborative Partner Management: Empower your team to manage ecosystem partners and rules directly.
Let's dive into the details:
Managing users within your ecosystem just got easier. When you enable Account abstraction for you ecosystem, you can now query with users based on their originating Externally Owned Account (EOA) or their deployed Smart Account address. Previously, only EOA search was allowed.
What's New:
- You can now search for specific users within the Ecosystem Wallets dashboard using either their Signer Address (EOA) or their specific Smart Account address associated with your project.
How to Use:
You can also use the backend API directly.
You can now view how much each partner is contributing to your ecosystem over time. Previously you could only see overall stats for the ecosystem.
What's New:
- Your ecosystem dashboard now shows connection analytics broken down by partner. So you can measure the success of each partner in your ecosystem.
How to Use:
- Simply navigate to your ecosystem page in the dashboard, and go to the analytics tab to see the new stats.

Managing the partners and rules that govern your ecosystem can now be done by anyone in your team. Previously, these configurations might have been restricted to the team owner.
What's New:
- Authorized team members within your thirdweb project now have the ability to add new Ecosystem Partners and edit the configurations and rules for existing partners directly from the dashboard.
How to Use:
- Team members with appropriate permissions can access the Ecosystem Partner configuration section within the thirdweb dashboard to add or modify partner details and rules. (Ensure your project's team roles are configured accordingly in the thirdweb dashboard settings).
These updates are live now in your thirdweb dashboard and SDKs.
Happy building!

We’ve just completed a full rollout of metadata performance upgrades across all NFT-related API routes — and started extending the same treatment to ERC20s.
Every API call involving NFT metadata now performs a single, efficient data read per request — even for multichain queries. Whether you're pulling transfers, balances, or metadata directly, things just got a whole lot faster.
🚀 Performance Gains: NFT Metadata Latency Drops by 10x+
We’ve slashed the latency for NFT metadata queries — and the numbers speak for themselves. For example, data for GET /v1/nfts/:contract_address
Metric | Before | After | 🔻 Improvement |
---|---|---|---|
p50 | 103 ms | 5.9 ms | ~17× faster |
p75 | 152 ms | 13.4 ms | ~11× faster |
p90 | 243 ms | 54.8 ms | ~4.4× faster |
p95 | 327 ms | 99.3 ms | ~3.3× faster |
p99 | 464 ms | 192.1 ms | ~2.4× faster |
p99.9 | 555 ms | 242.3 ms | ~2.3× faster |
Max | 756 ms | 290.2 ms | ~2.6× faster |
GET /v1/nfts
andGET /v1/nfts/transfers
also saw solid improvements in the ~1.1× to 2.9× range, with reduced tail latencies and smoother performance across the board.- Not just faster — more consistent, with reduced tail latencies and fewer spikes in production.
- These performance gains are now live for all metadata queries hitting the NFT endpoints.
We’ve started persisting ERC20 metadata as well, laying the foundation for more efficient token balance queries with rich metadata. Stay tuned — optimized joined queries are on the way.
We’ve consolidated NFT balance queries under a single route:/v1/nfts/balance/{ownerAddress}
This new endpoint works across ERC721 and ERC1155 standards, supports multichain queries out of the box, and is the one we recommend going forward.
Heads up: the old ERC721/ERC1155-specific balance endpoints are still live, but are now officially deprecated.
This makes it easier than ever to query, display, and work with NFTs and tokens at scale — with less overhead and more consistency.

Insight adds two new endpoints - one to lookup a token based on symbols and one to retrieve an NFT collection's metadata.
Search for tokens by their symbol across 6000+ tokens.
Symbols are not unique nor strictly curated however, so be careful with how you use them!
To fetch all tokens with symbol ETH
on Ethereum and B3
Try it out in our playground

Get metadata about an NFT collection.
By including a include_stats=true
query param, you can also get the following statistics about a collection:
owner_count
- Amount of distinct addresses that hold the NFTsmint_count
- Amount of NFT tokens that have been mintedtoken_count
- Amount of distinct token IDs that currently existtotal_quantity
- Amount of tokens that currently exist
Try it out in our playground

📖 Learn more about Insight - it’s open source and ready to power your applications!

We're excited to announce that thirdweb Insight has expanded its blockchain data querying capabilities to 84 chains, adding these 17 new chains:
- Shape
- Unichain Sepolia
- Forma
- Flare
- Flare Coston2
- Berachain
- Berachain Bepolia
- Plume testnet
- Lens
- Mode testnet
- Blast Sepolia
- Arbitrum Nova
- World Chain Sepolia
- 0g Newton testnet
- Scroll Sepolia
- Linea Sepolia
- MegaETH testnet
What This Means For Developers
With these additions, you can now use all of Insight's powerful features across these new chains.
Try them out on the playground!
View All Supported Chains
For a complete list of supported chains and their respective chain IDs, check the thirdweb chainlist.
📖 Learn more about Insight - it’s open source and ready to power your applications!

We've added support for MAGIC on Treasure (61166) and GHO on Lens (232) to our Universal Bridge, bringing the total number of routes available to over 35,000. Check out the full API reference here to get started, or try it in the playground.

We’ve rolled out a series of performance upgrades across the board to make NFT metadata queries faster, smarter, and more reliable than ever.
- NFT metadata, ownership info, and token data are now pulled in a single optimised query internally, reducing the number of round trips and improving latency consistency.
- This makes NFT-related endpoints much more consistent at scale.
- Metadata is now fetched on-demand only when needed, skipping unnecessary lookups for already known or irrelevant data.
- We've introduced a system to automatically skip refetching metadata that’s deemed not worth roundtrips — improving efficiency without losing accuracy.
- Queries for metadata are now parallelised, making better use of compute resources.
- Owner and balance aggregations are now handled more effectively, ensuring both speed and correctness in multi-owner or high-traffic collections.
- Fixed a major issue where NFT transfers were duplicated across chains. Transfer data is now properly filtered per chain, ensuring clean and accurate results.
- Transfer endpoints now properly correlated to chain identification to avoid any confusion in multichain contexts.
All of these improvements won’t just apply to NFTs — we’re extending the same performance, consistency, and metadata logic enhancements to ERC20 tokens as well.
🔁 What's next? All of these improvements won’t just apply to NFTs — we’re extending the same performance, consistency, and metadata logic enhancements to ERC20 tokens as well.
💡 Result? lower and more predictable response times, better metadata hygiene, and fewer redundant operations — even across large multichain datasets.
Let us know what you think — or better yet, try it out and feel the speed.

Ever wondered if your token is supported on Universal Bridge? You can check all routes for a given token using the routes page. Search by chain ID, token address, token symbol, or name for all origin and destination routes. You can access the site at thirdweb.com/routes.

You can use the transactions
array returned by a Universal Bridge prepared quote to easily execute a full route from origin to destination. This pattern is now even easier with transaction action
fields included to denote what each transaction does. The most important of these actions is the approval
type, which represents a pre-assembled approval transaction. The approval will account for the sender's existing set allowance and what token is needed for the next step.
A quote response might look something like this:
To execute this bridge with the TypeScript SDK, use sendAndConfirmTransaction
to send each transaction, and wait for a successful Bridge.status
response for each non-approval transaction:
It's that easy to implement bridging and swapping in your app. Want to get started? You can find the full API reference here.

Insight now supports webhooks so you can build pipelines and receive notifications when specific blockchain events or transactions occur!
With the introduction of webhook support in Insight, you can now seamlessly integrate blockchain data into your applications or workflows. Webhooks allow you to automatically receive near real-time notifications whenever specific blockchain events or transactions occur, eliminating the need for constant polling of the blockchain.
- Automate Workflows: Trigger actions in your applications or services when a specific blockchain event happens (e.g., a token transfer, contract interaction, or wallet activity).
- Monitor Blockchain Events: Stay updated on relevant events without manually querying the blockchain.
- Build Custom Pipelines: Use webhooks to feed blockchain data into analytics tools, databases, or other systems for further processing.
- Filter Specific Data: Configure webhooks to only receive notifications for events or transactions that meet your specific criteria, such as a particular contract address or event type.
Yes! Insight webhooks provide decoded data for events and transactions. This means you’ll receive human-readable payloads that include all relevant details, such as parameters and values associated with the event or transaction. This makes it easier to process and use the data directly in your applications without additional decoding steps.
To enable this, you have to define specific event signatures / function signatures and partial ABIs in the webhook filter configurations.
For more details on setting up and managing webhooks, visit the following resources:
📖 Learn more about Insight - it’s open source and ready to power your applications!


We’ve released the Agglayer Module, designed to enable secure and seamless cross-chain transfers of ERC-20 tokens using Agglayer, an interoperability protocol. Learn more about Agglayer.
Please note: This module is currently in beta while the Agglayer bridge is not live in implementation. This means deployments are limited to Sepolia and Cardona as it requires Ethereum as an L1 and zkEVM as L2.
The Agglayer Module is a module contract that can be added to any ERC-20 modular contract built with thirdweb’s modular framework. It allows developers to bridge ERC-20 tokens across any EVM-compatible chain.
As the Ethereum ecosystem continues to grow with the introduction of more Layer 2 networks, fragmented liquidity and isolated user experiences have become major challenges. Without interoperability, assets are locked within specific chains, limiting usability and adoption.
The Agglayer Module helps address this by enabling interoperability at the contract level—allowing tokens to move freely across chains, reducing fragmentation, and improving the overall developer and user experience.
- EVM-compatible – Works across all EVM chains
- Modular and upgradeable – Can be installed or removed from any ERC-20 modular contract
- Dashboard integration – Easily install through the thirdweb dashboard with no additional configuration
- Cross-chain functionality – Mint tokens and send them to other chains seamlessly
- The module currently only works with ERC-20 modular contracts
- It must be installed on the contract in order to function
- Use or deploy an ERC-20 modular contract
- Add the Agglayer Module through the thirdweb dashboard
- Mint and bridge tokens as needed
As always, please don't hesitate to contact us for any questions or support.

Insight added support for querying a wallet's transactions (both inbound and outbound). Previously this had to be two separate queries, but can now be done by a single query.
Try it out in our playground

To fetch a wallet's transactions on Ethereum
📖 Learn more about Insight - it’s open source and ready to power your applications!

With v5.93.0 of the TypeScript SDK, we've added full beta functionality for thirdweb's new Universal Bridge. The bridge currently covers 50+ chains and over 30,000 routes.
- Bridge.Buy - Specify an exact destination amount to receive
quote
: Get estimates without a wallet connectionprepare
: Get finalized quotes with transaction data
- Bridge.Sell - Specify the exact origin amount to send
quote
: Get estimates without a wallet connectionprepare
: Get finalized quotes with transaction data
When you call prepare
, you might get multiple transactions back. You must send all transactions in order and sequentially for the full route to succeed. Before sending each transaction, call Bridge.status
for the previous transaction until it returns COMPLETED
. Do not simply wait for the transaction receipt, as this doesn't account for the destination chain transaction (if there is one).
The transactions returned do not include approvals. Send any necessary approvals before their corresponding transactions.
- Bridge.routes - Advanced function to discover and filter available bridge routes
- Filter by token address, chain ID, or both
- Full pagination support with customizable limit and offset
- Bridge.status - Comprehensive transaction status tracking
- Clear status indicators: "COMPLETED", "PENDING", "FAILED", or "NOT_FOUND"
- Detailed transaction reporting including origin and destination amounts and chains
- Standardized error handling with descriptive, formatted error messages
- Four underlying types are exported for use with the bridging functions:
Route
: Defines bridge routes between chains and tokensStatus
: Represents bridge transaction status dataQuote
: Contains detailed bridge transaction quote informationPreparedQuote
: Extends Quote with complete transaction data
The Bridge module is accessible as a top-level export:
Use Bridge.Buy
, Bridge.Sell
, Bridge.routes
, and Bridge.status
to access the corresponding functionality.
Or, import the functions directly from the module:

We've built Universal Bridge to allow your users to use any asset on any chain, and it's ready for you to try.
This integration simplifies onchain asset trading, and we've added extensions in .NET to integrate with any IThirdwebWallet
nicely.
The design is akin to letting us know what your intent is.
- Buy: "I want to buy x USDC on y Chain using z Token"
- Sell: "I want to sell x USDC on y Chain for z Token"
- Transfer: "Just transfer all my money to vitalik"
We will return the transactions needed to achieve whatever you desire.
You may then handle execution yourself or use our extensions.
Buy - Get an executable set of transactions (alongside a quote) for buying a specific amount of tokens
Sell - Get an executable set of transactions (alongside a quote) for selling a specific amount of tokens
Why not just transfer with the SDK? Stay tuned for webhooks, think direct payments!
This is not production code, we're just showcasing some of the APIs that would help you execute and poll status here.
The SDK comes with some extensions that you'll see on a lot of ThirdwebBridge
objects, and the main one is Execute.
.NET Release | NuGet Release | Unity Release
Documentation | Support

We've built Universal Bridge to allow your users to use any asset on any chain, and it's ready for you to try. If you're interested in joining the private beta for Universal Bridge, complete this form (or reach out to anyone from the thirdweb team).
Do you need to accept fiat and crypto payments in your app? Are you struggling to find reliable onchain liquidity for swaps? Are you tired of implementing bespoke bridges for multiple chains? Universal Bridge is for you.
Bridging, swapping, and accepting payments each bring their own challenges. The existing options are unreliable, complicated, and reliant on poor design choices. Universal Bridge is the easiest way to route assets in your app. Swap tokens, bridge between chains, onramp assets, accept onchain payments, and more all with a simple, unified API.
We already support 30,000+ routes across 50+ chains and are adding more every day. We're running detailed routing and reliability tests across all of them to guarantee a great experience for users.
Universal Bridge uses a combination of existing protocols and onramps with thirdweb's own onchain and off-chain infrastructure for maximum coverage and reliability. The result is a "best case scenario" for buying, selling, and transferring assets between any EVM chain.
Our Private Beta starts today, and your app can be one of the first to use it. Just complete this form or reach out to anyone on the team to get access. Or, try the playground widget here.

We're excited to announce that thirdweb Insight has expanded its blockchain data querying capabilities to 67 chains, including these 7 new chains:
What This Means For Developers
With these additions, you can now use all of Insight's powerful features across these new chains.
Try them out on the playground!
View All Supported Chains
For a complete list of supported chains and their respective chain IDs, check the thirdweb chainlist.
📖 Learn more about Insight - it’s open source and ready to power your applications!

We've revamped our metadata storage and refresh mechanisms to provide a more reliable, scalable, and efficient experience when working with NFT collections metadata through Insight!
- Replaced the previous caching approach with a more permanent storage solution, ensuring faster retrieval and better consistency across requests.
- Metadata is now stored and accessed in a way that eliminates potential inconsistencies, making it the single source of truth for retrieval.
To give developers more control, we’ve introduced dedicated API endpoints for refreshing metadata on demand:
- Collection Metadata Refresh
GET v1/nfts/metadata/refresh/:contract_address
- Token Metadata Refresh
- Both endpoints fully support multichain operations via
chain
query parameters. - Refreshing token metadata also ensures collection-level metadata stays up to date.
✅ Improved Data Consistency – Eliminates mismatches between different layers, ensuring metadata stays accurate.
✅ Simplified Architecture – No more juggling between temporary and permanent storage solutions.
✅ Better Scalability – Optimized for large-scale metadata operations, enabling more efficient handling of growing datasets.
✅ Multichain-Ready – Works seamlessly across chains, just like you’re used to.
We’re actively working on further performance optimizations by consolidating multiple separate queries into more efficient, single-fetch operations. This will unlock even faster metadata retrieval without sacrificing accuracy. Stay tuned with more updates to thirdweb Insight! 🚀

This new update includes several changes to the tools in thirdweb MCP (Model Context Protocol) Server – improving overall accuracy in tool selection and speed performance for some onchain queries.
Improvement and Fixes
- Improved onchain query performance and tool selection
- Fixed Engine service auth requests that were not configured properly
- Updated
thirdweb-ai
tov0.1.4
(see full changelog)
A few prompts and guide to try out:
Always provide a fully valid wallet address, and include chain id along with the chain name.
Upgrade Guide

This new update focuses on improving the accuracy of tool selection by consolidating tools, picking better default values, and giving developers the ability to override tool description prompts.
New Features
- Override service tools' description prompts
Improvements
- Insight always requests with most recent and decoded data
- Insight performance improvement by using the correct sort key
- Updated
resolve
tool prompt to provide a more accurate description - Reduced number of tools with similar functionality:
- Merged
get_contract_abi
intoget_contract_metadata
- Merged
get_contract_events_by_signature
intoget_all_events
- Merged
Bug Fixes
- Fixed invalid auth for Engine requests due to headers not being set correctly
- Fixed some invalid paths or bodies for Engine and Insight tools
- Fixed improper schema error from OpenAI Agents adapter when a tool schema contains
anyOf
,oneOf
, orallOf
Upgrade Guide

We just released a new live playground that lets you customize and interact with the Universal Bridge via the prebuilt UI component.
Try it out at: https://playground.thirdweb.com/connect/pay

The playground lets you customize:
- Payment mode: fund wallets, direct payments or onchain transactions
- Price, chain and token information
- Payment methods
- Metadata
- Theme
- Gas sponsorship
Every customization shows you the changes in a live preview, as well as the corresponding code to copy paste into your projects.
Happy building! 🛠️

We're excited to announce the first release of thirdweb ai, a powerful Python library (TypeScript coming soon) that enables AI agents to interact with any EVM chains autonomously using thirdweb. This is a significant step forward in our mission to make web3 more accessible and empower developers to build the next generation of AI-powered onchain applications.
As Large Language Models (LLMs) and AI Agents continue to evolve as transformative technologies, we recognized the need for these systems to interact with blockchain networks autonomously. We believe that giving AI agents the ability to perform onchain actions based on real-time data will unlock new possibilities.
With thirdweb ai, you can create AI agents that:
- Manage wallets and transactions securely using Engine
- Retrieve and analyze on-chain data in real-time using Insight
- Delegate complex onchain executions to Nebula agents
All of this functionality integrates smoothly with the AI agent framework of your choice, including OpenAI Agents, LangChain, AgentKit, GOAT, AutoGen, LlamaIndex, and many more.

Install the core package with all adapters:
Or choose specific framework adapters:
See here for the full list of supported framework and installation guides.
When building applications that integrate LLMs with thirdweb's blockchain capabilities, you can enhance your results by including thirdweb context files:
- Basic context: https://portal.thirdweb.com/llms.txt
- Comprehensive context: https://portal.thirdweb.com/llms-full.txt
- Check out our GitHub repository for more examples
Get started with thirdweb-ai today and join us in building the future of onchain AI agents!

We just shipped a big upgrade to partner management for ecosystems. You can now specify what type of signatures are permitted for each partner, as well as granular controls on what exactly can be signed. As an ecosystem owner, this means you have full control of what each partner is able to do with your user's ecosystem wallets, like restricting to particular assets or actions.
In your ecosystem dashboard, you'll find a new option for "Access Control" when you create or edit an ecosystem partner. You can setup these signing restrictions in 2 ways: your own server verification, or built in rules.
This is the most flexible and powerful option - every signature request will flow through your own server and you get to perform your own logic for allowing or disallowing a particular signature.

The response from your sever should just be a simple JSON body with the following format.
You can also set your rules directly in the dashboard. These include what signature types you would like to allow, and granular permissions per signature type, like the chain, contract addresses or function selectors that are allowed to be called.

For ecosystems that use smart accounts, since those require personal_sign signatures, we've added a user operation filter that lets you control which smart account operations are allowed to be signed by the ecosystem wallets.

These controls are low level and powerful, letting you tightly control what can and cannot be done with wallets on a per-partner basis.
We're continuously improving this UI to make it easier for ecosystem owners to setup these rules. Your feedback is appreciated and help us make this product better for everyone!
We're excited to announce improvements to our Token and NFT APIs in Insight. We've recently added support to get all token transfers by owner, wallet, and token contracts. We've also included in this release major performance improvements to existing NFT endpoints.
The following endpoints are now available to use.
Retrieve all NFT transfers by wallet address. Supports ERC1155 and ERC721.
Get all token transfers for a contract address. Supports ERC20, ERC1155, and ERC721.
View all token transfers for a wallet address. Supports ERC20, ERC1155, and ERC721.
Get all token transfers in a transaction. Supports ERC20, ERC1155, and ERC721.

With the latest dashboard update, users can now view their invoices directly in thirdweb for easy management.
- Invoice history, amount, and details are available at a glance.
- Download the full invoice pdf document to see breakdown of charges by usage and plan.
To view your invoices, login to thirdweb and navigate to Settings > Invoices.

For any feedback or support inquiries, please visit our support site.

We’re pleased to announce a more robust contract verification process, now featuring a dedicated Etherscan verification status check and final result reporting. This means you can confidently verify your contracts—proxy or otherwise—knowing you’ll receive a much more clear outcome every time.
Added Verification Status Check and Final Result Return
- Introduced extra logic to check for verification status on Etherscan-like explorers, which polls for verification completion.
- This now returns the final verification result (e.g., "success," "failure," or "already verified") instead of just the receipt GUID.
Fixed Constructor Parameter Fetching for Proxy Contracts
- Fixed some corner cases where we should use the implementation address when verifying proxied contracts with constructor parameters.
We hope this streamlined verification workflow reduces the friction of contract verifications and helps you focus on delivering great applications. Happy building!

We're excited to announce an important update to our RPC edge infrastructure at thirdweb. This enhancement is designed to improve performance and reduce costs for our users.
- Response Compression at RPC Edge:
We’ve enabled response compression, meaning our RPC endpoints now deliver compressed responses to reduce data size and speed up transmission. - Cost Reduction for Users:
With smaller payloads, users can enjoy reduced bandwidth usage and lower overall costs when interacting with our servers. - New Request Requirement:
To take full advantage of this update, you need to add anAccept-Encoding
header to your requests. This tells our servers that your client can handle compressed responses.
Simply include the Accept-Encoding
header in your API requests. For instance, if you're calling the eth_blockNumber
method using our RPC endpoint, you can use the following curl example:
In this example:
- The
Accept-Encoding: gzip
header signals that your client accepts gzip-compressed responses. - The JSON payload makes a call to
eth_blockNumber
to retrieve the latest block number.
This update is part of our continuous effort to enhance performance and efficiency. We’re committed to providing you with the best tools and infrastructure for your development needs. If you have any feedback or questions, please don’t hesitate to reach out.

We're excited to announce that thirdweb Insight has expanded its blockchain data querying capabilities to 61 chains, including these 19 new chains:
- zkSync
- Mantle
- Abstract mainnet and testnet
- Zora
- World
- Hedera
- Laos
- Rivalz
- Basecamp
- Beam
- Sonic
- Cronos zkEVM
- Taiko mainnet and testnet
- Celo testnet
- Arena Z testnet
- Treasure Topaz testnet
- Monad testnet
What This Means For Developers
With these additions, you can now use all of Insight's powerful features across these new chains.
Try them out on the playground!
View All Supported Chains
For a complete list of supported chains and their respective chain IDs, check the thirdweb chainlist.
📖 Learn more about Insight - it’s open source and ready to power your applications!