{"id":19923363,"url":"https://github.com/gokiprotocol/goki-cli","last_synced_at":"2025-05-03T07:31:05.002Z","repository":{"id":37853159,"uuid":"438410582","full_name":"GokiProtocol/goki-cli","owner":"GokiProtocol","description":"CLI for the Goki Smart Wallet system.","archived":false,"fork":false,"pushed_at":"2023-03-02T18:00:34.000Z","size":1177,"stargazers_count":19,"open_issues_count":9,"forks_count":3,"subscribers_count":0,"default_branch":"master","last_synced_at":"2025-04-23T02:03:00.929Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"https://goki.so","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"agpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/GokiProtocol.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}},"created_at":"2021-12-14T21:52:28.000Z","updated_at":"2025-02-26T17:25:30.000Z","dependencies_parsed_at":"2023-02-06T06:50:11.408Z","dependency_job_id":null,"html_url":"https://github.com/GokiProtocol/goki-cli","commit_stats":null,"previous_names":[],"tags_count":9,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GokiProtocol%2Fgoki-cli","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GokiProtocol%2Fgoki-cli/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GokiProtocol%2Fgoki-cli/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GokiProtocol%2Fgoki-cli/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/GokiProtocol","download_url":"https://codeload.github.com/GokiProtocol/goki-cli/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":252156834,"owners_count":21703363,"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-12T22:13:59.439Z","updated_at":"2025-05-03T07:31:03.672Z","avatar_url":"https://github.com/GokiProtocol.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"# goki-cli\n\n[![Crates.io](https://img.shields.io/crates/v/goki)](https://crates.io/crates/goki)\n[![License](https://img.shields.io/crates/l/goki)](https://github.com/GokiProtocol/goki-cli/LICENSE)\n\n![Screenshot](images/screenshot.svg)\n\nCLI for the [Goki](https://goki.so) Smart Wallet system.\n\n## Installation\n\nFirst, make sure you have the Solana CLI tools installed. [Follow the instructions here.](https://docs.solana.com/cli/install-solana-cli-tools)\n\nNext, install Goki via Cargo like so:\n\n```bash\ncargo install goki\n\n# Or, if you want to install the latest code:\ncargo install --git https://github.com/GokiProtocol/goki-cli --locked\n```\n\n### As a Nix Flake\n\nA Cachix build is maintained at the `goki` repository.\n\nImport Goki by adding the following to your `flake.nix`:\n\n```nix\n{\n    # ...\n    inputs.goki-cli.url = \"github:GokiProtocol/goki-cli\";\n}\n```\n\nThe Goki CLI is exposed as the `defaultPackage` and on `packages.goki-cli`.\n\n## Usage\n\n### Setup\n\nGo to any directory and run the following command:\n\n```\ngoki init\n```\n\nThis will create a `.goki` directory, which you should add to your `.gitignore`.\n\nThe `.goki` directory contains keypairs that will contain the SOL you use for program deployment. You may want to back up this folder via an encrypted filestore such as [Keybase](https://keybase.io/). You should not be storing any sensitive funds in this wallet-- **only use this for program deploys.**\n\n### Upgrading a Program\n\nTo upgrade any existing program on Solana, run `goki upload-program-buffer`.\n\n```\nUploads a Solana program buffer.\n\nUSAGE:\n    goki upload-program-buffer [OPTIONS] --location \u003cLOCATION\u003e --program-id \u003cPROGRAM_ID\u003e\n\nOPTIONS:\n    -c, --cluster \u003cCLUSTER\u003e          Cluster to deploy to. Defaults to devnet. [default: devnet]\n    -h, --help                       Print help information\n    -l, --location \u003cLOCATION\u003e        The path to the Solana program buffer.\n    -p, --program-id \u003cPROGRAM_ID\u003e    The program being upgraded. The buffer authority will be the\n```\n\nFor example, let's say you wanted to upgrade the [Goki Token Signer program](https://crates.io/crates/token-signer) on mainnet. You would run the following command:\n\n```\ngoki upload-program-buffer --cluster mainnet --location gh:token_signer:GokiProtocol/goki@0.5.2 --program-id NFTUJzSHuUCsMMqMRJpB7PmbsaU7Wm51acdPk2FXMLn\n```\n\nIf the command is successful, you should now have a buffer of the Goki Token Signer program at release v0.5.2 deployed somewhere on mainnet, owned by the current upgrade authority of the Goki program. The upgrade authority (ideally a Goki Smart Wallet) would then be able to upgrade their program's bytecode to the contents of that uploaded buffer.\n\nIf you don't have enough SOL in your wallet, the command will fail and tell you what key you should be sending SOL to.\n\n#### Location\n\nThere are three formats of `location` that you may specify:\n\n- a `.so` artifact of a GitHub release, for example `gh:smart_wallet:GokiProtocol/goki@0.5.2`\n- a URL, for example `https://github.com/GokiProtocol/goki/releases/download/v0.5.2/smart_wallet.so`\n- a file path, for example `./target/deploy/smart_wallet.so`.\n\n## License\n\nAGPL-3.0\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgokiprotocol%2Fgoki-cli","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgokiprotocol%2Fgoki-cli","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgokiprotocol%2Fgoki-cli/lists"}