Skip to main content

Connect your web-apps to Bitcoin

A very short and readable standard designed to converge the Bitcoin ecosystem. While the bulk of the standard is very simple, but strict — many parts of the standard are intentionally kept loose to allow for experimentation and future-proofness.

lib.ts
Page.tsx
import '@btckit/types';

const addresses = await window.btc?.request('getAddresses');

Bitcoin First
btckit is focused on Bitcoin first, while addressing interactions with L2s and similar protocols in a namespaced way.
JSON RPC 2.0
The protocol is primarily based on JSON RPC 2.0, a simple, lightweight, and a well-known standard also used for Bitcoin Core.
Flexible & Future-Proof
With a very strict core protocol, but loose individual methods, btckit is meant to be flexible and future-proof.
Backwards Compatible
btckit is inspired by other approaches, like webbtc. We will soon release a backwards compatible implementation of the protocol.

Roadmap

What's next for BtcKit

The core idea behind BtcKit has been in the works for a while. Now, given the increasing interest in Ordinals, it is a great time to release the protocol.
But, there is still work left to do…

Client implementation
btckit should have a reference implementation with all basic methods included. This implementation simplify edge-cases, e.g. with multiple wallets installed.
Legacy fallbacks
A wrapper client could detect whether a browser wallet supports older protocols and can automatically relay to them, without stepping out of the BtcKit paradigm.
Wallet Connect
Technically, the defined params here could be reused for other similar protocols, which allow for JSON-compatible RPC params. BtcKit is sessionless, but the params can be reused elsewhere.
And much more...

Want to get started now?