{"id":17707933,"url":"https://github.com/solana-program/stake","last_synced_at":"2025-02-27T07:30:08.860Z","repository":{"id":227820243,"uuid":"768750967","full_name":"solana-program/stake","owner":"solana-program","description":"The Solana Stake program and its clients","archived":false,"fork":false,"pushed_at":"2025-02-05T13:25:42.000Z","size":536,"stargazers_count":18,"open_issues_count":13,"forks_count":6,"subscribers_count":5,"default_branch":"main","last_synced_at":"2025-02-06T09:15:10.818Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Rust","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/solana-program.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":"2024-03-07T17:02:10.000Z","updated_at":"2025-02-05T16:49:47.000Z","dependencies_parsed_at":"2024-03-25T10:25:28.046Z","dependency_job_id":"2f5f6c00-c599-4864-9908-6cd4ff9bf322","html_url":"https://github.com/solana-program/stake","commit_stats":null,"previous_names":["solana-program/stake-program","solana-program/stake"],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/solana-program%2Fstake","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/solana-program%2Fstake/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/solana-program%2Fstake/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/solana-program%2Fstake/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/solana-program","download_url":"https://codeload.github.com/solana-program/stake/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":240993620,"owners_count":19890418,"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-10-25T02:00:33.698Z","updated_at":"2025-02-27T07:30:08.853Z","avatar_url":"https://github.com/solana-program.png","language":"Rust","funding_links":[],"categories":["Native","Rust"],"sub_categories":[],"readme":"# Stake\n\n\u003ca href=\"https://github.com/solana-program/stake/actions/workflows/main.yml\"\u003e\u003cimg src=\"https://img.shields.io/github/actions/workflow/status/solana-program/stake/main.yml?logo=GitHub\" /\u003e\u003c/a\u003e\n\u003ca href=\"https://explorer.solana.com/address/Stake11111111111111111111111111111111111111\"\u003e\u003cimg src=\"https://img.shields.io/badge/dynamic/json?url=https%3A%2F%2Fraw.githubusercontent.com%2Fsolana-program%2Fstake%2Fmain%2Fprogram%2Fidl.json\u0026query=%24.version\u0026label=program\u0026logo=data:image/svg%2bxml;base64,PHN2ZyB3aWR0aD0iMzEzIiBoZWlnaHQ9IjI4MSIgdmlld0JveD0iMCAwIDMxMyAyODEiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxnIGNsaXAtcGF0aD0idXJsKCNjbGlwMF80NzZfMjQzMCkiPgo8cGF0aCBkPSJNMzExLjMxOCAyMjEuMDU3TDI1OS42NiAyNzYuNTU4QzI1OC41MzcgMjc3Ljc2NCAyNTcuMTc4IDI3OC43MjUgMjU1LjY2OSAyNzkuMzgyQzI1NC4xNTkgMjgwLjAzOSAyNTIuNTMgMjgwLjM3OCAyNTAuODg0IDI4MC4zNzdINS45OTcxOUM0LjgyODcgMjgwLjM3NyAzLjY4NTY4IDI4MC4wMzUgMi43MDg1NSAyNzkuMzkzQzEuNzMxNDMgMjc4Ljc1MSAwLjk2Mjc3MSAyNzcuODM3IDAuNDk3MDIgMjc2Ljc2NEMwLjAzMTI2OTEgMjc1LjY5IC0wLjExMTI4NiAyNzQuNTA0IDAuMDg2ODcxMiAyNzMuMzVDMC4yODUwMjggMjcyLjE5NiAwLjgxNTI2NSAyNzEuMTI2IDEuNjEyNDMgMjcwLjI3TDUzLjMwOTkgMjE0Ljc2OUM1NC40Mjk5IDIxMy41NjYgNTUuNzg0MyAyMTIuNjA3IDU3LjI4OTMgMjExLjk1QzU4Ljc5NDMgMjExLjI5MyA2MC40MTc4IDIxMC45NTMgNjIuMDU5NSAyMTAuOTVIMzA2LjkzM0MzMDguMTAxIDIxMC45NSAzMDkuMjQ0IDIxMS4yOTIgMzEwLjIyMSAyMTEuOTM0QzMxMS4xOTkgMjEyLjU3NiAzMTEuOTY3IDIxMy40OSAzMTIuNDMzIDIxNC41NjRDMzEyLjg5OSAyMTUuNjM3IDMxMy4wNDEgMjE2LjgyNCAzMTIuODQzIDIxNy45NzdDMzEyLjY0NSAyMTkuMTMxIDMxMi4xMTUgMjIwLjIwMSAzMTEuMzE4IDIyMS4wNTdaTTI1OS42NiAxMDkuMjk0QzI1OC41MzcgMTA4LjA4OCAyNTcuMTc4IDEwNy4xMjcgMjU1LjY2OSAxMDYuNDdDMjU0LjE1OSAxMDUuODEzIDI1Mi41MyAxMDUuNDc0IDI1MC44ODQgMTA1LjQ3NUg1Ljk5NzE5QzQuODI4NyAxMDUuNDc1IDMuNjg1NjggMTA1LjgxNyAyLjcwODU1IDEwNi40NTlDMS43MzE0MyAxMDcuMTAxIDAuOTYyNzcxIDEwOC4wMTUgMC40OTcwMiAxMDkuMDg4QzAuMDMxMjY5MSAxMTAuMTYyIC0wLjExMTI4NiAxMTEuMzQ4IDAuMDg2ODcxMiAxMTIuNTAyQzAuMjg1MDI4IDExMy42NTYgMC44MTUyNjUgMTE0LjcyNiAxLjYxMjQzIDExNS41ODJMNTMuMzA5OSAxNzEuMDgzQzU0LjQyOTkgMTcyLjI4NiA1NS43ODQzIDE3My4yNDUgNTcuMjg5MyAxNzMuOTAyQzU4Ljc5NDMgMTc0LjU1OSA2MC40MTc4IDE3NC44OTkgNjIuMDU5NSAxNzQuOTAySDMwNi45MzNDMzA4LjEwMSAxNzQuOTAyIDMwOS4yNDQgMTc0LjU2IDMxMC4yMjEgMTczLjkxOEMzMTEuMTk5IDE3My4yNzYgMzExLjk2NyAxNzIuMzYyIDMxMi40MzMgMTcxLjI4OEMzMTIuODk5IDE3MC4yMTUgMzEzLjA0MSAxNjkuMDI4IDMxMi44NDMgMTY3Ljg3NUMzMTIuNjQ1IDE2Ni43MjEgMzEyLjExNSAxNjUuNjUxIDMxMS4zMTggMTY0Ljc5NUwyNTkuNjYgMTA5LjI5NFpNNS45OTcxOSA2OS40MjY3SDI1MC44ODRDMjUyLjUzIDY5LjQyNzUgMjU0LjE1OSA2OS4wODkgMjU1LjY2OSA2OC40MzJDMjU3LjE3OCA2Ny43NzUxIDI1OC41MzcgNjYuODEzOSAyNTkuNjYgNjUuNjA4MkwzMTEuMzE4IDEwLjEwNjlDMzEyLjExNSA5LjI1MTA3IDMxMi42NDUgOC4xODA1NiAzMTIuODQzIDcuMDI2OTVDMzEzLjA0MSA1Ljg3MzM0IDMxMi44OTkgNC42ODY4NiAzMTIuNDMzIDMuNjEzM0MzMTEuOTY3IDIuNTM5NzQgMzExLjE5OSAxLjYyNTg2IDMxMC4yMjEgMC45ODM5NDFDMzA5LjI0NCAwLjM0MjAyNiAzMDguMTAxIDMuOTUzMTRlLTA1IDMwNi45MzMgMEw2Mi4wNTk1IDBDNjAuNDE3OCAwLjAwMjc5ODY2IDU4Ljc5NDMgMC4zNDMxNCA1Ny4yODkzIDAuOTk5OTUzQzU1Ljc4NDMgMS42NTY3NyA1NC40Mjk5IDIuNjE2MDcgNTMuMzA5OSAzLjgxODQ3TDEuNjI1NzYgNTkuMzE5N0MwLjgyOTM2MSA2MC4xNzQ4IDAuMjk5MzU5IDYxLjI0NCAwLjEwMDc1MiA2Mi4zOTY0Qy0wLjA5Nzg1MzkgNjMuNTQ4OCAwLjA0MzU2OTggNjQuNzM0MiAwLjUwNzY3OSA2NS44MDczQzAuOTcxNzg5IDY2Ljg4MDMgMS43Mzg0MSA2Ny43OTQzIDIuNzEzNTIgNjguNDM3MkMzLjY4ODYzIDY5LjA4MDIgNC44Mjk4NCA2OS40MjQgNS45OTcxOSA2OS40MjY3WiIgZmlsbD0idXJsKCNwYWludDBfbGluZWFyXzQ3Nl8yNDMwKSIvPgo8L2c+CjxkZWZzPgo8bGluZWFyR3JhZGllbnQgaWQ9InBhaW50MF9saW5lYXJfNDc2XzI0MzAiIHgxPSIyNi40MTUiIHkxPSIyODcuMDU5IiB4Mj0iMjgzLjczNSIgeTI9Ii0yLjQ5NTc0IiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSI+CjxzdG9wIG9mZnNldD0iMC4wOCIgc3RvcC1jb2xvcj0iIzk5NDVGRiIvPgo8c3RvcCBvZmZzZXQ9IjAuMyIgc3RvcC1jb2xvcj0iIzg3NTJGMyIvPgo8c3RvcCBvZmZzZXQ9IjAuNSIgc3RvcC1jb2xvcj0iIzU0OTdENSIvPgo8c3RvcCBvZmZzZXQ9IjAuNiIgc3RvcC1jb2xvcj0iIzQzQjRDQSIvPgo8c3RvcCBvZmZzZXQ9IjAuNzIiIHN0b3AtY29sb3I9IiMyOEUwQjkiLz4KPHN0b3Agb2Zmc2V0PSIwLjk3IiBzdG9wLWNvbG9yPSIjMTlGQjlCIi8+CjwvbGluZWFyR3JhZGllbnQ+CjxjbGlwUGF0aCBpZD0iY2xpcDBfNDc2XzI0MzAiPgo8cmVjdCB3aWR0aD0iMzEyLjkzIiBoZWlnaHQ9IjI4MC4zNzciIGZpbGw9IndoaXRlIi8+CjwvY2xpcFBhdGg+CjwvZGVmcz4KPC9zdmc+Cg==\u0026color=9945FF\" /\u003e\u003c/a\u003e\n\u003ca href=\"https://www.npmjs.com/package/@solana-program/stake\"\u003e\u003cimg src=\"https://img.shields.io/npm/v/%40solana-program%2Fstake?logo=npm\u0026color=377CC0\" /\u003e\u003c/a\u003e\n\u003ca href=\"https://crates.io/crates/solana-stake-client\"\u003e\u003cimg src=\"https://img.shields.io/crates/v/solana-stake-client?logo=rust\" /\u003e\u003c/a\u003e\n\nThis template should help get you started developing Solana programs. Let's walk through this generated program repository and see what's included.\n\n## Project setup\n\nThe first thing you'll want to do is install NPM dependencies which will allow you to access all the scripts and tools provided by this template.\n\n```sh\npnpm install\n```\n\n## Managing programs\n\nYou'll notice a `program` folder in the root of this repository. This is where your generated Solana program is located.\n\nWhilst only one program gets generated, note that you can have as many programs as you like in this repository.\nWhenever you add a new program folder to this repository, remember to add it to the `members` array of your root `Cargo.toml` file.\nThat way, your programs will be recognized by the following scripts that allow you to build, test, format and lint your programs respectively.\n\n```sh\npnpm programs:build\npnpm programs:test\npnpm programs:format\npnpm programs:lint\n```\n\n## Generating IDLs\n\nYou may use the following command to generate the IDLs for your programs.\n\n```sh\npnpm generate:idls\n```\n\nDepending on your program's framework, this will either use Shank or Anchor to generate the IDLs.\nNote that, to ensure IDLs are generated using the correct framework version, the specific version used by the program will be downloaded and used locally.\n\n## Generating clients\n\nOnce your programs' IDLs have been generated, you can generate clients for them using the following command.\n\n```sh\npnpm generate:clients\n```\n\nAlternatively, you can use the `generate` script to generate both the IDLs and the clients at once.\n\n```sh\npnpm generate\n```\n\n## Managing clients\n\nThe following clients are available for your programs. You may use the following links to learn more about each client.\n\n- [JS client](./clients/js)\n- [Rust client](./clients/rust)\n\n## Starting and stopping the local validator\n\nThe following script is available to start your local validator.\n\n```sh\npnpm validator:start\n```\n\nBy default, if a local validator is already running, the script will be skipped. You may use the `validator:restart` script instead to force the validator to restart.\n\n```sh\npnpm validator:restart\n```\n\nFinally, you may stop the local validator using the following command.\n\n```sh\npnpm validator:stop\n```\n\n## Using external programs in your validator\n\nIf your program requires any external programs to be running, you'll want to in your local validator.\n\nYou can do this by adding their program addresses to the `program-dependencies` array in the `Cargo.toml` of your program.\n\n```toml\nprogram-dependencies = [\n  \"metaqbxxUerdq28cj1RbAWkYQm3ybzjb6a8bt518x1s\",\n  \"noopb9bkMVfRPU8AsbpTUg8AQkHtKwMYZiFUjNRtMmV\",\n]\n```\n\nNext time you build your program and run your validator, these external programs will automatically be fetched from mainnet and used in your local validator.\n\n```sh\npnpm programs:build\npnpm validator:restart\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsolana-program%2Fstake","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsolana-program%2Fstake","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsolana-program%2Fstake/lists"}