Skip to content

Latest commit

 

History

History
244 lines (193 loc) · 5.42 KB

next.md

File metadata and controls

244 lines (193 loc) · 5.42 KB
description layout
Learn how to integrate Airstack APIs to your Next.js client-side (browser) application, using the Airstack Web SDK.
title description tableOfContents outline pagination
visible
true
visible
true
visible
true
visible
visible
true

⏭️ Next.js (Browser)

In this tutorial, you will learn how to start integrating Airstack API into your Next.js application.

Table Of Contents

Step 0: Pre-requisites

Step 1: Install Airstack Web SDK

Use a package manager to install the Airstack Web SDK into your Next.js project:

{% tabs %} {% tab title="npm" %}

npm install @airstack/airstack-react

{% endtab %}

{% tab title="yarn" %}

yarn add @airstack/airstack-react

{% endtab %}

{% tab title="pnpm" %}

pnpm install @airstack/airstack-react

{% endtab %} {% endtabs %}

Step 2: Set Environment Variable

Create a new .env file:

touch .env

Add the Airstack API key as the environment variable:

NEXT_PUBLIC_AIRSTACK_API_KEY=YOUR_AIRSTACK_API_KEY

Step 3: Initialize SDK

Wrap your component with the AirstackProvider from the SDK to initialize it with the Airstack API key:

{% tabs %} {% tab title="Page Router (TS)" %} {% code title="_app.tsx" %}

import { init, AirstackProvider } from "@airstack/airstack-react";

export default function App({ Component, pageProps }) {
  return (
    <AirstackProvider apiKey={process.env.NEXT_PUBLIC_AIRSTACK_API_KEY ?? ""}>
      <Component {...pageProps} />
    </AirstackProvider>
  )
};

{% endcode %} {% endtab %}

{% tab title="Page Router (JS)" %} {% code title="_app.jsx" %}

import { init, AirstackProvider } from "@airstack/airstack-react";

export default function App({ Component, pageProps }) {
  return (
    <AirstackProvider apiKey={process.env.NEXT_PUBLIC_AIRSTACK_API_KEY ?? ""}>
      <Component {...pageProps} />
    </AirstackProvider>
  )
};

{% endcode %} {% endtab %} {% endtabs %}

Step 4: Call Your Query

Once you have initialized the SDK, you can use the useQuery to call the Airstack API.

Below you have been provided with Airstack query to fetch the 0x address and Farcaster owned by vitalik.eth:

{% tabs %} {% tab title="TypeScript" %}

import { useQuery } from "@airstack/airstack-react";

interface QueryResponse {
  data: Data | null;
  loading: boolean;
  error: Error | null;
}

interface Data {
  Wallet: Wallet;
}

interface Error {
  message: string;
}

interface Wallet {
  socials: Social[];
  addresses: string[];
}

interface Social {
  dappName: "farcaster";
  profileName: string;
}


const query = `
query MyQuery {
  Wallet(input: {identity: "vitalik.eth", blockchain: ethereum}) {
    socials {
      dappName
      profileName
    }
    addresses
  }
}
`;

const Component = () => {
  const { data, loading, error }: QueryResponse = useQuery<Data>(query, {}, { cache: false });

  if (loading) {
    return <p>Loading...</p>;
  }

  if (error) {
    return <p>Error: {error.message}</p>;
  }

  // Render your component using the data returned by the query
  console.log(data);
}

export default Component;

{% endtab %}

{% tab title="JavaScript" %} {% code title="index.jsx" %}

import { useQuery } from "@airstack/airstack-react";

const query = `
query MyQuery {
  Wallet(input: {identity: "vitalik.eth", blockchain: ethereum}) {
    socials {
      dappName
      profileName
    }
    addresses
  }
}
`;

const Component = () => {
  const { data, loading, error } = useQuery(query, {}, { cache: false });

  if (loading) {
    return <p>Loading...</p>;
  }

  if (error) {
    return <p>Error: {error.message}</p>;
  }

  // Render your component using the data returned by the query
  console.log(data);
};

export default Component;

{% endcode %} {% endtab %} {% endtabs %}

The data variable will return and logged into your browser's console as follows:

{
  "data": {
    "Wallet": {
      "socials": [
        {
          "dappName": "farcaster",
          "profileName": "vitalik.eth"
        }
      ],
      "addresses": ["0xd8da6bf26964af9d7eed9e03e53415d37aa96045"]
    }
  }
}

Developer Support

If you have any questions or need help regarding integrating Airstack into your Next.js client side application, please join our Airstack's Telegram group.

More Resources

Learn to build more with Airstack using our tutorials: