Some of my recent Hive apps have required deeper chain-native tooling, so this release focuses on one thing: making it easier to build real products on top of Hive without writing low-level transaction boilerplate.
This update brings native support for escrow operations, multisig workflows, recurrent transfers, proposal actions, and better contract runtime behavior.
What’s New
1) Native Hive Escrow Support
Hive escrow is now supported end-to-end in the library:
- escrowTransfer
- escrowApprove
- escrowDispute
- escrowRelease
You can now also subscribe to escrow operations in the stream layer:
- onEscrowTransfer
- onEscrowApprove
- onEscrowDispute
- onEscrowRelease
And if you include a contract payload inside escrow json_meta, escrow transfers can trigger contract actions directly.
await streamer.escrowTransfer({
from: 'alice',
to: 'bob',
agent: 'trusted.agent',
escrow_id: 101,
hive_amount: '5.000 HIVE',
hbd_amount: '0.000 HBD',
fee: '0.010 HIVE',
ratification_deadline: '2026-02-20T00:00:00',
escrow_expiration: '2026-03-01T00:00:00',
json_meta: {
hive_stream: {
contract: 'marketplace',
action: 'createOrder',
payload: { orderId: 'ORDER-101' }
}
}
});
2) Multisig Support for Real Account Security
This release adds first-class multisig building blocks:
- createAuthority(...)
- updateAccountAuthorities(...)
- broadcastOperations(...)
- broadcastMultiSigOperations(...)
That means you can now define threshold-based account authority and broadcast operations with multiple signatures in a clean API.
const activeAuthority = streamer.createAuthority(
[
['STM...', 1],
['STM...', 1]
],
[],
2 // threshold
);
await streamer.updateAccountAuthorities('myaccount', {
active: activeAuthority,
useAccountUpdate2: true
});
3) More Chain Features That Help Builders Ship
Added support for:
- recurrentTransfer (scheduled recurring payments)
- createProposal
- updateProposalVotes
- removeProposals
These are practical operations for subscriptions, payroll-style distributions, treasury tooling, and governance interfaces.
4) Better Smart Contract Runtime
The contract system was upgraded to support more real-world triggers and better context:
- New triggers: escrow_transfer, escrow_approve, escrow_dispute, escrow_release, recurrent_transfer
- Richer context: escrow details + raw operation metadata
- Cleaner path to build event-driven contracts without custom parser code
const escrowContract = defineContract({
name: 'escrowcontract',
actions: {
create: action(async (payload, ctx) => {
// ctx.escrow is available here
// ctx.operation has raw op data
}, { trigger: 'escrow_transfer' })
}
});
5) Important Bug + Reliability Fixes
This release also fixes and hardens critical internals:
- Fixed transferHiveEngineTokens argument ordering bug in the streamer wrapper.
- Fixed onCustomJsonId callback routing so only matching IDs fire.
- Improved adapter safety by passing block/transaction metadata per operation (reduces race risk under concurrent processing).
- Properly awaits adapter teardown on stop() to improve shutdown consistency.
6) Tests and Documentation
- Added focused test coverage for escrow + multisig + regression cases.
- Updated README with new APIs and examples.
- Extended contract trigger docs to reflect new operation support.
Why This Matters
Hive already has powerful native primitives, but most apps lose time on glue code and edge cases. This update closes that gap by exposing those primitives directly in hive-stream with a cleaner builder experience.
You can now build:
- escrow-backed marketplaces
- multisig-secured operations
- recurring payment products
- governance dashboards
- contract-driven automations
with less custom infrastructure.
Feedback Wanted
If you’re building for Hive and want support for additional native ops (or contract ergonomics), share your use case. The goal is simple: reduce boilerplate and let builders focus on product logic.