Learn how to set up the NiftyApes SDK

This SDK is intended to only be used with React projects

1. Install NiftyApes via NPM

Install the NiftyApes SDK and its peer dependencies into your project.

npm i @niftyapes/sdk react react-dom wagmi@^0.12 ethers@^5

2. Setup

If you are running a NextJS app, you may need to add the NiftyApes SDK to be transpiled in your next.config.mjs.

const nextConfig = {
  reactStrictMode: true,
  transpilePackages: [..., '@niftyapes/sdk'],
}

3. Wrap Your App

Wrap your application with the NiftyApesProvider as well as the Wagmi provider. Follow the instructions for configuring Wagmi (version 0.12) found here. NiftyApes hooks and component library rely on Wagmi for handling interactions with the blockchain.

import React from "react";
import { NiftyApesProvider } from "@niftyapes/sdk";
import { configureChains, createClient, WagmiConfig } from "wagmi";
import { publicProvider } from "wagmi/providers/public";
import { getDefaultWallets } from "@rainbow-me/rainbowkit";
import * as allChains from 'wagmi/chains'

const CHAIN_ID = 5;
const INTEGRATION_CONTRACT = "0xfa800eb4512a57f1dffe62f3ead634139dbb8547";
const NIFTY_APES_API_KEY = "nifty-apes-api-key";

const envChain = Object.values(allChains).find(
  (chain) => chain.id === +(CHAIN_ID || allChains.mainnet)
);
const { chains, provider } = configureChains(
  envChain ? [envChain] : [allChains.mainnet],
  [publicProvider()]
);

const { connectors } = getDefaultWallets({
  appName: "NiftyApes SDK",
  chains,
});

const wagmiClient = createClient({
  autoConnect: true,
  connectors,
  provider,
});

function App() {
  return (
    <NiftyApesProvider
      config={{
        apiKey: NIFTY_APES_API_KEY,
        chainId: CHAIN_ID,
        integrationContractAddress: INTEGRATION_CONTRACT,
      }}
    >
      <WagmiConfig client={wagmiClient}>
        {/* ...Rest of your app goes here... */}
      </WagmiConfig>
    </NiftyApesProvider>
  );
}

export default App;

4. Import CSS (if using component library)

If you are using the NiftyApes component library, you will also need to import the CSS into your project like so.

import '@niftyapes/sdk/dist/styles.css'

5. Import and Call Hooks

Below is a basic example of retrieving offers

import { useOffers } from "@niftyapes/sdk";

const OffersComponent = () => {
  const { data: offers = [], isLoading } = useOffers({
    creator: '0x5Ad3b55625553CEf54D7561cD256658537d54AAd',
    includeExpired: true,
  });

  offers.map(...) // Access to loaded offers
}