Secure key management for Hive blockchain
Standalone wallet daemon with HTTP & WebSocket API. Sign transactions without running a full node. Available as native C++ daemon and npm package.
Powering the Hive ecosystem
Everything you need for secure key management
Battle-tested wallet daemon trusted by the Hive ecosystem
Native & WASM
Run as a C++ HTTP daemon or use the npm package directly in browser and Node.js
Secure Key Isolation
Private keys never leave the process. Sign transactions without exposing secrets
Multi-Session Support
Token-based sessions with concurrent access. Multiple users, one daemon
Auto-Lock Timeout
Wallets automatically lock after configurable inactivity period. Default 900s
22 API Endpoints
Complete JSON-RPC API over HTTP and WebSocket. Create, sign, encrypt — all via API
Built-in Encryption
Diffie-Hellman memo-style encrypt/decrypt. Secure messaging without extra libraries
One core, two targets
Shared C++ library powers both the native daemon and browser-ready WASM package
Shared Core
C++ Library
Wallet Management · Encryption · Key Storage
Native Daemon
C++ / Boost
HTTP & WebSocket server
WASM Package
Emscripten / TypeScript
@hiveio/beekeeper
JSON-RPC API
22 endpoints
Browser & Node.js
< 274 KB bundle
Simple, powerful API
Get started with just a few lines of code
import { createBeekeeper } from "@hiveio/beekeeper";
const beekeeper = await createBeekeeper();
const session = beekeeper.createSession("my.salt");
const wallet = await session.createWallet("my_wallet", "password123");
// Import a private key
await wallet.importKey("5JkFnXrLM2ap9t3AmAxBJvQHF7xSKtnTrCTginQCkhzU5Ls5Kgz");
// Sign a transaction digest
const signature = wallet.signDigest(
"9a37a3a1e800f498035464c3e21e377a7a18dead30a8e01a68ca54860a1ed4ca"
);
console.log(signature.value);API Reference
Complete JSON-RPC interface — sessions, wallets, keys, signing and encryption
create_session Session Creates a new session, returns auth token
close_session Session Closes session, releases resources
create Wallet Creates a new wallet, auto-generates password
open Wallet Opens wallet from disk into session
close Wallet Closes wallet (file remains on disk)
has_wallet Wallet Checks if wallet exists
list_wallets Wallet Lists open wallets in session
list_created_wallets Wallet Lists all wallets on disk
lock Locking Locks wallet (keys cleared from memory)
lock_all Locking Locks all wallets in session
unlock Locking Unlocks wallet with password
set_timeout Locking Sets auto-lock timeout (default 900s)
is_wallet_unlocked Locking Checks if wallet is unlocked
import_key Keys Imports a WIF private key
import_keys Keys Batch import of private keys
remove_key Keys Removes a private key
get_public_keys Keys Lists public keys
has_matching_private_key Keys Checks if wallet holds the private key
sign_digest Signing Signs a transaction digest
encrypt_data Encryption Encrypts data via ECDH
decrypt_data Encryption Decrypts data
get_info System Server time and auto-lock info
get_version System Git revision SHA (no token required)
Stop managing keys manually
| Feature | Beekeeper | Manual |
|---|---|---|
| Encrypted wallet storage | ✓ | ✗ |
| Auto-lock on inactivity | ✓ | ✗ |
| Multi-session support | ✓ | ✗ |
| HTTP/WebSocket API | ✓ | ✗ |
| Browser WASM support | ✓ | ✗ |
| Transaction signing | ✓ | ✓ |
| Key import/export | ✓ | ✓ |
| Memo encryption | ✓ | ✗ |
| Bundle < 274 KB | ✓ | N/A |
Up and running in minutes
Install the package
Add Beekeeper to your project with your package manager of choice
npm install @hiveio/beekeeper Create a wallet
Initialize Beekeeper and create an encrypted wallet
import { createBeekeeper } from "@hiveio/beekeeper";
const beekeeper = await createBeekeeper();
const session = beekeeper.createSession("salt");
const wallet = await session.createWallet("my_wallet", "pass"); Sign transactions
Import keys and sign transaction digests securely
await wallet.importKey("5JkFnXrLM2ap...");
const sig = wallet.signDigest("9a37a3...");
console.log(sig.value);