{"id":21252449,"url":"https://github.com/keep-starknet-strange/raito","last_synced_at":"2025-04-07T13:07:08.813Z","repository":{"id":251003728,"uuid":"836095472","full_name":"keep-starknet-strange/raito","owner":"keep-starknet-strange","description":"Bitcoin ZK client written in Cairo.","archived":false,"fork":false,"pushed_at":"2025-01-05T21:45:31.000Z","size":66458,"stargazers_count":57,"open_issues_count":4,"forks_count":42,"subscribers_count":5,"default_branch":"main","last_synced_at":"2025-03-31T11:06:29.916Z","etag":null,"topics":["bitcoin","cairo","stark","zero-knowledge-proofs"],"latest_commit_sha":null,"homepage":"https://raito.wtf","language":"Cairo","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/keep-starknet-strange.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":".github/CODEOWNERS","security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-07-31T06:31:36.000Z","updated_at":"2025-03-14T08:52:41.000Z","dependencies_parsed_at":"2025-01-15T11:24:33.470Z","dependency_job_id":null,"html_url":"https://github.com/keep-starknet-strange/raito","commit_stats":null,"previous_names":["keep-starknet-strange/raito"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/keep-starknet-strange%2Fraito","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/keep-starknet-strange%2Fraito/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/keep-starknet-strange%2Fraito/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/keep-starknet-strange%2Fraito/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/keep-starknet-strange","download_url":"https://codeload.github.com/keep-starknet-strange/raito/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247657281,"owners_count":20974345,"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":["bitcoin","cairo","stark","zero-knowledge-proofs"],"created_at":"2024-11-21T03:47:42.392Z","updated_at":"2025-04-07T13:07:08.758Z","avatar_url":"https://github.com/keep-starknet-strange.png","language":"Cairo","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cdiv align=\"center\"\u003e\n    \u003cimg src=\"./docs/img/raito_logo.png\" alt=\"raito-logo\" height=\"260\"/\u003e\n\n   ***Bitcoin ZK client written in Cairo.***\n\n\u003ca href=\"https://github.com/keep-starknet-strange/raito/actions/workflows/build.yml\"\u003e\u003cimg alt=\"GitHub Workflow Status\" src=\"https://img.shields.io/github/actions/workflow/status/keep-starknet-strange/raito/check.yml?style=for-the-badge\" height=30\u003e\u003c/a\u003e\n\u003ca href=\"https://bitcoin.org/\"\u003e \u003cimg alt=\"Bitcoin\" src=\"https://img.shields.io/badge/Bitcoin-000?style=for-the-badge\u0026logo=bitcoin\u0026logoColor=white\" height=30\u003e\u003c/a\u003e\n\u003ca href=\"https://www.cairo-lang.org/\"\u003e \u003cimg alt=\"Cairo\" src=\"https://img.shields.io/badge/Cairo-000?style=for-the-badge\" height=30\u003e\u003c/a\u003e\n\u003ca href=\"https://exploration.starkware.co/\"\u003e\u003cimg src=\"https://img.shields.io/badge/Exploration Team-000.svg?\u0026style=for-the-badge\u0026logo=data:image/svg%2bxml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz48c3ZnIGlkPSJhIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxODEgMTgxIj48ZGVmcz48c3R5bGU+LmJ7ZmlsbDojZmZmO308L3N0eWxlPjwvZGVmcz48cGF0aCBjbGFzcz0iYiIgZD0iTTE3Ni43Niw4OC4xOGwtMzYtMzcuNDNjLTEuMzMtMS40OC0zLjQxLTIuMDQtNS4zMS0xLjQybC0xMC42MiwyLjk4LTEyLjk1LDMuNjNoLjc4YzUuMTQtNC41Nyw5LjktOS41NSwxNC4yNS0xNC44OSwxLjY4LTEuNjgsMS44MS0yLjcyLDAtNC4yN0w5Mi40NSwuNzZxLTEuOTQtMS4wNC00LjAxLC4xM2MtMTIuMDQsMTIuNDMtMjMuODMsMjQuNzQtMzYsMzcuNjktMS4yLDEuNDUtMS41LDMuNDQtLjc4LDUuMThsNC4yNywxNi41OGMwLDIuNzIsMS40Miw1LjU3LDIuMDcsOC4yOS00LjczLTUuNjEtOS43NC0xMC45Ny0xNS4wMi0xNi4wNi0xLjY4LTEuODEtMi41OS0xLjgxLTQuNCwwTDQuMzksODguMDVjLTEuNjgsMi4zMy0xLjgxLDIuMzMsMCw0LjUzbDM1Ljg3LDM3LjNjMS4zNiwxLjUzLDMuNSwyLjEsNS40NCwxLjQybDExLjQtMy4xMSwxMi45NS0zLjYzdi45MWMtNS4yOSw0LjE3LTEwLjIyLDguNzYtMTQuNzYsMTMuNzNxLTMuNjMsMi45OC0uNzgsNS4zMWwzMy40MSwzNC44NGMyLjIsMi4yLDIuOTgsMi4yLDUuMTgsMGwzNS40OC0zNy4xN2MxLjU5LTEuMzgsMi4xNi0zLjYsMS40Mi01LjU3LTEuNjgtNi4wOS0zLjI0LTEyLjMtNC43OS0xOC4zOS0uNzQtMi4yNy0xLjIyLTQuNjItMS40Mi02Ljk5LDQuMyw1LjkzLDkuMDcsMTEuNTIsMTQuMjUsMTYuNzEsMS42OCwxLjY4LDIuNzIsMS42OCw0LjQsMGwzNC4zMi0zNS43NHExLjU1LTEuODEsMC00LjAxWm0tNzIuMjYsMTUuMTVjLTMuMTEtLjc4LTYuMDktMS41NS05LjE5LTIuNTktMS43OC0uMzQtMy42MSwuMy00Ljc5LDEuNjhsLTEyLjk1LDEzLjg2Yy0uNzYsLjg1LTEuNDUsMS43Ni0yLjA3LDIuNzJoLS42NWMxLjMtNS4zMSwyLjcyLTEwLjYyLDQuMDEtMTUuOGwxLjY4LTYuNzNjLjg0LTIuMTgsLjE1LTQuNjUtMS42OC02LjA5bC0xMi45NS0xNC4xMmMtLjY0LS40NS0xLjE0LTEuMDgtMS40Mi0xLjgxbDE5LjA0LDUuMTgsMi41OSwuNzhjMi4wNCwuNzYsNC4zMywuMTQsNS43LTEuNTVsMTIuOTUtMTQuMzhzLjc4LTEuMDQsMS42OC0xLjE3Yy0xLjgxLDYuNi0yLjk4LDE0LjEyLTUuNDQsMjAuNDYtMS4wOCwyLjk2LS4wOCw2LjI4LDIuNDYsOC4xNiw0LjI3LDQuMTQsOC4yOSw4LjU1LDEyLjk1LDEyLjk1LDAsMCwxLjMsLjkxLDEuNDIsMi4wN2wtMTMuMzQtMy42M1oiLz48L3N2Zz4=\" alt=\"Exploration Team\" height=\"30\"\u003e\u003c/a\u003e\n\u003c/div\u003e\n\n## Overview\n\nShinigami is a zero-knowledge Bitcoin client implemented in Cairo. It aims to provide trustless validation of the Bitcoin blockchain through STARK proof verification. It is heavily inspired by [ZeroSync](https://github.com/ZeroSync/ZeroSync) project.\n\n\u003e **Disclaimer:** This project is in the early stages of development and should not be used in production. It will evolve rapidly, expect breaking changes.\n\n\u003cp align=\"center\" width=\"100%\"\u003e\n  \u003cimg src=\"./docs/img/client.svg\" alt=\"client\"/\u003e\n\u003c/p\u003e\n\nAt its core, consensus client accepts two inputs: a batch of consecutive blocks \u003ci\u003en\u003c/i\u003e to \u003ci\u003em\u003c/i\u003e and a STARK proof of the state of the chain up to block \u003ci\u003en−1\u003c/i\u003e. It ensures that the historical chain state is valid by verifying the STARK proof. Then, it produces a new chain state by applying the new blocks on top of the historical state. As a result, a proof of the new state is generated.\n\n## Applications\n\nAlthough this is a highly experimental project without immediate plans for deployment, there are many potential applications:\n\n* light clients\n* IBD speedup\n* non custodial bridges\n* layer 2s\n\n## Roadmap\n\n\u003cp align=\"center\" width=\"100%\"\u003e\n  \u003cimg src=\"./docs/img/components.svg\" alt=\"components\"/\u003e\n\u003c/p\u003e\n\n### Milestone 1 - Block header validation\n\nImplement a reduced light client that can verify a range of blocks starting at genesis.  \nIt does not have to validate execution, just check that the block header fields follow the protocol.\n\nTasks:\n\n* [x] block hash computation\n* [x] proof-of-work validation/computation\n* [x] block time validation/computation\n* [x] block difficulty adjustment\n* [x] script for fetching arbitrary block data\n* [x] script for preparing program arguments\n* [x] script for running the program e2e for multiple blocks\n\n### Milestone 2 - Partial transaction validation\n\nExtend light client with partial transaction validation, but without UTXO checks.\n\nTasks:\n\n* [x] reassess validation check list (analyze Bitcoin core codebase)\n* [x] generate \u0026 run integration tests e2e instead of Cairo codegen\n* [x] transaction ID calculation\n* [x] transaction root computation\n* [x] validate transaction fee\n* [x] validate coinbase transaction\n* [x] validate that transaction can be mined (locktime, sequence, coinbase maturity)\n* [x] validate segwit specific data (wtxid commitment)\n* [x] validate block weight\n* [x] script that fetches blocks extended with references UTXOs\n* [x] script that runs the program e2e for a span of blocks\n\n### Milestone 3 - Bitcoin script validation\n\nTry to run script validation with external Cairo crate.\n\nTasks:\n\n* [x] Integrate Shinigami-script\n\n### Milestone 4 - UTXO set verification\n\nAdd inclusion proofs for the UTXOs included in the block.\n\nTasks:\n\n* [x] isolate unspendable outputs (OP_RETURN, etc)\n* [x] implement cache for UTXOs spent in the same block they are created (*)\n* [x] implement transaction outpoint hashing\n* [x] implement Utreexo accumulator (addition)\n* [x] Utreexo backend that maintains utxo set and Utreexo roots\n* [x] implement Utreexo single inclusion proof verification\n* [x] implement Utreexo single output removal\n* [x] implement Utreexo bridge node that generates individual inclusion proofs\n* [x] implement script that runs the program e2e for a span of blocks\n* [x] implement Utreexo accumulator version compatible with [rustreexo](https://github.com/mit-dci/rustreexo)\n\n### Milestone 5 - Full consensus validation\n\nValidate full block execution over large number of blocks, including the Bitcoin scripts checks and Utreexo proofs.\n\n* [x] consensus logic\n* [ ] consensus logic + utreexo proofs  \n* [ ] consensus logic + utreexo proofs + scripts\n\n### Milestone 6 - Proving\n\nRecursively verify STARK proofs of chain state updates. Still largely tbd. From initial observations it is clear that a series of optimizations will be necessary.\n\n* [ ] sha256 optimization\n* [ ] don't use ByteArray when serializing data\n* [ ] blocklevel recursion\n* [ ] consider using garaga msm to batch signature verifications\n* [ ] identify other Cairo code botlenecks\n\n# Contact\n\n* [Telegram](https://t.me/ShinigamiStarknet)\n* [OnlyDust](https://app.onlydust.com/p/raito---bitcoin-zk-client)\n\n## Usage\n\nThis will compile all the packages:\n\n```bash\nscarb build\n```\n\nThis will run tests for all the packages:\n\n```bash\nscarb test\n```\n\n## Build dependencies\n\nInstall necessary packages required by Python scripts:\n\n```bash\npip install -r scripts/data/requirements.txt\n```\n\n## References\n\n* [Data processing notes](./docs/data.md)\n* [Utreexo implementation notes](./docs/utreexo.md)\n* [ZeroSync](https://github.com/ZeroSync/ZeroSync)\n* [Shinigami Script](https://github.com/keep-starknet-strange/shinigami)\n* [STWO](https://github.com/starkware-libs/stwo)\n* [Cairo](https://www.cairo-lang.org/)\n* [Circle STARK paper](https://eprint.iacr.org/2024/278)\n\n## Contributors ✨\n\nThanks goes to these wonderful people ([emoji key](https://allcontributors.org/docs/en/emoji-key)):\n\n\u003c!-- ALL-CONTRIBUTORS-LIST:START - Do not remove or modify this section --\u003e\n\u003c!-- prettier-ignore-start --\u003e\n\u003c!-- markdownlint-disable --\u003e\n\u003ctable\u003e\n  \u003ctbody\u003e\n    \u003ctr\u003e\n      \u003ctd align=\"center\" valign=\"top\" width=\"14.28%\"\u003e\u003ca href=\"https://github.com/AbdelStark\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/45264458?v=4?s=100\" width=\"100px;\" alt=\"A₿del ∞/21M 🐺 - 🐱\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eA₿del ∞/21M 🐺 - 🐱\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/keep-starknet-strange/raito/commits?author=AbdelStark\" title=\"Code\"\u003e💻\u003c/a\u003e\u003c/td\u003e\n      \u003ctd align=\"center\" valign=\"top\" width=\"14.28%\"\u003e\u003ca href=\"https://github.com/maciejka\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/190855?v=4?s=100\" width=\"100px;\" alt=\"Maciej Kamiński @ StarkWare\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eMaciej Kamiński @ StarkWare\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/keep-starknet-strange/raito/commits?author=maciejka\" title=\"Code\"\u003e💻\u003c/a\u003e\u003c/td\u003e\n      \u003ctd align=\"center\" valign=\"top\" width=\"14.28%\"\u003e\u003ca href=\"https://github.com/b-j-roberts\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/54774639?v=4?s=100\" width=\"100px;\" alt=\"Brandon R\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eBrandon R\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/keep-starknet-strange/raito/commits?author=b-j-roberts\" title=\"Code\"\u003e💻\u003c/a\u003e\u003c/td\u003e\n      \u003ctd align=\"center\" valign=\"top\" width=\"14.28%\"\u003e\u003ca href=\"https://nodeguardians.io/character/tadev-guardian\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/122918260?v=4?s=100\" width=\"100px;\" alt=\"Tristan\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eTristan\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/keep-starknet-strange/raito/commits?author=TAdev0\" title=\"Code\"\u003e💻\u003c/a\u003e\u003c/td\u003e\n      \u003ctd align=\"center\" valign=\"top\" width=\"14.28%\"\u003e\u003ca href=\"https://github.com/Jeanmichel7\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/59661788?v=4?s=100\" width=\"100px;\" alt=\"Jean-Michel\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eJean-Michel\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/keep-starknet-strange/raito/commits?author=Jeanmichel7\" title=\"Code\"\u003e💻\u003c/a\u003e\u003c/td\u003e\n      \u003ctd align=\"center\" valign=\"top\" width=\"14.28%\"\u003e\u003ca href=\"https://github.com/lomasson\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/97454276?v=4?s=100\" width=\"100px;\" alt=\"lomasson\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003elomasson\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/keep-starknet-strange/raito/commits?author=lomasson\" title=\"Code\"\u003e💻\u003c/a\u003e\u003c/td\u003e\n      \u003ctd align=\"center\" valign=\"top\" width=\"14.28%\"\u003e\u003ca href=\"https://nodeguardians.io/character/m-kus\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/44951260?v=4?s=100\" width=\"100px;\" alt=\"Michael Zaikin\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eMichael Zaikin\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/keep-starknet-strange/raito/commits?author=m-kus\" title=\"Code\"\u003e💻\u003c/a\u003e\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003ctd align=\"center\" valign=\"top\" width=\"14.28%\"\u003e\u003ca href=\"https://github.com/harsh-ps-2003\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/119954739?v=4?s=100\" width=\"100px;\" alt=\"Harsh Pratap Singh\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eHarsh Pratap Singh\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/keep-starknet-strange/raito/commits?author=harsh-ps-2003\" title=\"Code\"\u003e💻\u003c/a\u003e\u003c/td\u003e\n      \u003ctd align=\"center\" valign=\"top\" width=\"14.28%\"\u003e\u003ca href=\"https://github.com/Xavek\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/61218841?v=4?s=100\" width=\"100px;\" alt=\"Xavek\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eXavek\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/keep-starknet-strange/raito/commits?author=Xavek\" title=\"Code\"\u003e💻\u003c/a\u003e\u003c/td\u003e\n      \u003ctd align=\"center\" valign=\"top\" width=\"14.28%\"\u003e\u003ca href=\"https://www.heyfemi.com/home\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/53274579?v=4?s=100\" width=\"100px;\" alt=\"Olufemi Olumaiyegun\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eOlufemi Olumaiyegun\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/keep-starknet-strange/raito/commits?author=olufemi-olumaiyegun\" title=\"Code\"\u003e💻\u003c/a\u003e\u003c/td\u003e\n      \u003ctd align=\"center\" valign=\"top\" width=\"14.28%\"\u003e\u003ca href=\"https://github.com/MSghais\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/59928086?v=4?s=100\" width=\"100px;\" alt=\"MSG\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eMSG\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/keep-starknet-strange/raito/commits?author=MSghais\" title=\"Code\"\u003e💻\u003c/a\u003e\u003c/td\u003e\n      \u003ctd align=\"center\" valign=\"top\" width=\"14.28%\"\u003e\u003ca href=\"http://mubarak23.github.io/\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/7858376?v=4?s=100\" width=\"100px;\" alt=\"Mubarak Muhammad Aminu\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eMubarak Muhammad Aminu\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/keep-starknet-strange/raito/commits?author=mubarak23\" title=\"Code\"\u003e💻\u003c/a\u003e\u003c/td\u003e\n      \u003ctd align=\"center\" valign=\"top\" width=\"14.28%\"\u003e\u003ca href=\"https://github.com/oluwa-peski\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/53274579?v=4?s=100\" width=\"100px;\" alt=\"oluwapeski\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eoluwapeski\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/keep-starknet-strange/raito/commits?author=oluwa-peski\" title=\"Code\"\u003e💻\u003c/a\u003e\u003c/td\u003e\n      \u003ctd align=\"center\" valign=\"top\" width=\"14.28%\"\u003e\u003ca href=\"https://github.com/stevencartavia\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/112043913?v=4?s=100\" width=\"100px;\" alt=\"Steven\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eSteven\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/keep-starknet-strange/raito/commits?author=stevencartavia\" title=\"Code\"\u003e💻\u003c/a\u003e\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003ctd align=\"center\" valign=\"top\" width=\"14.28%\"\u003e\u003ca href=\"https://github.com/manlikeHB\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/109147010?v=4?s=100\" width=\"100px;\" alt=\"Yusuf Habib\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eYusuf Habib\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/keep-starknet-strange/raito/commits?author=manlikeHB\" title=\"Code\"\u003e💻\u003c/a\u003e\u003c/td\u003e\n      \u003ctd align=\"center\" valign=\"top\" width=\"14.28%\"\u003e\u003ca href=\"https://github.com/Gerson2102\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/71728860?v=4?s=100\" width=\"100px;\" alt=\"Gerson\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eGerson\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/keep-starknet-strange/raito/commits?author=Gerson2102\" title=\"Code\"\u003e💻\u003c/a\u003e\u003c/td\u003e\n      \u003ctd align=\"center\" valign=\"top\" width=\"14.28%\"\u003e\u003ca href=\"https://github.com/PavitraAgarwal21\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/85789615?v=4?s=100\" width=\"100px;\" alt=\"PavitraAgarwal21\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003ePavitraAgarwal21\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/keep-starknet-strange/raito/commits?author=PavitraAgarwal21\" title=\"Code\"\u003e💻\u003c/a\u003e\u003c/td\u003e\n      \u003ctd align=\"center\" valign=\"top\" width=\"14.28%\"\u003e\u003ca href=\"https://github.com/bloomingpeach\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/177087057?v=4?s=100\" width=\"100px;\" alt=\"Nguyen Dao\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eNguyen Dao\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/keep-starknet-strange/raito/commits?author=bloomingpeach\" title=\"Code\"\u003e💻\u003c/a\u003e\u003c/td\u003e\n      \u003ctd align=\"center\" valign=\"top\" width=\"14.28%\"\u003e\u003ca href=\"https://github.com/od-hunter\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/146340502?v=4?s=100\" width=\"100px;\" alt=\"Hunter001\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eHunter001\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/keep-starknet-strange/raito/commits?author=od-hunter\" title=\"Code\"\u003e💻\u003c/a\u003e\u003c/td\u003e\n      \u003ctd align=\"center\" valign=\"top\" width=\"14.28%\"\u003e\u003ca href=\"https://github.com/feltroidprime\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/96737978?v=4?s=100\" width=\"100px;\" alt=\"feltroid Prime\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003efeltroid Prime\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/keep-starknet-strange/raito/commits?author=feltroidprime\" title=\"Code\"\u003e💻\u003c/a\u003e\u003c/td\u003e\n      \u003ctd align=\"center\" valign=\"top\" width=\"14.28%\"\u003e\u003ca href=\"https://github.com/mexes20\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/127276944?v=4?s=100\" width=\"100px;\" alt=\"Mexes\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eMexes\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/keep-starknet-strange/raito/commits?author=mexes20\" title=\"Code\"\u003e💻\u003c/a\u003e\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003ctd align=\"center\" valign=\"top\" width=\"14.28%\"\u003e\u003ca href=\"https://github.com/JoE11-y\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/55321462?v=4?s=100\" width=\"100px;\" alt=\"BlockyJ\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eBlockyJ\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/keep-starknet-strange/raito/commits?author=JoE11-y\" title=\"Code\"\u003e💻\u003c/a\u003e\u003c/td\u003e\n      \u003ctd align=\"center\" valign=\"top\" width=\"14.28%\"\u003e\u003ca href=\"https://github.com/Groxan\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/7966898?v=4?s=100\" width=\"100px;\" alt=\"Maksim Strebkov\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eMaksim Strebkov\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/keep-starknet-strange/raito/commits?author=Groxan\" title=\"Code\"\u003e💻\u003c/a\u003e\u003c/td\u003e\n      \u003ctd align=\"center\" valign=\"top\" width=\"14.28%\"\u003e\u003ca href=\"https://github.com/hwildwood\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/9042313?v=4?s=100\" width=\"100px;\" alt=\"Herbie Wildwood\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eHerbie Wildwood\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/keep-starknet-strange/raito/commits?author=hwildwood\" title=\"Code\"\u003e💻\u003c/a\u003e\u003c/td\u003e\n      \u003ctd align=\"center\" valign=\"top\" width=\"14.28%\"\u003e\u003ca href=\"https://github.com/fishonamos\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/43862685?v=4?s=100\" width=\"100px;\" alt=\"Fishon Amos\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eFishon Amos\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/keep-starknet-strange/raito/commits?author=fishonamos\" title=\"Code\"\u003e💻\u003c/a\u003e\u003c/td\u003e\n      \u003ctd align=\"center\" valign=\"top\" width=\"14.28%\"\u003e\u003ca href=\"https://github.com/raizo07\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/81079370?v=4?s=100\" width=\"100px;\" alt=\"Wolf\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eWolf\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/keep-starknet-strange/raito/commits?author=raizo07\" title=\"Code\"\u003e💻\u003c/a\u003e\u003c/td\u003e\n      \u003ctd align=\"center\" valign=\"top\" width=\"14.28%\"\u003e\u003ca href=\"https://github.com/baitcode\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/801611?v=4?s=100\" width=\"100px;\" alt=\"Ilia Batii\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eIlia Batii\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/keep-starknet-strange/raito/commits?author=baitcode\" title=\"Code\"\u003e💻\u003c/a\u003e\u003c/td\u003e\n      \u003ctd align=\"center\" valign=\"top\" width=\"14.28%\"\u003e\u003ca href=\"https://github.com/Th0rgal\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/41830259?v=4?s=100\" width=\"100px;\" alt=\"Thomas Marchand\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eThomas Marchand\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/keep-starknet-strange/raito/commits?author=Th0rgal\" title=\"Code\"\u003e💻\u003c/a\u003e\u003c/td\u003e\n    \u003c/tr\u003e\n  \u003c/tbody\u003e\n\u003c/table\u003e\n\n\u003c!-- markdownlint-restore --\u003e\n\u003c!-- prettier-ignore-end --\u003e\n\n\u003c!-- ALL-CONTRIBUTORS-LIST:END --\u003e\n\nThis project follows the [all-contributors](https://github.com/all-contributors/all-contributors) specification. Contributions of any kind welcome!\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkeep-starknet-strange%2Fraito","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fkeep-starknet-strange%2Fraito","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkeep-starknet-strange%2Fraito/lists"}