___  ___    _ _    _  _ _____   _____
 / __|/ _ \  | | |  | || |_ _\ \ / / __|
| (_ | (_) | |_  _| | __ || | \ V /| _|
 \___|\___/    |_|  |_||_|___| \_/ |___|

 --- A GOPHER-LIKE INTERFACE FOR HIVE BLOCKCHAIN ---

Ultimate Stand off

BY: @ecency | CREATED: March 30, 2026, 7:23 a.m. | VOTES: 522 | PAYOUT: $30.32 | [ VOTE ]

Comprehensive Comparison and ultimate stand off of the dhive vs hive-tx vs hive-js vs wax libraries/packages helps you interact with Hive blockchain. Our team find these type of comparisons and analysis valuable to see which library to use when building on Hive.

Overview

@hiveio/hive-js
@hiveio/dhive
hive-tx
@hiveio/wax
Maintainer
@hiveio (community)
@hiveio (community)
@mahdiyari
@hiveio (core+community)
Language
JavaScript (ES6+Babel)
TypeScript 3.8
TypeScript 5.9
TypeScript + C++/WASM
Runtime deps
27
11+
4
1 (events)
Bundle size (gzip)
~154 KB
~210 KB
~29 KB
~3,341 KB
Source lines
~7,337
~5,956
~3,633
~8,796 + C++
Test lines
~1,500+
~1,579
~870
~18,339
Node.js req
4+
8+
20+
20.11+
Operations
49 (+SMT)
50 + 36 virtual
50+
100+
Type definitions
None
Full TS
Full TS
Full TS + branded
License
MIT
BSD-3-Clause-NML

1. Architecture Philosophy

hive-js — Fork of steem-js, the original Steem/Hive JS library. Callback-and-promise hybrid API using Bluebird's promisifyAll. Modular design with 7 top-level namespaces (api, auth, broadcast, formatter, memo, config, utils). Supports both HTTP and WebSocket transports (discontinued). The most "batteries-included" but also the heaviest and most legacy.

dhive — Clean rewrite of hive-js in TypeScript. OOP Client class with dedicated helper modules. Dropped WebSocket, callbacks, and Bluebird in favor of async/await. Leaner than hive-js but same conceptual model.

hive-tx — Minimalist, transaction-focused. No client class — configure globals and call standalone functions. Only 4 runtime deps. Modern ESM-first. Deliberately does less but does it with the smallest footprint.

wax — Three-layer: Protobuf → C++ WASM → TypeScript. The C++ core is the same code Hive nodes run. Heaviest bundle but strongest protocol guarantees. Pluggable signer architecture for wallet integrations.

2. Dependencies & Supply Chain

hive-js
dhive
hive-tx
wax
Crypto
ecurve, bigi, create-hash, browserify-aes, secure-random, ripemd160
secp256k1 (native), ecurve, bigi, ripemd160
@noble/curves, @noble/hashes, @noble/ciphers
C++ WASM (zero JS crypto)
HTTP
cross-fetch, ws
cross-fetch, node-fetch
Native fetch
Native fetch
Binary
bytebuffer
@ecency/bytebuffer
Custom ByteBuffer.ts
Protobuf + WASM
Promises
bluebird
Native
Native
Native
Utilities
lodash, debug, detect-node
verror, core-js, jsbi
None
events
Base58
bs58@4
bs58@4
bs58@6
WASM built-in
RPC auth
@steemit/rpc-auth
None
None
None
Total deps
27
11+
4
1

Verdict: hive-js has the largest attack surface — 27 deps including lodash, bluebird, and legacy Steem packages. hive-tx is the leanest (4 audited @noble libs). wax has zero JS crypto deps.

3. Transport & Streaming

Feature
hive-js
dhive
hive-tx
wax
HTTP/JSON-RPC
Yes
Yes
Yes
Yes
WebSocket
Yes
No
No
No
Block streaming
Yes (polling)
Yes (AsyncIterator)
No
No
Op streaming
Yes (streamOperations)
Via block stream
No
No
Tx streaming
Yes (streamTransactions)
Via block stream
No
No
Stream modes
head / irreversible
head / irreversible


Stream control
Release function
AsyncIterator break


REST API
No
No
Yes (9 typed endpoints)
Yes (extensible)

hive-js has the most granular streaming — you can stream block numbers, blocks, transactions, or individual operations separately. dhive provides a single getBlockStream() AsyncIterator that's more idiomatic modern JS. Neither hive-tx nor wax support streaming.

4. Crypto Operations

Capability
hive-js
dhive
hive-tx
wax
Key from WIF
Yes
Yes
Yes
Via signers
Key from seed
Yes
Yes
Yes
No
Key from login
Yes
Yes (fromLogin)
Yes (fromLogin)
No
Random key gen
Yes (secure-random)
No
Yes (randomKey)
No
Brain key
Yes
No
No
No
ECDSA signing
Yes
Yes
Yes
Yes (WASM)
Signature recovery
Yes
Yes
Yes
Yes
Memo encrypt/decrypt
Yes
Yes
Yes
Yes
Password verification
Yes (isWif, wifIsValid)
No
No
No
Key leak detection
No
No
No
Yes
Multiple signer backends
No
No
No
Yes (5 packages)

hive-js has the most key-related utilities (brain keys, password verification, role-based generation). wax is the most flexible for dApp integrations with pluggable signers.

5. API Surface

API Surface
hive-js
dhive
hive-tx
wax
Defined API methods
95
~30
Raw RPC
~10 typed
database_api
Yes (many methods)
DatabaseAPI class
Via callRPC
Typed defs
condenser_api
Yes (primary)
Partial
Via callRPC
No
broadcast
broadcast.* namespace
BroadcastAPI class
Transaction.broadcast()
OnlineTransaction
Block streaming
streamBlock/Ops/Tx
Blockchain helper
No
No
RC API
Yes
RCAPI class
Via callRPC
Typed rc_api
Hivemind
Yes
HivemindAPI class
Via callRPC/REST
Via REST
market_history_api
Yes
No
Via callRPC
No
Formatter utilities
Yes (reputation, vest→HIVE, account value)
No
No
Yes (WaxFormatter)
Auth helpers
Yes (add/remove key/account auth)
No
No
Yes (AccountAuthorityUpdate)
Complex op builders
No
No
No
Yes (BlogPost, Reply, etc.)
Quorum verification
No
No
Yes
No
Request interceptors
No
No
No
Yes

hive-js has the broadest legacy API coverage (95 methods). wax has the richest operation builders. hive-tx is the only one with quorum verification.

6. Serialization

Feature
hive-js
dhive
hive-tx
wax
Approach
Hand-written (3,200+ lines ops)
Hand-written (681 lines)
Hand-written (784 lines)
Protobuf + C++ WASM
Buffer lib
bytebuffer (npm)
@ecency/bytebuffer
Custom (612 lines)
Protobuf
Type system
Most verbose (1,187 lines)
Moderate
Moderate
Proto-generated
HF26 support
No
No
No
Yes
Legacy support
Yes (primary)
Yes (primary)
Yes (primary)
Yes (compat)
Binary debugging
No
No
No
Yes (binaryViewMetadata)
Protocol fidelity
Manual sync
Manual sync
Manual sync
Byte-for-byte match

wax wins on serialization correctness — it's the same C++ code the chain runs. The other three all maintain hand-written serializers that could theoretically diverge from the protocol.

7. Type Safety & Developer Experience

Feature
hive-js
dhive
hive-tx
wax
Language
JavaScript
TypeScript 3.8
TypeScript 5.9
TypeScript 5.x
Type definitions
None
Full
Full
Full + branded
Strict mode
N/A
Partial
Full
Full
ESM support
No (CJS only)
No (CJS only)
Yes (ESM+CJS+UMD)
Yes (ESM+CJS)
Tree-shaking
No
No
Yes
Partial
API style
Callbacks + Promises (Bluebird)
async/await
async/await
async/await
Operation typing
Runtime validation
Union types
Generic addOperation<O>
Protobuf-generated
IDE autocomplete
Poor
Good
Excellent
Excellent

hive-js is the weakest here — no TypeScript, no type definitions, callback-first API. hive-tx and wax offer the best modern DX.

8. Build & Bundle Size

Feature
hive-js
dhive
hive-tx
wax
Build tool
Babel + Webpack
Make + Browserify
TypeScript + Webpack
Make + Rollup + Emscripten
Outputs
CJS lib/ + UMD dist/
CJS lib/ + UMD dist/
ESM + CJS + UMD
ESM + CJS + WASM
Minified
554 KB
~925 KB
~90 KB
~3,341 KB
Gzipped
154 KB
210 KB
~29 KB
~3,341 KB
Source maps
Yes
Yes
Yes
Yes

Size ranking (smallest to largest gzipped): hive-tx (29 KB) → hive-js (154 KB) → dhive (210 KB) → wax (3,341 KB)

9. Error Handling

Feature
hive-js
dhive
hive-tx
wax
Error class
RPCError
VError (wrapped)
RPCError
Rich hierarchy (WaxError → subtypes)
Error context
Code + message
Full chain (VError)
Code + message + data
Request/response + assertion hash
Failover trigger
Error count threshold
Per-API health tracking
Retry + node rotation
Health checker module
Broadcast safety
No special handling
Won't retry on timeout
Ignores duplicate tx
Authority verify pre-broadcast
Key leak detection
No
No
No
Yes

10. Network Resilience

Feature
hive-js
dhive
hive-tx
wax
Default timeout
Configurable
60,000 ms
10,000 ms
2,000 ms
Failover
Error-count threshold
Per-API health tracking
Round-robin retry
Health checker
Retry library
retry (npm)
Custom exponential backoff
Built-in
Built-in
Quorum reads
No
No
Yes
No
WebSocket fallback
Yes
No
No
No
RPC auth signing
Yes (@steemit/rpc-auth)
No
No
No

11. Unique Features Per Library

hive-js only

dhive only

hive-tx only

wax only

12. When to Use Each

Use hive-js when:

Use dhive when:

Use hive-tx when:

Use wax when:

Summary Matrix

Dimension
Winner
Smallest footprint
hive-tx (29 KB, 4 deps)
Protocol fidelity
wax (C++ WASM)
Block/op streaming
hive-js (most granular)
Wallet integration
wax (5 signer packages)
Modern JS/TS DX
hive-tx (ESM, TS 5.9)
Broadest legacy API
hive-js (95 methods)
Complex op builders
wax (BlogPost, Community, etc.)
Test coverage
wax (18K lines)
Security features
wax (key leak, authority verify)
Network resilience
dhive (per-API health tracking)
Quorum consensus
hive-tx (unique)
Legacy compat
hive-js (Node 4+, callbacks)
REST APIs
hive-tx (9 typed endpoints)
Formatter utilities
hive-js (reputation, vesting, etc.)
WebSocket support
hive-js (only one)

Depending on what you are building, this comparison or overview gives you clear detailed differences. Keep on building!

Hive on!

TAGS: [ #HiveDevs ] [ #hive ] [ #developers ] [ #builders ] [ #dapps ] [ #libraries ] [ #blockchain ] [ #development ] [ #web3 ] [ #comparison ]

Replies

@seckorama | March 30, 2026, 7:54 a.m. | Votes: 0 | [ VOTE ]

That's a great comparison. Developers need this! 👍

@aftabirshad | March 30, 2026, 8:16 a.m. | Votes: 1 | [ VOTE ]

Great comparison.

As a builder in the Hive ecosystem and founder of HivePostify, I really appreciate this detailed breakdown.

In my experience, choosing the right library depends on the use case. Lightweight apps benefit from hive-tx, while more complex dApps can use wax for security and protocol-level accuracy.

I look forward to more of these in-depth technical comparisons in the Hive ecosystem.

Posted Via HivePostify

@hivepostify | March 30, 2026, 8:21 a.m. | Votes: 1 | [ VOTE ]

Excellent breakdown.

From HivePostify's perspective, this kind of deep comparison helps builders choose the right tools based on real needs instead of hype.

We’ve seen that lightweight solutions like hive-tx work well for fast and scalable features. More complex applications can benefit from wax’s strong security and protocol-level accuracy.

As the Hive ecosystem grows, this technical clarity is important for developers and platforms alike.

Keep up the great work.

@latinowinner | March 30, 2026, 9:50 a.m. | Votes: 0 | [ VOTE ]

good luck

@albertocova | March 30, 2026, 10:48 a.m. | Votes: 0 | [ VOTE ]

Se ve una gran batalla 🧐

@andablackwidow | March 30, 2026, 12:36 p.m. | Votes: 1 | [ VOTE ]

Calling @mtyszczak for comment :o)

@asgarth | March 30, 2026, 12:40 p.m. | Votes: 6 | [ VOTE ]

I have a question. Have you tried to instruct your coding agent to work with wax? How was your experience?

Do you have a link to docs your agent has been able to use to write code?

@mtyszczak | March 30, 2026, 1:06 p.m. | Votes: 3 | [ VOTE ]

Hello @asgarth ! Here is the high level Wax documentation: https://doc.openhive.network/wax/develop/manual

@asgarth | March 30, 2026, 1:18 p.m. | Votes: 1 | [ VOTE ]

Thanks, will give it another try.
Last time I tested it the agent ended up using dhive because figuring out wax was not easy enough.

@mtyszczak | March 30, 2026, 1:04 p.m. | Votes: 3 | [ VOTE ]

Thank you @andablackwidow for tagging me!

Great article @ecency ! Thanks for mentioning wax 💪

Here is our package on npm: https://www.npmjs.com/package/@hiveio/wax
Here is the high-level documentation: https://doc.openhive.network/wax/develop/manual

Here are some corrections for @hiveio/wax 💯:

  1. @hiveio/wax gzip size is 1.08 MiB (not ~3,341 KB)
  2. The license is MIT
  3. Wax itself can't stream blocks/transactions, but @hiveio/workerbee can (which is based on Wax) - https://doc.openhive.network/workerbee/main/manual
  4. Wax itself does not manage user keys, but you can generate the private key from seed (getPrivateKeyFromPassword), and suggest the brain key + private key (suggestBrainKey).
  5. Wax has no explicit method for password verification, but you can verify the private key, by calling calculatePublicKey method
  6. Wax has a predefined set of JSON-RPC methods, but you can also use extensible wax features by extending Chain interface with api packages, providing FULLY TYPED access to JSON-RPC API, along with the REST API (e.g. https://www.npmjs.com/package/@hiveio/wax-api-jsonrpc). Those packages are automatically generated on the CI to ensure you can use the latest REST API as soon as it is implemented.
  7. Wax provides only the ESM version (No CommonJS natively)
  8. Wax does not provide source maps in the bundle
  9. Timeout is configurable
  10. Wax does not provide the built-in retry library (yet!)
  11. Wax formatter is far more advanced and customizable than any other library.

Wax also passed an independent security audit as a dependency of @hiveio/metamask-snap!

@urun | March 30, 2026, 4:37 p.m. | Votes: 0 | [ VOTE ]

some building, idk what dat means but cool!

@ura-soul | March 30, 2026, 9:20 p.m. | Votes: 1 | [ VOTE ]

great info, thanks for sharing

@car78 | March 31, 2026, 2:16 a.m. | Votes: 0 | [ VOTE ]

Excelente publicación.. gracias

@bala41288 | April 1, 2026, 5:52 p.m. | Votes: 1 | [ VOTE ]

This is a great report. I was going to revisit the Hive libraries on my applications. This article will be very helpful for my decision-making. Thanks for compiling this.

@irisworld | April 1, 2026, 6:49 p.m. | Votes: 0 | [ VOTE ]

Awesome post! Thank you for your time and sharing that info.
!BBH

@jenny69 | April 3, 2026, 1:53 p.m. | Votes: 0 | [ VOTE ]

For builders

[ BACK TO TRENDING ] [ BACK TO MENU ]
CMD>