Available adapters
Wallet SDKs that can produce an EIP-1193 provider don’t need a dedicated adapter — they plug into
evmAdapter directly. See the thirdweb guide for a complete example of this pattern.
Where to pass adapters
Adapters are a widget-only feature. Pass them on focused widget components such asPay, Fund, Swap, Earn, Withdraw.
Mixing adapters
You can pass several adapters together. EVM adapters compose into one wallet runtime; Solana adapters stack alongside, so EVM and Solana wallets work in the same widget:Buffer polyfill for Tron
tronAdapter pulls in TronWeb, which reads the Node Buffer global while its modules evaluate. Browsers don’t define Buffer, so without a polyfill the import throws ReferenceError: Buffer is not defined and takes down the surrounding React tree — typically a blank page rather than a caught error.
Install the buffer package and assign the global before anything imports the adapter:
tronAdapter:
define, or webpack.ProvidePlugin).
svmAdapter does not need this — Solana support runs in the browser without a Buffer global.
Choosing an adapter
- No existing wallet stack? Pass no adapters — the built-in runtime handles injected wallets and WalletConnect.
- App on wagmi? Use
wagmiAdapter. One package supports wagmi 2 and wagmi 3. Wagmi-based wallet SDKs such as Dynamic (Fireblocks embedded wallets) plug in the same way — no custom Trails code needed. - Embedded or custom wallet that speaks EIP-1193? Use
evmAdapter. This covers wallet SDKs that expose an EIP-1193 provider directly, such as thirdweb. - Solana? Add
svmAdapter. - Tron? Add
tronAdapter, plus theBufferpolyfill.