{"id":13630169,"url":"https://github.com/Carbonable/carbon-protocol","last_synced_at":"2025-04-17T13:31:45.821Z","repository":{"id":50342034,"uuid":"492915561","full_name":"Carbonable/carbon-protocol","owner":"Carbonable","description":"Carbon Starknet Protocol written in Cairo.","archived":false,"fork":false,"pushed_at":"2024-07-01T09:55:42.000Z","size":54478,"stargazers_count":55,"open_issues_count":10,"forks_count":20,"subscribers_count":3,"default_branch":"main","last_synced_at":"2024-08-01T22:45:33.375Z","etag":null,"topics":["cairo","carbon-offsetting","starknet"],"latest_commit_sha":null,"homepage":"","language":"Cairo","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Carbonable.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":"2022-05-16T16:29:35.000Z","updated_at":"2024-07-25T09:33:09.000Z","dependencies_parsed_at":"2023-09-22T20:42:59.884Z","dependency_job_id":"6fac10ce-0871-4536-8700-b6e0ec309551","html_url":"https://github.com/Carbonable/carbon-protocol","commit_stats":null,"previous_names":[],"tags_count":15,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Carbonable%2Fcarbon-protocol","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Carbonable%2Fcarbon-protocol/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Carbonable%2Fcarbon-protocol/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Carbonable%2Fcarbon-protocol/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Carbonable","download_url":"https://codeload.github.com/Carbonable/carbon-protocol/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":223757192,"owners_count":17197512,"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":["cairo","carbon-offsetting","starknet"],"created_at":"2024-08-01T22:01:32.502Z","updated_at":"2024-11-08T21:30:55.417Z","avatar_url":"https://github.com/Carbonable.png","language":"Cairo","funding_links":[],"categories":["Cairo","Open-source projects"],"sub_categories":[],"readme":"\u003cdiv align=\"center\"\u003e\n  \u003ch1 align=\"center\"\u003eCarbon Protocol on Starknet\u003c/h1\u003e\n  \u003cp align=\"center\"\u003e\n    \u003ca href=\"https://discord.gg/twyWfTGd6m\"\u003e\n        \u003cimg src=\"https://img.shields.io/badge/Discord-6666FF?style=for-the-badge\u0026logo=discord\u0026logoColor=white\"\u003e\n    \u003c/a\u003e\n    \u003ca href=\"https://twitter.com/intent/follow?screen_name=Carbonable_io\"\u003e\n        \u003cimg src=\"https://img.shields.io/badge/Twitter-1DA1F2?style=for-the-badge\u0026logo=twitter\u0026logoColor=white\"\u003e\n    \u003c/a\u003e       \n  \u003c/p\u003e\n  \u003ch3 align=\"center\"\u003eCarbonable contracts written in Cairo for StarkNet.\u003c/h3\u003e\n\u003c/div\u003e\n\n## Usage\n\n\u003e ## ⚠️ WARNING! ⚠️\n\u003e\n\u003e This repo contains highly experimental code.\n\u003e Expect rapid iteration.\n\u003e **Use at your own risk.**\n\n### Set up the project\n\n#### 📦 Install the requirements\n\n- [protostar](https://github.com/software-mansion/protostar)\n\n### 🎉 Install\n\n```bash\nprotostar install\n```\n\n### ⛏️ Compile\n\n```bash\nprotostar build\n```\n\n### 🌡️ Test\n\n```bash\n# Run all tests\nprotostar test\n\n# Run only unit tests\nprotostar test tests/units\n\n# Run only integration tests\nprotostar test tests/integrations\n```\n\n### 🌐 Test account\n\nIf you want a fresh account for tests, you can deploy an account with the following command:\n\n```bash\nstarknet deploy_account --network=\u003cnetwork\u003e\n```\n\nIt will generate the account information into the `~/.starknet_accounts/starknet_open_zeppelin_accounts.json` file.  \nSee also starknet [documentation](https://www.cairo-lang.org/docs/hello_starknet/account_setup.html#creating-an-account) for more details.\n\n### 💋 Format code\n\n```bash\ncairo-format -i src/**/*.cairo tests/**/**/*.cairo\n```\n\n### 📝 Documentation\n\n#### Requirements\n\n- python environment (python \u003e=3.9)\n- [`mdutils`](https://pypi.org/project/mdutils/) dependency installed\n- [`kaaper-cli`](https://github.com/onlydustxyz/kaaper) installed\n- [`thoth`](https://github.com/FuzzingLabs/thoth) installed\n\n#### Generation\n\n```bash\ncd docs\nkaaper generate ../src ./data\npython build.py\ncallgraphs.sh\n```\n\n## 🚀 Deployment\n\nSee [How to deploy Carbonable Protocol](https://carbonable.notion.site/How-to-deploy-Carbonable-Protocol-099b947ee1c74ff0923bbcf2178b5979)\n\n### Inputs\n\nTo manage inputs sent to constructor during the deployment, you can customize the [config files](./scripts/configs/).\n\n### Prepare the contracts before tests\n\nAfter deployment, the **admin** account (according to parameters) is the owner of all contracts.\nSo far, you have to do the following actions manually:\n\n- Change the NFT contract owner from **admin** to **Minter contract**\n  - How: _Voyager \u003e Write contract \u003e `transferOwnership`_\n  - Verify: _Voyager \u003e Read contract \u003e `owner`_\n- Approve the **Minter contract** to spend the **admin payment tokens**\n  - How: Voyager \u003e _Write contract \u003e `approve`_\n  - Verify: Voyager \u003e _Read contract \u003e `allowance`_\n- Buy NFT through the **Minter contract**\n  - How: _Voyager \u003e Write contract \u003e `buy`_\n  - Verify: _Voyager \u003e Read contract \u003e `balanceOf` (of the NFT contract)_\n\n## 📄 License\n\n**carbon-protocol** is released under the [Apache License, Version 2.0](LICENSE).\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=\"http://starknet.io\"\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/Carbonable/carbon-protocol/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/Bal7hazar\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/97087040?v=4?s=100\" width=\"100px;\" alt=\"Bal7hazar\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eBal7hazar\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/Carbonable/carbon-protocol/commits?author=Bal7hazar\" title=\"Code\"\u003e💻\u003c/a\u003e\u003c/td\u003e\n      \u003ctd align=\"center\" valign=\"top\" width=\"14.28%\"\u003e\u003ca href=\"https://github.com/tekkac\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/98529704?v=4?s=100\" width=\"100px;\" alt=\"Trunks @ Carbonable\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eTrunks @ Carbonable\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/Carbonable/carbon-protocol/commits?author=tekkac\" title=\"Code\"\u003e💻\u003c/a\u003e\u003c/td\u003e\n      \u003ctd align=\"center\" valign=\"top\" width=\"14.28%\"\u003e\u003ca href=\"https://github.com/julienbrs\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/106234742?v=4?s=100\" width=\"100px;\" alt=\"Ainur\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eAinur\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/Carbonable/carbon-protocol/commits?author=julienbrs\" title=\"Code\"\u003e💻\u003c/a\u003e\u003c/td\u003e\n      \u003ctd align=\"center\" valign=\"top\" width=\"14.28%\"\u003e\u003ca href=\"https://github.com/Marchand-Nicolas\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/60229704?v=4?s=100\" width=\"100px;\" alt=\"Nico\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eNico\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/Carbonable/carbon-protocol/commits?author=Marchand-Nicolas\" title=\"Code\"\u003e💻\u003c/a\u003e\u003c/td\u003e\n      \u003ctd align=\"center\" valign=\"top\" width=\"14.28%\"\u003e\u003ca href=\"https://github.com/rmzlb\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/25151724?v=4?s=100\" width=\"100px;\" alt=\"rmzlb\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003ermzlb\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/Carbonable/carbon-protocol/commits?author=rmzlb\" title=\"Code\"\u003e💻\u003c/a\u003e\u003c/td\u003e\n      \u003ctd align=\"center\" valign=\"top\" width=\"14.28%\"\u003e\u003ca href=\"https://github.com/cloudvenger\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/3840436?v=4?s=100\" width=\"100px;\" alt=\"Arn0d\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eArn0d\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/Carbonable/carbon-protocol/commits?author=cloudvenger\" 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/MartianGreed\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/11038484?v=4?s=100\" width=\"100px;\" alt=\"valdo.carbonaboyz.stark\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003evaldo.carbonaboyz.stark\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/Carbonable/carbon-protocol/commits?author=MartianGreed\" 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!","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FCarbonable%2Fcarbon-protocol","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FCarbonable%2Fcarbon-protocol","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FCarbonable%2Fcarbon-protocol/lists"}