{"id":13525609,"url":"https://github.com/domwoe/schnorr_canister","last_synced_at":"2025-04-01T05:31:54.681Z","repository":{"id":213338743,"uuid":"733629259","full_name":"domwoe/schnorr_canister","owner":"domwoe","description":"Developer Preview of the Internet Computer (ICP)'s Threshold Schnorr Signing API","archived":true,"fork":false,"pushed_at":"2024-09-09T08:33:34.000Z","size":89,"stargazers_count":16,"open_issues_count":0,"forks_count":7,"subscribers_count":1,"default_branch":"main","last_synced_at":"2024-11-02T10:33:32.465Z","etag":null,"topics":["bip340","ed25519","internet-computer-protocol","schnorr-signatures"],"latest_commit_sha":null,"homepage":"https://a4gq6-oaaaa-aaaab-qaa4q-cai.raw.icp0.io/?id=6fwhw-fyaaa-aaaap-qb7ua-cai","language":"Rust","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/domwoe.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":"2023-12-19T19:02:50.000Z","updated_at":"2024-09-20T09:01:05.000Z","dependencies_parsed_at":"2023-12-20T14:35:17.676Z","dependency_job_id":"774cf27d-d492-423a-881c-a22badeec187","html_url":"https://github.com/domwoe/schnorr_canister","commit_stats":null,"previous_names":["domwoe/schnorr_canister"],"tags_count":6,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/domwoe%2Fschnorr_canister","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/domwoe%2Fschnorr_canister/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/domwoe%2Fschnorr_canister/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/domwoe%2Fschnorr_canister/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/domwoe","download_url":"https://codeload.github.com/domwoe/schnorr_canister/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246591349,"owners_count":20801982,"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":["bip340","ed25519","internet-computer-protocol","schnorr-signatures"],"created_at":"2024-08-01T06:01:20.347Z","updated_at":"2025-04-01T05:31:52.965Z","avatar_url":"https://github.com/domwoe.png","language":"Rust","funding_links":[],"categories":["Chain Fusion"],"sub_categories":["Bitcoin"],"readme":"# Schnorr Signature Canister\n\n\u003e :warning: 2024/08/13 The [Deuterium Milestone](https://x.com/dfinity/status/1823341406254985448) has gone live which enables threshold signing for the BIP340 algorithm on mainnet. Ed25519 is available as a test key as well. Check out the [developer docs](https://internetcomputer.org/docs/current/developer-docs/smart-contracts/signatures/signing-messages-t-schnorr).\n\nThe purpose of the canister is to act as a developer preview for the Schnorr threshold signing API of the Internet Computer that is currently under development. The interface is compliant (with the exception that the final API will require attached cycles) with the [current draft for the Management Canister API](https://github.com/dfinity/interface-spec/pull/288) and will be updated as the API is updated.\n\nIf you are interested in building applications using threshold Schnorr you can get started today, and switch to the Management Canister API as soon as it is available. For ideas on what to build check out the [forum post](https://forum.dfinity.org/t/threshold-schnorr-facilitating-brc-20-trading-solana-integration-certificate-signing-and-more/28993) and the [Buidl on Bitcoin RFP](https://github.com/dfinity/grant-rfps/issues/58). \n\nFor general updates on the development, please refer to the following [forum post](https://forum.dfinity.org/t/threshold-schnorr-facilitating-brc-20-trading-solana-integration-certificate-signing-and-more/28993).\n\nDO NOT USE IN PRODUCTION! KEY MATERIAL COULD BE ACCESSED BY NODE PROVIDERS AND WE DON'T GUARANTEE THAT THIS CANISTER WILL STAY AVAILABLE. SEEDS ARE STORED IN STABLE MEMORY BUT WE DON'T GUARANTEE THAT KEYS MIGHT CHANGE DUE TO REINSTALLATION OF THE CANISTER.\n\n## Supported Algorithms\n\n- BIP340 (secp256k1) used for Bitcoin Taproot\n- Ed25519 used in Solana, Cardano, Polkaddot, and others. Furthermore, it is approved by NIST and widely used in Web2.\n\n## Add the canister to your project\n\nAdd the following to your `dfx.json` config file:\n\n```json\n{\n  \"canisters\": {\n    \"schnorr_canister\": {\n      \"type\": \"custom\",\n      \"candid\": \"https://github.com/domwoe/schnorr_canister/releases/latest/download/schnorr_canister.did\",\n      \"wasm\": \"https://github.com/domwoe/schnorr_canister/releases/latest/download/schnorr_canister.wasm.gz\",\n      \"remote\": {\n        \"id\": {\n          \"ic\": \"6fwhw-fyaaa-aaaap-qb7ua-cai\",\n          \"playground\": \"6fwhw-fyaaa-aaaap-qb7ua-cai\"\n        }\n      }\n    }\n  }\n}\n```\n\n## Running the project locally\n\nIf you want to test your project locally, you can use the following commands:\n\n```bash\n# Starts the replica, running in the background\ndfx start --clean --background\n\n# Deploys your canisters to the replica and generates your candid interface\n./scripts/deploy.sh\n```\n\nOnce the job is completed, your application will be available at `http://localhost:4943?canisterId={asset_canister_id}`.\n\n### Testing\n\nWe use [PocketIC](https://github.com/dfinity/pocketic) for integration testing. Please make sure to have it installed and the `POCKET_IC_BIN` environment variable set to the path of the `pocket-ic` binary.\n\nYou can run the tests with the following command:\n\n```sh\n./scripts/test.sh\n```\n\n## Deployment on the Internet Computer\n\nThe canister is deployed to `6fwhw-fyaaa-aaaap-qb7ua-cai`. \n\nYou can check the Canid UI at [`https://a4gq6-oaaaa-aaaab-qaa4q-cai.raw.icp0.io/?id=6fwhw-fyaaa-aaaap-qb7ua-cai`](https://a4gq6-oaaaa-aaaab-qaa4q-cai.raw.icp0.io/?id=6fwhw-fyaaa-aaaap-qb7ua-cai).\n\nYou can also see how many signatures have been generated at [https://6fwhw-fyaaa-aaaap-qb7ua-cai.raw.icp0.io/](https://6fwhw-fyaaa-aaaap-qb7ua-cai.raw.icp0.io/).\n\n### Interact with Blast Playground\n\nYou can interact with the canister using the [Blast Playground](https://jglts-daaaa-aaaai-qnpma-cai.ic0.app/831.de93c1521f2395ef78586691ca27d4d3a0a937ebd0ffa442a1479769).\n\n## To Do\n\n- [ ] Potentially add cycles payments for creating signatures.\n\n\n## Credits\n\nThis canister is monitored by [CycleOps](https://cycleops.dev).\n\n\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdomwoe%2Fschnorr_canister","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdomwoe%2Fschnorr_canister","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdomwoe%2Fschnorr_canister/lists"}