🍊 OrangeKit
OrangeKit is a React library built for web applications, designed to seamlessly integrate them with Bitcoin wallets.
📌 Table of Contents
🚀 Features
OrangeKit currently provides the following:
- A "Connect Wallet" button component that supports signing in with:
- Xverse
- Unisat
- OrdinalSafe
- Other (Via manual message signing)
- Read connected wallet address
- BIP322 utilities:
- Signing
- Verify
🛠 Installation
npm install orangekit
# or
pnpm install orangekit
# or
yarn add orangekit
# or
bun install orangekit
🖥 Usage
App
import React from "react";
import { OrangeKitProvider } from "orangekit";
import "orangekit/dist/index.css";
export default function App() {
return (
<OrangeKitProvider>
<YourApp />
</OrangeKitProvider>
);
}
ConnectButton
import { ConnectButton } from "orangekit";
export default function YourApp() {
return <ConnectButton />;
}
📚 Reference
OrangeKitProvider
Properties:
- children: The components to render inside the provider.
- options: wallets: An array of wallet objects which the user can connect. Available wallets: {ordinalSafe, unisat, xverse, other} from "orangekit"
OrangeKitProvider({ children, options }: {
children: React.ReactNode;
options?: {
wallets?: Wallet[];
};
}):
ConnectButton
A component that triggers wallet connection.
useOrangeKit Hook
A custom hook that returns an object with various wallet functions and properties.
Methods & Properties:
- account: An object of type Account.
- signBip322: A function to sign a message using BIP322.
useOrangeKit(): {
account: Account;
signBip322: (message: string) => Promise<string>;
};
Account Type
Properties:
- connected: A boolean to check if a wallet is connected.
- address: The wallet address or null.
- balance: The balance of the wallet.
- network: Either 'livenet', 'testnet', or null. authenticated: A boolean to check if the account has been authenticated.
type Account = {
connected: boolean;
address: string | null;
balance: number;
network: "livenet" | "testnet" | null;
isAuthenticated: boolean;
};
🤝 Contribution Guidelines
We welcome all contributors to OrangeKit. Check out our CONTRIBUTING.md
for guidelines on how to contribute to this project.
❓ Support and Questions
For any questions or support, please open an issue in this repository.
📜 License
OrangeKit is licensed under the MIT License.