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

# Quickstart

> Get your API key and make your first request in under 5 minutes.

## Popular quickstarts

<Tabs>
  <Tab title="Wallet Data">
    <CardGroup cols={2}>
      <Card title="Get a wallet portfolio" icon="chart-pie" href="/api-reference/wallets/get-wallet-portfolio">
        Total value, position breakdown, and daily changes for any address.
      </Card>

      <Card title="List fungible positions" icon="coins" href="/api-reference/wallets/get-wallet-fungible-positions">
        Every token a wallet holds with quantities and USD values.
      </Card>

      <Card title="View DeFi positions" icon="layer-group" href="/recipes/defi-positions">
        Lending, staking, and liquidity positions across protocols.
      </Card>

      <Card title="NFT positions" icon="image" href="/api-reference/wallets/get-wallet-nft-positions">
        NFT holdings with metadata, floor prices, and collection info.
      </Card>
    </CardGroup>
  </Tab>

  <Tab title="Transactions">
    <CardGroup cols={2}>
      <Card title="Get parsed transactions" icon="clock-rotate-left" href="/api-reference/wallets/get-wallet-transactions">
        Human-readable transaction history with filters by type, chain, and date.
      </Card>

      <Card title="Subscribe to webhooks" icon="bell" href="/api-reference/subscriptions-to-transactions/create-subscription">
        Instant notifications when wallet transactions occur — no polling.
      </Card>
    </CardGroup>
  </Tab>

  <Tab title="Market Data">
    <CardGroup cols={2}>
      <Card title="Search fungible tokens" icon="magnifying-glass" href="/api-reference/fungibles/get-list-of-fungible-assets">
        Look up any token by name, get prices, charts, and market data.
      </Card>

      <Card title="Token charts" icon="chart-line" href="/api-reference/fungibles/get-a-chart-for-a-fungible-asset">
        Historical price and market cap charts for any token.
      </Card>
    </CardGroup>
  </Tab>

  <Tab title="Trading">
    <CardGroup cols={2}>
      <Card title="Get swap quotes" icon="arrow-right-arrow-left" href="/api-reference/swap/get-swap-and-bridge-quotes">
        Fetch the best swap and bridge offers across chains.
      </Card>

      <Card title="Check gas prices" icon="gas-pump" href="/api-reference/gas/get-list-of-all-available-gas-prices">
        Current gas prices across all supported chains.
      </Card>
    </CardGroup>
  </Tab>
</Tabs>

***

## Make your first request

<Steps>
  <Step title="Get your API key">
    Sign up at [dashboard.zerion.io](https://dashboard.zerion.io) and create an API key from the dashboard. It's free to start.
  </Step>

  <Step title="Try it from the docs">
    The fastest way to test the API is right here in the docs. Open any [API reference](/api-reference/wallets/get-wallet-portfolio) page, click **Try it**, enter your API key in the **Username** field, leave **Password** empty, and hit **Send**.
  </Step>

  <Step title="Make a request from your code">
    The API uses [HTTP Basic Auth](/authentication) — your API key is the username, password is empty. Let's fetch a wallet portfolio:

    <CodeGroup>
      ```bash cURL theme={null}
      # Transform your API key for Basic Auth
      API_KEY_TRANSFORMED=$(echo -n "YOUR_API_KEY:" | base64)

      # Make the request
      curl -X GET "https://api.zerion.io/v1/wallets/0x42b9df65b219b3dd36ff330a4dd8f327a6ada990/portfolio" \
        -H "Authorization: Basic $API_KEY_TRANSFORMED" \
        -H "accept: application/json"
      ```

      ```javascript JavaScript theme={null}
      // Transform your API key for Basic Auth
      const apiKey = 'YOUR_API_KEY';
      const apiKeyTransformed = btoa(apiKey + ':');

      // Make the request
      const response = await fetch(
        'https://api.zerion.io/v1/wallets/0x42b9df65b219b3dd36ff330a4dd8f327a6ada990/portfolio',
        {
          headers: {
            'Authorization': `Basic ${apiKeyTransformed}`,
            'accept': 'application/json'
          }
        }
      );
      if (!response.ok) throw new Error(`API error: ${response.status}`);
      const data = await response.json();
      console.log(data);
      ```

      ```python Python theme={null}
      import requests
      import base64

      # Transform your API key for Basic Auth
      api_key = 'YOUR_API_KEY'
      api_key_transformed = base64.b64encode(f'{api_key}:'.encode()).decode()

      # Make the request
      response = requests.get(
          'https://api.zerion.io/v1/wallets/0x42b9df65b219b3dd36ff330a4dd8f327a6ada990/portfolio',
          headers={
              'Authorization': f'Basic {api_key_transformed}',
              'accept': 'application/json'
          }
      )
      response.raise_for_status()
      data = response.json()
      print(data)
      ```

      ```go Go theme={null}
      import (
          "encoding/base64"
          "log"
          "net/http"
      )

      // Transform your API key for Basic Auth
      apiKey := "YOUR_API_KEY"
      apiKeyTransformed := base64.StdEncoding.EncodeToString([]byte(apiKey + ":"))

      // Make the request
      client := &http.Client{}
      req, err := http.NewRequest("GET", "https://api.zerion.io/v1/wallets/0x42b9df65b219b3dd36ff330a4dd8f327a6ada990/portfolio", nil)
      if err != nil {
          log.Fatal(err)
      }
      req.Header.Set("Authorization", "Basic " + apiKeyTransformed)
      req.Header.Set("accept", "application/json")

      resp, err := client.Do(req)
      if err != nil {
          log.Fatal(err)
      }
      defer resp.Body.Close()
      ```
    </CodeGroup>
  </Step>

  <Step title="Understand the response">
    The API returns data in [JSON:API](https://jsonapi.org/) format. Every response has a `data` object with `type`, `id`, and `attributes`:

    ```json theme={null}
    {
      "data": {
        "type": "portfolios",
        "id": "0x42b9df65b219b3dd36ff330a4dd8f327a6ada990",
        "attributes": {
          "positions_distribution_by_type": {
            "wallet": 0.85,
            "deposited": 0.10,
            "staked": 0.04,
            "locked": 0.01
          },
          "total": { "positions": 142 },
          "changes": {
            "absolute_1d": 1250.50,
            "percent_1d": 0.02
          }
        }
      }
    }
    ```

    List endpoints return a `data` array and support [pagination](/pagination-and-filtering).
  </Step>
</Steps>

## Next steps

<CardGroup cols={2}>
  <Card title="Authentication" icon="lock" href="/authentication">
    API key encoding and security best practices.
  </Card>

  <Card title="Pagination & Filtering" icon="filter" href="/pagination-and-filtering">
    Cursor pagination, filters, sorting, and currency options.
  </Card>

  <Card title="Recipes" icon="book" href="/recipes">
    Step-by-step guides for common use cases.
  </Card>

  <Card title="Rate Limits" icon="gauge" href="/rate-limits">
    Plan quotas, retry guidance, and usage headers.
  </Card>

  <Card title="Supported Blockchains" icon="link" href="/supported-blockchains">
    Full list of supported chains and feature coverage.
  </Card>
</CardGroup>
