{"id":15442342,"url":"https://github.com/33bits-xyz/app","last_synced_at":"2025-06-14T07:32:37.367Z","repository":{"id":206016313,"uuid":"715610420","full_name":"33bits-xyz/app","owner":"33bits-xyz","description":"React frontend for 33bits","archived":false,"fork":false,"pushed_at":"2024-11-27T18:38:47.000Z","size":2751,"stargazers_count":7,"open_issues_count":2,"forks_count":1,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-03-29T12:35:05.837Z","etag":null,"topics":["farcaster","noir","react","zero-knowledge"],"latest_commit_sha":null,"homepage":"https://33bits.xyz","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/33bits-xyz.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","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":"2023-11-07T13:45:05.000Z","updated_at":"2024-11-28T16:50:07.000Z","dependencies_parsed_at":"2023-11-27T14:46:20.872Z","dependency_job_id":"0c8ccb5b-dd15-4425-9ebb-e1b18e49e61f","html_url":"https://github.com/33bits-xyz/app","commit_stats":{"total_commits":81,"total_committers":2,"mean_commits":40.5,"dds":"0.012345679012345734","last_synced_commit":"b854eef8200d3c6e63bc5b36629daf6021ef1891"},"previous_names":["pavlovdog/33bits","33bits-xyz/app"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/33bits-xyz%2Fapp","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/33bits-xyz%2Fapp/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/33bits-xyz%2Fapp/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/33bits-xyz%2Fapp/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/33bits-xyz","download_url":"https://codeload.github.com/33bits-xyz/app/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":249787034,"owners_count":21325569,"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","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":["farcaster","noir","react","zero-knowledge"],"created_at":"2024-10-01T19:26:47.234Z","updated_at":"2025-04-19T19:55:45.144Z","avatar_url":"https://github.com/33bits-xyz.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# 33bits React application\n\n33bits is a Farcaster-based application, which uses the zero knowledge proofs to provide a way for anonymous casting.\n\n## Working with zero-knowledge proofs\n\nCurrent version uses Noir DSL for writing ZK circuits.\n\n```\nbash-3.2$ nargo --version\nnargo 0.17.0 (git version hash: 86704bad3af19dd03634cbec0d697ff8159ed683, is dirty: false)\n```\n\nTo compile circuits locally, first install nargo ([docs](https://noir-lang.org/)), then run the following command:\n\n```\ncd circuits/\nnargo compile\n```\n\n## Why not use storage proofs?\n\nFirst version of the application was made to work with storage proofs. We've used [noir-trie-proofs](https://github.com/aragonzkresearch/noir-trie-proofs), a library made by Aragon and Noir with the support of Nouns DAO. Unfortunatelly, the implementation resulted in almost 2m gates,\nwhich means that proofs can't be generated in browser due to the RAM limitations.\n\n## Why use MiMC hash instead of EDDSA public key?\n\nThe main reason for that is user experience - generating proofs for EDDSA operations such as public key derivation, would take longer\nthen verifiying MiMC hash function.\n\nAnother reason is security. Since signer's public key is not a \"real\" public key, then it can't be used for signing messages.\nSo even if private key is stolen, attacker still can't use it to cast messages on user's behalf.\n\n## Start locally\n\nFirst, install the environment variables\n\n```\ncp .env.template .env\n```\n\nNext, install NodeJS dependencies and run the application\n\n```\nyarn\nyarn dev\n```","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2F33bits-xyz%2Fapp","html_url":"https://awesome.ecosyste.ms/projects/github.com%2F33bits-xyz%2Fapp","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2F33bits-xyz%2Fapp/lists"}