> ## Documentation Index
> Fetch the complete documentation index at: https://docs.dynamic.xyz/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Adding Extensions

> Add chain wallet and addon support to your Dynamic client with extensions

Before you can connect wallets or use chain-specific APIs, you add **extensions** to your Dynamic client. Each extension enables a different way to discover and connect wallets for a given chain. There are only two kinds of wallet: **embedded** (Dynamic-created, user-owned) and **external** (user brings their own, e.g. MetaMask, Phantom).

## Prerequisites

Before this: create a Dynamic client (see [Creating a Dynamic Client](https://docs.dynamic.xyz/docs/javascript/reference/client/create-dynamic-client.md))

## Chains

Add the extension for each chain you support. You need at least one extension per chain.

| Chain | Extension page |
| - | - |
| **EVM** (Ethereum, Polygon, Base, etc.) | [Adding EVM Extensions](https://docs.dynamic.xyz/docs/javascript/reference/evm/adding-evm-extensions.md) |
| **Solana** | [Adding Solana Extensions](https://docs.dynamic.xyz/docs/javascript/reference/solana/adding-solana-extensions.md) |
| **Sui** | [Adding Sui Extension](https://docs.dynamic.xyz/docs/javascript/reference/sui/adding-sui-extension.md) |
| **TON** | [Adding TON Extension](https://docs.dynamic.xyz/docs/javascript/reference/ton/adding-ton-extension.md) |
| **Aptos** | [Adding Aptos Extension](https://docs.dynamic.xyz/docs/javascript/reference/aptos/adding-aptos-extension.md) |
| **Bitcoin** | [Adding Bitcoin Extension](https://docs.dynamic.xyz/docs/javascript/reference/bitcoin/adding-bitcoin-extension.md) |
| **Tron** | [Adding Tron Extension](https://docs.dynamic.xyz/docs/javascript/reference/tron/adding-tron-extension.md) |
| **Starknet** | [Adding Starknet Extension](https://docs.dynamic.xyz/docs/javascript/reference/starknet/adding-starknet-extension.md) |

## Addons

Addons extend a chain with extra capabilities (e.g. gas sponsorship). Add the chain extension first, then the addon.

| Addon | Extends | Extension page |
| - | - | - |
| **ZeroDev** (gasless / sponsored transactions) | EVM | [Adding ZeroDev Extension](https://docs.dynamic.xyz/docs/javascript/reference/zerodev/adding-zerodev-extension.md) |

## Order of setup

1. Create your client - see [Creating a Dynamic Client](https://docs.dynamic.xyz/docs/javascript/reference/client/create-dynamic-client.md)
2. Add the extensions you need (e.g. `addEvmExtension()`, `addZerodevExtension()`).
3. Initialize the client - see [Initializing the Dynamic Client](https://docs.dynamic.xyz/docs/javascript/reference/client/initialize-dynamic-client.md).

Extensions are typically added right after creating the client and before initialization. See each chain’s “Adding …” page for exact import and call order.

> [!NOTE]
>
> **React:** Add extensions in the same module where you create your client (e.g. `dynamicClient.ts`), after `createDynamicClient` and before `initializeClient`. Since this module is imported once at app startup, the extensions are registered before any component renders.

## Next

* [Initializing the Dynamic Client](https://docs.dynamic.xyz/docs/javascript/reference/client/initialize-dynamic-client.md) — Initialize after adding extensions.
* [Connecting and Verifying a Wallet](https://docs.dynamic.xyz/docs/javascript/reference/wallets/connect-and-verify-wallet.md) — Use the connected wallet in your app.
* [Creating Extensions](https://docs.dynamic.xyz/docs/javascript/reference/creating-extensions.md) — Build your own extension for a custom wallet or network.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.