Hi everyone, we have a new Sign-in solution for Bitcoin Wallet, so called “Sign-In with Bitcoin” aka ic-siwb.
The project is forked and modified from the project we love: is-siwe, thanks @kristofer . If you are familiar with ic-siwe, then you will find it very easy to configure and use the ic-siwb.
Features
Bitcoin Wallet Sign-In: Sign in with popular btc wallets (currently with Wizz Wallet and Unisat wallet ) to generate an IC identity and session.
----- forked from SIWE ----
Session Identity Uniqueness: Ensures that session identities are specific to each application’s context, preventing cross-app identity misuse.
Consistent Principal Generation: Guarantees that logging in with an Bitcoin wallet consistently produces the same Principal, irrespective of the client used.
Direct Bitcoin Address to Principal Mapping: Creates a one-to-one correlation between Bitcoin addresses and Principals within the scope of the current application.
Timebound Sessions: Allows developers to set expiration times for sessions, enhancing security and control.
Prebuilt Identity Provider: Provides a prebuilt canister that can be integrated into any Internet Computer application, independent of the application’s programming language.
TODOS:
Integrated Tests: we need test cases to make sure the code is running correctly.
**More wallet supports **: we need more wallet supports, for example: OKX Wallet, Xverse, Hiro and more. And customizable provider to support more.
Prebuild and Deployed Canister: we need a canister to generate global stable identity, it’s best to be governed, upgraded and run by NNS.
Documentation: we need documentation on everything, codes and examples.
Publishing: crates and npm packages.
Next steps:
more developers use and fork, and maintain the code.
Amazing work on siwb! I’m trying to use it in my project but struggling to figure out the parameters for deploying ic_siwb_provider. Could you update the README and Makefiles with the commands and steps for the whole setup?
error[E0282]: type annotations needed for `Box<_>`
--> /Users/foo/.cargo/registry/src/index.crates.io-6f17d22bba15001f/time-0.3.31/src/format_description/parse/mod.rs:83:9
|
83 | let items = format_items
| ^^^^^
...
86 | Ok(items.into())
| ---- type must be known at this point
|
help: consider giving `items` an explicit type, where the placeholders `_` are specified
|
83 | let items: Box<_> = format_items
| ++++++++
For more information about this error, try `rustc --explain E0282`.
error: could not compile `time` (lib) due to 1 previous error
warning: build failed, waiting for other jobs to finish...
Error: Failed while trying to deploy canisters.
Caused by: Failed to build all canisters.
Caused by: Failed while trying to build all canisters.
Caused by: The build step failed for canister 'bd3sg-teaaa-aaaaa-qaaba-cai' (ic_siwb_provider)
Caused by: Failed to build Rust canister 'ic_siwb_provider'.
Caused by: Failed to compile the rust package: ic_siwb_provider
can we have a release version of the ic-siwb?
will be easier for me to specify the link to the wasm and candid in the dfx.json file.