{"id":29193920,"url":"https://github.com/intersectmbo/governance-scripts","last_synced_at":"2025-10-27T07:15:32.966Z","repository":{"id":300286662,"uuid":"1005787993","full_name":"IntersectMBO/governance-scripts","owner":"IntersectMBO","description":"Repository to hold shell scripts that Intersect uses to engage in Cardano on-chain governance.","archived":false,"fork":false,"pushed_at":"2025-06-27T23:36:02.000Z","size":42,"stargazers_count":2,"open_issues_count":6,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-06-28T00:25:36.810Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Shell","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/IntersectMBO.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,"zenodo":null}},"created_at":"2025-06-20T20:24:55.000Z","updated_at":"2025-06-27T23:29:49.000Z","dependencies_parsed_at":"2025-06-20T21:41:26.316Z","dependency_job_id":"ecb22625-b139-4177-bdad-284c89b44a64","html_url":"https://github.com/IntersectMBO/governance-scripts","commit_stats":null,"previous_names":["intersectmbo/governance-scripts"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/IntersectMBO/governance-scripts","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/IntersectMBO%2Fgovernance-scripts","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/IntersectMBO%2Fgovernance-scripts/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/IntersectMBO%2Fgovernance-scripts/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/IntersectMBO%2Fgovernance-scripts/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/IntersectMBO","download_url":"https://codeload.github.com/IntersectMBO/governance-scripts/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/IntersectMBO%2Fgovernance-scripts/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":263071247,"owners_count":23409255,"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":"2025-07-02T03:37:12.683Z","updated_at":"2025-10-27T07:15:32.957Z","avatar_url":"https://github.com/IntersectMBO.png","language":"Shell","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Governance Scripts\n\nThis repository holds shell scripts that Intersect uses to engage in Cardano on-chain governance.\n\n## Navigation\n\n### Scripts\n\n#### Governance (CIP-100+) Metadata Scripts\n\n- [metadata-create.sh](./scripts/metadata-create.sh)\n  - Creates governance action CIP-108+ (including [Intersect CIP108 schemas](https://github.com/IntersectMBO/governance-actions/tree/main/schemas)) JSONLD file\n  - Takes an inputted markdown file in expected shape\n\n- [metadata-validate.sh](./scripts/metadata-validate.sh)\n  - Compares governance metadata against the established schema(s)\n  - Supports CIP100, CIP108, CIP119, CIP136 and [Intersect CIP108 schemas](https://github.com/IntersectMBO/governance-actions/tree/main/schemas)\n  - Applies a spell check to CIP108 metadata fields\n\n- [metadata-canonize.sh](./scripts/metadata-canonize.sh)\n  - Uses cardano-singer to produce a blake2b-256 hash digest of a given metadata canonized body\n  - This is useful when trying to create author signatures\n\n#### Governance Action Scripts\n\n- [action-create-info.sh](./scripts/action-create-info.sh)\n  - Creates a info governance action from a Intersect metadata\n  - Uses a local cardano node socket file\n\n- [action-create-tw.sh](./scripts/action-create-tw.sh)\n  - Creates a treasury withdrawal governance action from a Intersect metadata\n  - Uses a local cardano node socket file\n\n#### IPFS Scripts\n\n- [ipfs-check.sh](./scripts/ipfs-check.sh)\n  - Checks if a file is accessible via free IPFS gateways\n- [ipfs-pin.sh](./scripts/ipfs-pin.sh)\n  - Allows user to pin JSONLD file(s) on a number of pinning services\n  - Optionally allows the user to check file's discoverability first\n\n#### CIP-108 Scripts\n\n- [cip-108-create-human-readable.sh](./scripts/cip-108-create-human-readable.sh)\n  - Creates a markdown file from CIP108 metadata\n\n#### CIP-100 Author Scripts\n\n- [author-create.sh](./scripts/author-create.sh)\n  - Adds an author witness to CIP100/CIP108 metadata\n- [author-validate.sh](./scripts/author-validate.sh)\n  - Checks the correctness of CIP100/CIP108 metadata with a author(s) witness(es)\n\n#### (archive) 2025 Budget Scripts\n\nNote: These are really only useful for archival reasons.\n\n- [budget-metadata-validate.sh](./scripts/archive/budget-metadata-validate.sh)\n  - Runs correctness and validity checks for budget treasury withdrawal CIP108 metadata.\n  - Uses a combination of the other scripts\n- [budget-metadata-create.sh](./scripts/archive/budget-metadata-create.sh)\n  - Creates Intersect budget metadata file from a `.docx`\n  - This expects certain structure within the `.docx`\n- [budget-action-create.sh](./scripts/archive/budget-action-create.sh)\n  - Creates Intersect budget treasury withdrawal file from a .jsonld\n\n#### Other Scripts\n\n- [hash.sh](./scripts/hash.sh)\n  - Performs a blake2b-256 hash on provided file\n- [pdf-remove-metadata.sh](./scripts/pdf-remove-metadata.sh)\n  - Removes PDF metadata from PDF files\n\n### Documentation\n\n- [2025 Budget Treasury Withdrawals](./docs/2025-budget-withdrawals.md)\n  - Documents the scripts and high level process to create the treasury withdrawal governance actions for the Intersect 2025 budget.\n\n## Dependencies\n\nIn order to run all of these scripts you will need\n\n- [ajv-cli](https://www.npmjs.com/package/ajv-cli)\n- aspell\n- b2sum\n- cardano-cli\n- [cardano-signer](https://github.com/gitmachtl/cardano-signer)\n- [ipfs](https://docs.ipfs.eth.link/install/command-line/)\n- jq\n\nprobably more I have missed...\n\n## Environment Variables\n\n### Cardano Node\n\nThe scripts that uses node variables are `action-create-xxx.sh`.\n\nThese expect `CARDANO_NODE_NETWORK_ID` and `CARDANO_NODE_SOCKET_PATH` to be set.\nSo you'll need a local cardano node socket path.\n\n### Secrets\n\nThe only script that uses secrets is `ipfs-pin.sh`.\n\nSecrets can be stored via `./scripts/.env` and based on `./scripts/.env.example`.\n\nThis is setup so you can run:\n\n```shell\nsource ./scripts/.env\n```\n\n## License\n\nSee [License](./LICENSE).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fintersectmbo%2Fgovernance-scripts","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fintersectmbo%2Fgovernance-scripts","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fintersectmbo%2Fgovernance-scripts/lists"}