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

# Setup

<Steps>
  <Step title="Core dependencies">
    Install the core Garden Protocol packages:

    <CodeGroup>
      ```bash npm theme={null}
      npm install @gardenfi/core @gardenfi/orderbook @gardenfi/react-hooks @tanstack/react-query wagmi
      ```

      ```bash yarn theme={null}
      yarn add @gardenfi/core @gardenfi/orderbook @gardenfi/react-hooks @tanstack/react-query wagmi
      ```
    </CodeGroup>
  </Step>

  <Step title="Chain-specific dependencies">
    Install additional packages based on the blockchains your app supports:

    <Tabs>
      <Tab title="Starknet">
        <CodeGroup>
          ```bash npm theme={null}
          npm install @starknet-react/core starknet starknetkit
          ```

          ```bash yarn theme={null}
          yarn add @starknet-react/core starknet starknetkit
          ```
        </CodeGroup>
      </Tab>

      <Tab title="Solana">
        <CodeGroup>
          ```bash npm theme={null}
          npm install @coral-xyz/anchor @solana/wallet-adapter-react
          ```

          ```bash yarn theme={null}
          yarn add @coral-xyz/anchor @solana/wallet-adapter-react
          ```
        </CodeGroup>
      </Tab>
    </Tabs>
  </Step>

  <Step title="Required polyfills">
    <Tabs>
      <Tab title="Vite">
        Install the Vite plugins:

        <CodeGroup>
          ```bash npm theme={null}
          npm install --save-dev vite-plugin-wasm vite-plugin-top-level-await vite-plugin-node-polyfills
          ```

          ```bash yarn theme={null}
          yarn add --dev vite-plugin-wasm vite-plugin-top-level-await vite-plugin-node-polyfills
          ```
        </CodeGroup>

        Update your `vite.config.ts` as follows:

        ```typescript theme={null}
        import { defineConfig } from "vite";
        import wasm from "vite-plugin-wasm";
        import { nodePolyfills } from "vite-plugin-node-polyfills";
        import topLevelAwait from "vite-plugin-top-level-await";

        export default defineConfig({
        plugins: [
            nodePolyfills(),
            wasm(),
            topLevelAwait(),
            // Other plugins
        ],
        // Other settings
        });
        ```
      </Tab>

      <Tab title="Webpack">
        In your Webpack config add support for Wasm:

        ```typescript theme={null}
        /** @type {import('next').NextConfig} */

        const nextConfig = {
            webpack: function (config, options) {
                // Other webpack config options
                config.experiments = {
                    ...config.experiments,
                    asyncWebAssembly: true,
                };
                return config;
            },
            // Other settings
        };

        module.exports = nextConfig;
        ```
      </Tab>
    </Tabs>
  </Step>
</Steps>
