{"id":20001938,"url":"https://github.com/pooltogether/v5-prize-pool","last_synced_at":"2025-07-15T14:20:27.351Z","repository":{"id":65949973,"uuid":"593850278","full_name":"pooltogether/v5-prize-pool","owner":"pooltogether","description":null,"archived":false,"fork":false,"pushed_at":"2023-07-03T09:01:57.000Z","size":340,"stargazers_count":3,"open_issues_count":0,"forks_count":2,"subscribers_count":4,"default_branch":"main","last_synced_at":"2025-01-12T13:14:29.150Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Solidity","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/pooltogether.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-01-27T01:04:14.000Z","updated_at":"2023-09-11T09:12:00.000Z","dependencies_parsed_at":"2024-11-13T05:29:52.571Z","dependency_job_id":null,"html_url":"https://github.com/pooltogether/v5-prize-pool","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pooltogether%2Fv5-prize-pool","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pooltogether%2Fv5-prize-pool/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pooltogether%2Fv5-prize-pool/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pooltogether%2Fv5-prize-pool/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/pooltogether","download_url":"https://codeload.github.com/pooltogether/v5-prize-pool/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":241439791,"owners_count":19963098,"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":[],"created_at":"2024-11-13T05:19:10.546Z","updated_at":"2025-03-01T23:54:33.292Z","avatar_url":"https://github.com/pooltogether.png","language":"Solidity","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://github.com/pooltogether/pooltogether--brand-assets\"\u003e\n    \u003cimg src=\"https://github.com/pooltogether/pooltogether--brand-assets/blob/977e03604c49c63314450b5d432fe57d34747c66/logo/pooltogether-logo--purple-gradient.png?raw=true\" alt=\"PoolTogether Brand\" style=\"max-width:100%;\" width=\"400\"\u003e\n  \u003c/a\u003e\n\u003c/p\u003e\n\n# PoolTogether V5 Prize Pool\n\n[![Code Coverage](https://github.com/pooltogether/v5-prize-pool/actions/workflows/coverage.yml/badge.svg)](https://github.com/pooltogether/v5-prize-pool/actions/workflows/coverage.yml)\n[![built-with openzeppelin](https://img.shields.io/badge/built%20with-OpenZeppelin-3677FF)](https://docs.openzeppelin.com/)\n[![GPLv3 license](https://img.shields.io/badge/License-GPLv3-blue.svg)](http://perso.crans.org/besson/LICENSE.html)\n\n\u003cstrong\u003eHave questions or want the latest news?\u003c/strong\u003e\n\u003cbr/\u003eJoin the PoolTogether Discord or follow us on Twitter:\n\n[![Discord](https://badgen.net/badge/icon/discord?icon=discord\u0026label)](https://pooltogether.com/discord)\n[![Twitter](https://badgen.net/badge/icon/twitter?icon=twitter\u0026label)](https://twitter.com/PoolTogether_)\n\n## Overview\n\nIn PoolTogether V5 prizes are distributed through the Prize Pool contract. There is one Prize Pool deployed on each chain on which PT is deployed. The Prize Pool receives POOL tokens from Vaults, and releases the tokens as prizes in daily Draws. In this way, prize liquidity is isolated to a chain.\n\n- Accrued yield is sold by the Liquidator and sent to the Prize Pool.\n- Every \"Draw\" a random number is provided and given to the Prize Pool and the next set of prizes are available.\n- The Prize Pool determines a users chance of winning by reading historic data from the TWAB Controller.\n- The VRGDA Claimer allows users prizes to be claimed.\n\n## Development\n\n### Installation\n\nYou may have to install the following tools to use this repository:\n\n- [Foundry](https://github.com/foundry-rs/foundry) to compile and test contracts\n- [direnv](https://direnv.net/) to handle environment variables\n- [lcov](https://github.com/linux-test-project/lcov) to generate the code coverage report\n\nInstall dependencies:\n\n```\nnpm i\n```\n\n### Env\n\nCopy `.envrc.example` and write down the env variables needed to run this project.\n\n```\ncp .envrc.example .envrc\n```\n\nOnce your env variables are setup, load them with:\n\n```\ndirenv allow\n```\n\n### Compile\n\nRun the following command to compile the contracts:\n\n```\nnpm run compile\n```\n\n### Coverage\n\nForge is used for coverage, run it with:\n\n```\nnpm run coverage\n```\n\nYou can then consult the report by opening `coverage/index.html`:\n\n```\nopen coverage/index.html\n```\n\n### Code quality\n\n[Husky](https://typicode.github.io/husky/#/) is used to run [lint-staged](https://github.com/okonet/lint-staged) and tests when committing.\n\n[Prettier](https://prettier.io) is used to format TypeScript and Solidity code. Use it by running:\n\n```\nnpm run format\n```\n\n[Solhint](https://protofire.github.io/solhint/) is used to lint Solidity files. Run it with:\n\n```\nnpm run hint\n```\n\n### Tests\n\nTest names including `SLOW` will be skipped on default test runs and need to be explicitly run.\n\n### CI\n\nA default Github Actions workflow is setup to execute on push and pull request.\n\nIt will build the contracts and run the test coverage.\n\nYou can modify it here: [.github/workflows/coverage.yml](.github/workflows/coverage.yml)\n\nFor the coverage to work, you will need to setup the `MAINNET_RPC_URL` repository secret in the settings of your Github repository.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpooltogether%2Fv5-prize-pool","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpooltogether%2Fv5-prize-pool","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpooltogether%2Fv5-prize-pool/lists"}