{"id":23278831,"url":"https://github.com/solana-developers/verify-squads","last_synced_at":"2025-04-06T12:43:03.059Z","repository":{"id":268723379,"uuid":"905234800","full_name":"solana-developers/verify-squads","owner":"solana-developers","description":"A test program to verify via squads","archived":false,"fork":false,"pushed_at":"2024-12-18T15:38:01.000Z","size":17,"stargazers_count":2,"open_issues_count":1,"forks_count":2,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-02-12T18:36:54.973Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/solana-developers.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}},"created_at":"2024-12-18T12:25:59.000Z","updated_at":"2025-02-10T22:48:13.000Z","dependencies_parsed_at":"2024-12-19T22:35:42.350Z","dependency_job_id":null,"html_url":"https://github.com/solana-developers/verify-squads","commit_stats":null,"previous_names":["woody4618/verify-squads","solana-developers/verify-squads"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/solana-developers%2Fverify-squads","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/solana-developers%2Fverify-squads/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/solana-developers%2Fverify-squads/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/solana-developers%2Fverify-squads/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/solana-developers","download_url":"https://codeload.github.com/solana-developers/verify-squads/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247485294,"owners_count":20946397,"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-12-19T22:35:20.820Z","updated_at":"2025-04-06T12:43:03.038Z","avatar_url":"https://github.com/solana-developers.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"This is an example program to show how to verify a program whos upgrade authority is a multisig.\n\nFirst build the program:\n\n```bash\nsolana-verify build\n```\n\nThis will build a verifiable build using a docker container using solana version 2.1.0 which is taken from the cargo.lock file.\n\n```bash\nsolana config set --url \"AProperMainnetRPCNodeAddress\" // the public endpoint will be ratelimted too much\nsolana program deploy target/deploy/verify_squads.so\n```\n\nGet program id -\u003e 6XBGfP17P3KQAKoJb2s5M5fR4aFTXzPeuC1af2GYkvhD\n\nOnce that is done we commit the project to github: https://github.com/Woody4618/verify-squads\n\nThen we see if we can verify the program using:\n\n```bash\nsolana-verify verify-from-repo https://github.com/Woody4618/verify-squads --program-id 6XBGfP17P3KQAKoJb2s5M5fR4aFTXzPeuC1af2GYkvhD --remote\n```\n\nPick yes when asked to upload onchain data. Then wait for the remote job to be finished. This can take multiple minutes.\n\nMultisig:\n\nFirst transfer your programs authority to the multisig and copy the multisig authority. You need it in the next step.\n\n```bash\nsolana-verify export-pda-tx https://github.com/Woody4618/verify-squads --program-id 6XBGfP17P3KQAKoJb2s5M5fR4aFTXzPeuC1af2GYkvhD --uploader 3JG6ULvZVCrkKtSSskKNJGe8RNZGFe8Ruev9KUhxzK5K\n```\n\nThis will return you a base58 or base64 encoded transaction:\n\n```bash\nP6vBfcPaaXb8fZoT3NBAYEcdtEj7tubA1k2gBxmFKZ3UWF5YyrmDMFTvLKALCJoUuRsPAjMckudYruCu3eeWQtuDrFbEMLxLFutnKXac974fnkMivcwUdY66VLjbxQT6ATmcy7F4hBtz1G4P1h6iBJLhb8WtrtgY3i4qq45MUEb7RjuMEfUFXKrNgPdGxkz5xvMHq3dxKRcpmEK5k2DkeW6SUQYBVe19Ga3B9GyhTX8k3CMt9JCEah13WyRnQd8GjoK6sTEvGJym6xDNvmd8yiJYSNcaYwEJsjHEUf4Yh6kAC7ki2KRvVAr3NVe1gjqK9McrwSQjtUatvydTG8Zovcr7PPUEMf3yPMgKXjZLB2QpkH63yTTYdNAnWFuv9E6b6nYRqye5XcNi436yKw5U14fXh65yK34bgYLi9328UT1huJELsJU9BRGnGUmb6GWp6c2WL5BhnzgNTSnt9TXFfEgUMzhvKzpVBxLP44hwqqBdyUhHFysCF37531PnmiESq8x1xou23xJ6FcQbc199754MkqQd7tX9CUznGzAEqHGkzn3VBoJnojsKtgYmiTYbdRsT1CU18MbYEE7WvGAvXyxxbpNzbAcc94HrnM6cqRGmwhEBroPfFghTdmzg9D\n```\n\nGo to the squads transaction builder and import the base58 encoded transaction.\nMake sure that in the simulation the transaction only has a call to the osec verify program and the computer budget program and nothing else!\n\n```bash\nsolana-verify remote submit-job --program-id 6XBGfP17P3KQAKoJb2s5M5fR4aFTXzPeuC1af2GYkvhD --uploader 3JG6ULvZVCrkKtSSskKNJGe8RNZGFe8Ruev9KUhxzK5K\n```\n\nDoing an update to the program:\n\n```bash\nsolana-verify build\nsolana program write-buffer target/deploy/verify_squads.so --with-compute-unit-price 50000 --max-sign-attempts 50\n```\n\nThen transfer that buffer authority to the multisig.\n\n```bash\nsolana program set-buffer-authority Fu3k79g53ZozAj47uq1tXrFy4QbQYh7y745DDsxjtyLR --new-buffer-authority 3JG6ULvZVCrkKtSSskKNJGe8RNZGFe8Ruev9KUhxzK5K\n```\n\nExport the PDA upgrade transaction again:\n\n```bash\nsolana-verify export-pda-tx https://github.com/Woody4618/verify-squads --program-id 6XBGfP17P3KQAKoJb2s5M5fR4aFTXzPeuC1af2GYkvhD --uploader 3JG6ULvZVCrkKtSSskKNJGe8RNZGFe8Ruev9KUhxzK5K\n```\n\nhttps://solana.fm/tx/4zJ1vK2KToAwxuEYzTMLqPkcebjoi9rdeeyxtEEx9L5Q4vWDA8h6Rr4kPRuRxcV7ZLKMr6qx1LTWb6x3ZpUJaFUW?cluster=mainnet-alpha\n\nThen submit for another remote build:\n\n```bash\nsolana-verify remote submit-job --program-id 6XBGfP17P3KQAKoJb2s5M5fR4aFTXzPeuC1af2GYkvhD --uploader 3JG6ULvZVCrkKtSSskKNJGe8RNZGFe8Ruev9KUhxzK5K\n```\n\nShould result in something like this:\n\nVerification request sent with request id: b63339d2-163e-49ac-b55d-3454c1c2b5b3\nVerification in progress... ⏳\n[00:18:02]    ✅ Process completed. (Done in 18 minutes)                                                                                                      Program 6XBGfP17P3KQAKoJb2s5M5fR4aFTXzPeuC1af2GYkvhD has been verified. ✅\nThe provided GitHub build matches the on-chain hash.\nOn Chain Hash: 96f8c3d9400258f7759408d1f6f8435b4a24d9b52f5a0340d97907e567cb8773\nExecutable Hash: 96f8c3d9400258f7759408d1f6f8435b4a24d9b52f5a0340d97907e567cb8773\nRepo URL: https://github.com/Woody4618/verify-squads/tree/0fb0a2e30c15c51732c0ad5e837975a6f7bbc7ed\nCheck the verification status at: https://verify.osec.io/status/6XBGfP17P3KQAKoJb2s5M5fR4aFTXzPeuC1af2GYkvhD\nJob url: https://verify.osec.io/job/b63339d2-163e-49ac-b55d-3454c1c2b5b3\n\nGratulations you have verified your program after a multisig upgrade!\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsolana-developers%2Fverify-squads","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsolana-developers%2Fverify-squads","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsolana-developers%2Fverify-squads/lists"}