📢 Steem.js v1.1.0 — Official Release of the Rewritten SDK
We are excited to announce the official release of the rebuild Steem.js SDK, version v1.1.0.
The latest dist-tag on npm has been pointed to v1.1.0, so npm install @steemit/steem-js now installs the new version by default.
This marks the culmination of a full rewrite that began at v1.0.0, stabilized through v1.0.21, and ships today as v1.1.0.
The Rebuild Journey
The legacy v0.8.0 codebase served the community for years, but its aging dependency stack (bigi, ecurve, crypto-browserify, bluebird, the WebSocket transport) had become a maintenance and security burden. Starting from v1.0.0, we undertook a complete rewrite from scratch on a fresh orphan branch, rebuilding every layer of the SDK with modern tooling and a hardened cryptographic core.
Along the way we shipped focused patch releases — RPC routing corrections, the bytebuffer new Buffer() patch, account_update authority JSON normalization, and the verifyTransaction binary-digest fix — culminating in a stable, production-verified v1.1.0.
What's New in the Rewrite
- Full TypeScript rewrite. Strict-mode TypeScript throughout, with generated type declarations shipped in the package. As of
v1.1.0, the seven explicitly-typed RPC methods (getAccounts,getAccountHistory,getDynamicGlobalProperties,getContent,getFollowers,getBlock,getConfig) return precise TypeScript interfaces that mirror the Steem C++ node'scondenser_api/database_api/follow_apiFC_REFLECTserialization structs (#542). - Modernized cryptography. Replaced the legacy
bigi/ecurve/crypto-browserifystack with@noble/hashes,@noble/ciphers, andelliptic+bn.jsfor secp256k1. The rewrite no longer depends on the historical@steemit/libcrypto. - Fixed
verifyTransaction. It now verifies signatures against the correct binary digestsha256(chain_id ‖ serializeTransaction(normalizedTrx)), mirroringsignTransactionexactly.serializeTransactionis now publicly exported so downstream services (e.g. wallet relays) can reconstruct the signing digest for server-side verification. - HTTP-only transport. The WebSocket transport has been removed in favor of a lean HTTP JSON-RPC client, and the RPC method registry is aligned with how modern Steem nodes actually route
condenser_apivsdatabase_apicalls. - Multi-format builds. Rollup produces ESM, CommonJS, browser ESM, and UMD bundles, plus full source maps and
.d.tsdeclarations. - Production safeguards. A
prepublishOnlyhook guarantees the build runs before every publish, preventing accidental empty-package releases.
⚠️ Action Required for Developers
The latest tag now points to v1.1.0. If your project depends on Steem.js, please:
- Review your Node.js version. The rewrite requires Node.js
>= 20.19.0and, in the browser, the Web Crypto API. - Test your integration. Although the public API surface (
steem.api,steem.auth,steem.broadcast,steem.memo,steem.formatter) is designed to be compatible, the internal dependency stack and some behaviors have changed. Run your test suite againstv1.1.0before deploying. - Check your
package.json. If you are ready to upgrade, install as usual:npm install @steemit/steem-js # or pnpm add @steemit/steem-js
Still Need the Legacy Version?
The old v0.8.0 codebase has been archived to the legacy branch. It remains available on npm. If you cannot migrate yet, pin to 0.8.0 explicitly:
npm install @steemit/steem-js@0.8.0
"dependencies": {
"@steemit/steem-js": "0.8.0"
}
Please note that the legacy version is no longer actively maintained; we encourage everyone to migrate to v1.1.0.
Feedback & Support
If you run into any issues, have questions, or want to share feedback, please:
- Leave a comment below this announcement post, or
- Open an issue on the GitHub repository: https://github.com/steemit/steem-js/issues
We appreciate the community's patience and support throughout this rewrite. Happy building! 🚀
Upvoted! Thank you for supporting witness @jswit.
!thumbup Added to online playground
Hello @ety001! You are Fantastic!
command: !thumbup is powered by witness @justyy and his contributions are: https://steemyy.com
More commands are coming!
Really a good job !!!