{"id":13525554,"url":"https://github.com/Benjamin-Loison/Internet-Computer-Bitcoin-Library","last_synced_at":"2025-04-01T05:31:48.661Z","repository":{"id":135597997,"uuid":"550737084","full_name":"Benjamin-Loison/Internet-Computer-Bitcoin-Library","owner":"Benjamin-Loison","description":null,"archived":false,"fork":false,"pushed_at":"2022-10-17T14:03:12.000Z","size":74,"stargazers_count":10,"open_issues_count":16,"forks_count":1,"subscribers_count":2,"default_branch":"main","last_synced_at":"2024-08-02T06:17:41.259Z","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":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Benjamin-Loison.png","metadata":{"files":{"readme":"README.adoc","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}},"created_at":"2022-10-13T08:43:54.000Z","updated_at":"2024-07-29T11:15:24.000Z","dependencies_parsed_at":"2024-01-13T22:53:23.109Z","dependency_job_id":"58593933-68cb-4523-ae46-e56ec31bbf43","html_url":"https://github.com/Benjamin-Loison/Internet-Computer-Bitcoin-Library","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Benjamin-Loison%2FInternet-Computer-Bitcoin-Library","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Benjamin-Loison%2FInternet-Computer-Bitcoin-Library/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Benjamin-Loison%2FInternet-Computer-Bitcoin-Library/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Benjamin-Loison%2FInternet-Computer-Bitcoin-Library/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Benjamin-Loison","download_url":"https://codeload.github.com/Benjamin-Loison/Internet-Computer-Bitcoin-Library/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":222703639,"owners_count":17025835,"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-08-01T06:01:19.913Z","updated_at":"2024-11-02T10:30:35.384Z","avatar_url":"https://github.com/Benjamin-Loison.png","language":"Rust","funding_links":[],"categories":["Chain Fusion"],"sub_categories":["Bitcoin"],"readme":":hardbreaks-option:\n\n= Internet Computer Bitcoin Library\n\nThe library provides Bitcoin functionality built on top of the low-level Bitcoin integration API.\nThe library provides the following functionality:\n\n* It can generate and manage Bitcoin addresses, supporting various address types.\n* Given a valid Bitcoin address, it can get the unspent transaction outputs (UTXOs) and the balance of it.\n* It can send bitcoins using UTXOs collected from managed addresses with various options to set the transaction fee.\n// * It can update unconfirmed Bitcoins transactions.\n* It can get current Bitcoin transaction fees.\n\nThe library supports local deployments in Bitcoin regtest mode and in Bitcoin testnet mode when running on the Internet Computer.\n\n//* Motoko documentation is available xref:motoko/README.adoc[here].\n* Rust documentation is available https://docs.rs/ic-btc-library[here].\n\n== Disclaimer\n\nWhile the library is reasonably well tested, it is still under development, therefore use it *at your own risk*.\n\nThis library is *work in progress* and is *not production-grade* yet. At least the following aspects of the library need further consideration before using it in production use cases:\n\n* Canister upgradability and management of state related to the library requires further consideration before the library can be used in production. If upgradeability of a canister w.r.t. the replicated state managed by the library is flawed, we risk canisters to break on an upgrade in production, in the worst case in a non-recoverable or hard-to-recover fashion.\n* More test coverage would be important for some parts of the code.\n* We have not gained much experience yet in using the library in real-world use cases.\n\n== Networks\n\nDuring your canister development, you might be interested in testing your canister with fake bitcoins. In order to do this, you can run a local Bitcoin blockchain in https://developer.bitcoin.org/examples/testing.html#regtest-mode[Regtest mode].\nFor more details, see here:\n\n//* xref:motoko/docs/testing-locally.adoc[Motoko documentation].\n* https://docs.rs/ic-btc-library#4-testing-locally[Rust documentation].\n\nIf you are more confident with your canister code, you can deploy it on the Internet Computer but continue to use fake Bitcoin by making use of the https://developer.bitcoin.org/examples/testing.html#testnet[Bitcoin testnet].\nIf you want to put your canister into production using real bitcoins, you can then switch over to Bitcoin mainnet.\n\n== Release notes\n\n=== Features to come\n\nThis first version only supports Rust, however support for Motoko will be added soon.\n\n*Update unconfirmed transactions using replace-by-fee.*\n\nCanisters will be able to update unconfirmed transactions using https://github.com/bitcoin/bips/blob/master/bip-0125.mediawiki[replace-by-fee] by issuing a new transaction with a higher transaction fee.\n\n*Furthermore two simple examples using the `ic-btc-library` will be provided.*\n\n1. The https://github.com/dfinity/bitcoin-developer-preview[bitcoin-developer-preview] which showcases how developers can use the library.\n\n2. The https://github.com/dfinity/examples/tree/bitcoin_wallet/rust/bitcoin_wallet[sample dApp] which is a Bitcoin wallet running fully on the Internet Computer.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FBenjamin-Loison%2FInternet-Computer-Bitcoin-Library","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FBenjamin-Loison%2FInternet-Computer-Bitcoin-Library","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FBenjamin-Loison%2FInternet-Computer-Bitcoin-Library/lists"}