{"id":25588601,"url":"https://github.com/picketapi/picket-example-incremental-auth","last_synced_at":"2025-10-10T04:06:28.782Z","repository":{"id":115244933,"uuid":"553785049","full_name":"picketapi/picket-example-incremental-auth","owner":"picketapi","description":"Example NextJS Project Implementing Incremental Authorization with Picket","archived":false,"fork":false,"pushed_at":"2023-02-28T00:04:49.000Z","size":2480,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-05-26T09:41:54.946Z","etag":null,"topics":["authorization","nfts","web3"],"latest_commit_sha":null,"homepage":"https://incremental-auth-demo.picketapi.com","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/picketapi.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2022-10-18T19:09:10.000Z","updated_at":"2022-10-21T18:13:41.000Z","dependencies_parsed_at":null,"dependency_job_id":"c15dad21-ae16-4bba-a6a6-cb56ab5db64b","html_url":"https://github.com/picketapi/picket-example-incremental-auth","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/picketapi/picket-example-incremental-auth","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/picketapi%2Fpicket-example-incremental-auth","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/picketapi%2Fpicket-example-incremental-auth/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/picketapi%2Fpicket-example-incremental-auth/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/picketapi%2Fpicket-example-incremental-auth/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/picketapi","download_url":"https://codeload.github.com/picketapi/picket-example-incremental-auth/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/picketapi%2Fpicket-example-incremental-auth/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":279002684,"owners_count":26083441,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-10-10T02:00:06.843Z","response_time":62,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["authorization","nfts","web3"],"created_at":"2025-02-21T08:38:58.045Z","updated_at":"2025-10-10T04:06:28.770Z","avatar_url":"https://github.com/picketapi.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Picket Incremental Authorization Demo\n\nView the live demo at https://incremental-auth-demo.picketapi.com/\n\n## What is Incremental Authorization?\n\nThe best example of incremental authorization is a Web3 community site. Imagine every NFT has an exclusive community site. Only token holders can access their NFTs' respective communities and content. With an infinite number of possible NFT-based communities, it would be impossible to check if a user has access to every community on the site at once; instead, we want to verify a user's token ownership incrementally.\n\nYou can read more about incremental authorization in the [Picket docs](https://docs.picketapi.com/picket-docs/reference/concepts/incremental-authorization).\n\n\n## Getting Started\n\n### 1. Clone the Repo\n\n```bash\ngit clone https://github.com/picketapi/picket-example-incremental-auth.git\ncd picket-example-incremental-auth\n```\n\n### 2. Install Dependencies\n\nFrom the root directory, run\n```bash\nnpm i\n```\n\n### 3. Add Your Picket API Key\n\n1. Navigate to the [projects section of your Picket account](https://picketapi.com/dashboard#projects). \n2. Copy the **Publishable Key** from on of your projects\n3. Create a local `.env` file with your API key by running\n\n```bash\necho \"NEXT_PUBLIC_PICKET_PUBLISHABLE_KEY=YOUR_PUBLISHABLE_KEY_GOES_HERE\" \u003e\u003e .env\n```\n\n### 4. Run the Development Server\n\n```bash\nnpm run dev\n```\n\n### 5. View the App\n\nOpen [http://localhost:3000](http://localhost:3000) with your browser to see the result.\n\n### 6. Modifying the App\n\nYou can start editing the page by modifying `pages/index.tsx`. The page auto-updates as you edit the file. Feel free to modify the app as much as you like to learn about Picket. \n\nOne idea for how to change the app is to add a token that you have access to!\n\n#### Modifying the Demo Tokens\n\nFor the demo, we picked three popular Ethereum mainnet tokens: ENS, Doodles, and BYAC. You'll find these tokens defined at the top of `pages/index.tsx`. \n\nLet's say we want to remove BYAC in favor of the [Okay Zombie Bears Club](https://opensea.io/collection/okay-zombie-bears-club). We can do this by modifying the `tokens` variable in `pages/index.tsx`\n\n```tsx\nconst tokens = [\n  {\n    name: \"ENS\",\n    image: \"/ens.svg\",\n    description:\n      \"Ethereum Name Service is decentralised naming for wallets, websites, \u0026 more\",\n    contractAddress: \"0x57f1887a8bf19b14fc0df6fd9b2acc9af147ea85\",\n  },\n  {\n    name: \"Doodles\",\n    image: \"/doodles.webp\",\n    description:\n      \"Doodles is a community-driven collectibles project featuring art by Burnt Toast\",\n    contractAddress: \"0x8a90cab2b38dba80c64b7734e58ee1db38b8992e\",\n  },\n  // Replace BYAC with Okay Zombie Bears Club\n  {\n    name: \"Okay Zombie Bears Club\",\n    image: \"https://i.seadn.io/gcs/files/e7732689e69a07bd104e2fc7c0302912.gif?auto=format\u0026w=3840\",\n    description:\n      \"Infected, diseased, dead, and brought back to life. Join the Zombie Bear Club.\",\n    contractAddress: \"0x8137A2fDC9111aAa8BeeD9eb72905F2C391FD55F\",\n  },\n];\n```\n\nOpen [http://localhost:3000](http://localhost:3000) with your browser to see the result. [Okay Zombie Bears Club](https://opensea.io/collection/okay-zombie-bears-club) is an example NFT, but try it out with an NFT or SPL token that you own!\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpicketapi%2Fpicket-example-incremental-auth","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpicketapi%2Fpicket-example-incremental-auth","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpicketapi%2Fpicket-example-incremental-auth/lists"}