๐ŸฐToken Gated Photo Board (React)

For a step by step tutorial for allowing users to sign in to your app with their wallet, follow the README on Github.

Alternatively, you can clone the repository and run the example to preview the final results by following these instructions:

Step 1: Clone the repository

Paste the following into your terminal and hit enter:

git clone git@github.com:picketapi/picket-example-gated-gallery.git

Step 2: Install dependencies

Cd into the cloned directory

cd picket-example-gated-gallery/

Install dependencies from package.json by running the following command in your terminal.

npm install

Step 3: Insert your publishable API key

Open the repository in any code editor and locate the file named _app.tsx in the pages/ directory

Within that file you'll see a line of code that looks like this:

const apiKey = "YOUR_PUBLISHABLE_KEY_GOES_HERE";

Replace YOUR_PUBLISHABLE_KEY_GOES_HERE with your publishable key, which you can find on your picket dashboard once you have logged in.

Step 4: Run App and Test

Run the following in your terminal to run the app:

npm run dev

To test the app go to localhost:3000 in any browser to see the following:

You can now click on that button to experience log in and token gating for yourself. You also have the cloned repository on your computer for inspection. You can mess with it to learn and start building your next project.

Step 5: Change the token used for token gating

If you'd like to set the token gate to require tokens that you own, you can do that by changing the token ownership requirements that are passed to picket.

Find the file named index.tsx in the pages/ directory. Within that file you'll see a block of code that looks like this:

// TODO: Replace with your requirements of choice!
const loginRequirements = {
  // Replace this example address with whichever contract you are verifying ownership for
  contractAddress: "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48",
  // Replace with minimum balance you want to verify users' currently hold,
  // or omit if any number of tokens is sufficient
  minTokenBalance: 1,
};

Replace the contract address (currently set to "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48") with the contract address of whichever token you want to require.

To find the contract address of a token you own, one easy way is to go to etherscan and search for your token. For example to find the contract address for Doodles NFTs, search for Doodles:

And then locate the contract address on the detail page once you click through:

This example uses Ethereum and this way of finding contract addresses works for NFTs and ERC-20s.

In addition to setting the required token you can also set the minimum balance of tokens the user needs to hold. To change this simply change the minTokenBalance parameter (currently set to 1) to whichever minimum number you'd like to require.

If you have any issues getting to this point, feel free to reach out to us at team@picketapi.com

Last updated