Picket Docs
  • ๐Ÿ‘‹Welcome to Picket
  • Quick Start Guides
    • ๐Ÿš€Quick Start Guides
      • โš™๏ธStart Here: Setup
      • ๐Ÿ”Wallet Login
      • ๐Ÿช™Token Gating (Ethereum / EVM)
      • ๐ŸคบToken Gating (Solana)
      • ๐Ÿคนโ€โ™‚๏ธIncremental Token Gating
      • โ›”Restrict Access to Specific Wallets
      • ๐Ÿ”‘Working with Access Tokens
  • Reference
    • ๐ŸŽ“Concepts
      • ๐ŸŒŠAuth Flow
      • ๐Ÿ—ƒ๏ธConnect
      • โœ๏ธSignatures
      • ๐Ÿ”Authentication and Authorization
      • ๐ŸคนIncremental Authorization
      • ๐Ÿช™Access Tokens
      • ๐ŸงชTesting
      • โ‰๏ธErrors
      • โ›“๏ธSupported Blockchains
      • ๐ŸŒSupported Languages (Localization)
      • ๐ŸŽจModal Themes
      • ๐Ÿ’ฟOpen Source Web3 Client Libraries
    • ๐Ÿ“šLibraries and SDKs
      • Javascript Library - picket-js
      • React SDK - picket-react
      • Node.js Library - picket-node
      • Go Library - picket-go
      • Python Library - picket-python
    • ๐Ÿ”ฅIntegrations
      • ๐ŸŒˆPicket Authentication with RainbowKit
      • โšกSupabase
      • โ˜๏ธAmazon Cognito
      • ๐Ÿ›๏ธPicket Shopify App - Merchant Documentation
      • ๐Ÿ›’Picket BigCommerce App - Merchant Documentation
    • ๐Ÿ“–API Reference
      • Projects & API Keys
      • Auth
      • Chains
      • Wallets
      • Contracts
      • OAuth 2.0
  • ๐Ÿ•น๏ธTutorials
    • ๐ŸŒŽSign-In with Wallet (React)
    • ๐ŸฐToken Gated Photo Board (React)
    • ๐Ÿ”—Link a Wallet to a Web 2.0 Account
    • ๐ŸคIncremental Authorization (React)
Powered by GitBook
On this page
  1. Tutorials

Token Gated Photo Board (React)

PreviousSign-In with Wallet (React)NextLink a Wallet to a Web 2.0 Account

Last updated 2 years ago

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

Alternatively, you can 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 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.

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.

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

If you have any issues getting to this point, feel free to reach out to us at

๐Ÿ•น๏ธ
๐Ÿฐ
Github
clone the repository
dashboard
etherscan
team@picketapi.com