{"id":26171833,"url":"https://github.com/talismansociety/dot-pool-selector","last_synced_at":"2025-08-29T05:04:10.699Z","repository":{"id":62070442,"uuid":"544734353","full_name":"TalismanSociety/dot-pool-selector","owner":"TalismanSociety","description":"Select the best nomination pools algorithmically ","archived":false,"fork":false,"pushed_at":"2023-05-17T13:16:51.000Z","size":235,"stargazers_count":3,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-08-08T22:54:41.235Z","etag":null,"topics":["dotsama","staking"],"latest_commit_sha":null,"homepage":"https://docs.google.com/document/d/1bq6CHN68KmL3bBCm2j_HL88tsThTJV_1dVLQvbRrHPE/edit#","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/TalismanSociety.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,"zenodo":null}},"created_at":"2022-10-03T06:06:07.000Z","updated_at":"2025-02-04T14:10:58.000Z","dependencies_parsed_at":"2025-04-14T20:25:07.669Z","dependency_job_id":"c2833826-4e66-40aa-b37a-9717090674e3","html_url":"https://github.com/TalismanSociety/dot-pool-selector","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/TalismanSociety/dot-pool-selector","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TalismanSociety%2Fdot-pool-selector","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TalismanSociety%2Fdot-pool-selector/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TalismanSociety%2Fdot-pool-selector/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TalismanSociety%2Fdot-pool-selector/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/TalismanSociety","download_url":"https://codeload.github.com/TalismanSociety/dot-pool-selector/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TalismanSociety%2Fdot-pool-selector/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":272631632,"owners_count":24967104,"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-08-29T02:00:10.610Z","response_time":87,"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":["dotsama","staking"],"created_at":"2025-03-11T19:52:01.413Z","updated_at":"2025-08-29T05:04:10.665Z","avatar_url":"https://github.com/TalismanSociety.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# dot-pool-selector\nSelect the best nomination pools algorithmically\n\n## Criteria\nThe algorithm selects pools based on the following:\n\n- The root user is verified\n- The root user has skin in the game \n- The pool's validators meet general standards, see more [here](https://github.com/James-Sangalli/dot-validator-selector#criteria)\n- The pool is in an open state \n- The pool has selected an optimal number of validators\n\n## Getting started \nInstall the modules with `npm i` \u0026 run the tests with `npm run test`. \n\n## Usage \n```ts\n// Initialise the polkadot api object \nconst { ApiPromise, WsProvider} = require(\"@polkadot/api\");\nconst api = await ApiPromise.create({ provider: new WsProvider(\"YOUR_PROVIDER\") });\n\n// Initialise the ValidatorSelector\nconst selector = new ValidatorSelector(api, MAX_COMMISSION, MIN_STAKING, ERA); // set ERA to 0 or undefined if you want to use the current era\n\n// Initialise the PoolSelector\nconst poolSelector = new PoolSelector(\n    validatorSelector, // the initialised ValidatorSelector\n    api, // the initialised polkadot.js api object\n    options, // see ./src/Types.ts (uses a default object if unset) \n);\n\n// get validator pools meeting the criteria\npoolSelector.getPoolsMeetingCriteria();\n// sample output\n\u003e [{ \"pass\": true, \"poolId\": 10, \"poolStashAccountId\": \"F3opxRbN5ZavB4LTn2G7pUpU9FV2tzasBzFYncxp1HdYEdy\", \"poolRewardAccountId\": \"F3opxRbN5ZavB4LTn2Xrr2QadvgVT6Tbrvm6jJoGqAMorEE\", \"depositor\": \"H1bSKJxoxzxYRCdGQutVqFGeW7xU3AcN6vyEdZBU7Qb1rsZ\", \"root\": \"H1bSKJxoxzxYRCdGQutVqFGeW7xU3AcN6vyEdZBU7Qb1rsZ\", \"nominator\": \"H1bSKJxoxzxYRCdGQutVqFGeW7xU3AcN6vyEdZBU7Qb1rsZ\", \"stateToggler\": \"H1bSKJxoxzxYRCdGQutVqFGeW7xU3AcN6vyEdZBU7Qb1rsZ\", \"state\": \"Open\", \"memberCount\": 3 }, ...]\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftalismansociety%2Fdot-pool-selector","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftalismansociety%2Fdot-pool-selector","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftalismansociety%2Fdot-pool-selector/lists"}