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

# Quick Start (EVM)

## Turbo Relayer

Send gasless transactions directly to any contract. The relayer handles gas payment and transaction submission on your behalf.

<Steps>
  <Step title="Install Dependencies">
    <CodeGroup>
      ```bash npm theme={null}
      npm install @gelatocloud/gasless viem
      ```

      ```bash yarn theme={null}
      yarn add @gelatocloud/gasless viem
      ```

      ```bash pnpm theme={null}
      pnpm add @gelatocloud/gasless viem
      ```
    </CodeGroup>
  </Step>

  <Step title="Initialize Relayer Client">
    ```typescript theme={null}
    import { createGelatoEvmRelayerClient } from '@gelatocloud/gasless';

    const relayer = createGelatoEvmRelayerClient({
      apiKey: process.env.GELATO_API_KEY,
      testnet: true
    });
    ```
  </Step>

  <Step title="Send Transaction">
    ```typescript theme={null}
    const id = await relayer.sendTransaction({
      chainId: 84532, // Base Sepolia
      data: '0xd09de08a',
      to: '0xE27C1359cf02B49acC6474311Bd79d1f10b1f8De'
    });

    try {
      const receipt = await relayer.waitForReceipt({ id });
      console.log(`Transaction hash: ${receipt.transactionHash}`);
    } catch (error) {
      console.log(`Transaction failed: ${error.message}`);
    }
    ```
  </Step>
</Steps>

## Turbo Relayer with Smart Account

Enable smart account features on any EOA using EIP-7702. Batch multiple calls, use session keys, and maintain the same wallet address.

<Steps>
  <Step title="Install Dependencies">
    <CodeGroup>
      ```bash npm theme={null}
      npm install @gelatocloud/gasless viem
      ```

      ```bash yarn theme={null}
      yarn add @gelatocloud/gasless viem
      ```

      ```bash pnpm theme={null}
      pnpm add @gelatocloud/gasless viem
      ```
    </CodeGroup>
  </Step>

  <Step title="Create Gelato Smart Account">
    ```typescript theme={null}
    import {
      createGelatoSmartAccountClient,
      toGelatoSmartAccount,
    } from "@gelatocloud/gasless";
    import { createPublicClient, http, type Hex } from "viem";
    import { baseSepolia } from "viem/chains";
    import { privateKeyToAccount, generatePrivateKey } from "viem/accounts";

    const owner = privateKeyToAccount(
      (process.env.PRIVATE_KEY ?? generatePrivateKey()) as Hex
    );

    const client = createPublicClient({
      chain: baseSepolia,
      transport: http(),
    });

    const account = toGelatoSmartAccount({
      client,
      owner,
    });
    ```
  </Step>

  <Step title="Setup Relayer Client">
    ```typescript theme={null}
    const relayer = await createGelatoSmartAccountClient({
      account,
      apiKey: process.env.GELATO_API_KEY,
    });
    ```
  </Step>

  <Step title="Send Transaction">
    ```typescript theme={null}
    const receipt = await relayer.sendTransactionSync({
      calls: [
        {
          to: "0xE27C1359cf02B49acC6474311Bd79d1f10b1f8De",
          data: "0xd09de08a",
        },
      ],
    });

    console.log(`Transaction hash: ${receipt.transactionHash}`);
    ```
  </Step>
</Steps>

## Examples Repository

Explore complete working examples in our GitHub repository:

<Card title="Gasless Examples" icon="github" href="https://github.com/gelatodigital/gasless">
  Full examples for Turbo Relayer, Smart Accounts, and more.
</Card>
