Steem.js
The JavaScript API for the Steem blockchain — now isomorphic: the
same package runs unchanged on Node 18+, browsers, edge runtimes (Cloudflare Workers /
Vercel Edge), and Deno. Pure-JS crypto (@noble), ESM + CJS + a CDN bundle, and shipped
TypeScript types.
npm install @blazeapps/steem
Installing the modernized build before it’s published to npm? Pull it straight from the fork branch:
npm install github:blazeapps007/steem-js#BlazeDevelopment
import steem from '@blazeapps/steem';
// Read (Promise or callback)
const [account] = await steem.api.getAccountsAsync(['ned']);
// Sign offline + broadcast (works on every runtime, no Node polyfills)
const wif = steem.auth.toWif(username, password, 'posting');
await steem.broadcast.vote(wif, voter, author, permlink, 10000);
What’s new
This release is a ground-up modernization that keeps the public API identical while making the library fast, small, typed, and runnable everywhere. See What’s New for the full story, the Runtimes overview for copy-paste setups, and the dedicated Cloudflare Workers and Deno & Deno Deploy guides for edge deployments.
- Isomorphic — no
Buffer/window/Node-builtin assumptions; runs on edge & Deno. - Modern crypto —
@noble/curves+@noble/hashes+@noble/ciphers(zero native deps). Signatures, keys, and memos are byte-for-byte identical to the previous version. - ESM + CJS + IIFE builds with an
exportsmap; tree-shakeable. - TypeScript types shipped (
dist/index.d.ts) with full method autocomplete. - Leaner — ~25 legacy dependencies removed (
bigi,ecurve,bytebuffer,browserify-aes,cross-fetch,bluebird, …).
The library at a glance
import steem from '@blazeapps/steem' (or const steem = require(...)) gives an object
with these namespaces:
| Namespace | What it does | Docs |
|---|---|---|
steem.api |
Read calls to an RPC node (accounts, posts, blocks, market, witnesses…) | API reference |
steem.broadcast |
Sign and broadcast write operations (vote, transfer, comment…) | Broadcast reference · Broadcasting guide |
steem.auth |
Key derivation, WIF handling, transaction signing | Auth guide |
steem.memo |
Encrypt and decrypt transfer memos | Memo guide |
steem.formatter |
Reputation, VESTS↔STEEM, amounts, account value | Formatter guide |
steem.utils |
Account-name validation, string helpers | Utils guide |
steem.config |
Endpoint, chain id, address prefix, testnet | Configuration guide |
The api and broadcast references are generated from the library’s own source
(methods.js and
operations.js),
so they always list every method in the installed version.
Run on any runtime
One package, every JavaScript runtime — no polyfills, no Buffer, no Node-builtin shims.
| Runtime | Guide |
|---|---|
| 🟢 Node.js (ESM & CommonJS) | Runtimes → Node |
| ⚡ Vite / React / Vue / Svelte | Runtimes → Vite |
🌐 Browser via <script> / CDN |
Runtimes → Browser |
| ☁️ Cloudflare Workers | Cloudflare Workers — secrets, signing, KV cache, cron |
| ▲ Vercel Edge Functions | Runtimes → Vercel Edge |
| 🦕 Deno & Deno Deploy | Deno — permissions, edge functions, KV, testing |
Where to go next
Get started
- Install — npm, pnpm, yarn, Deno, CDN.
- Runtimes — copy-paste setup for your platform.
- Configuration — endpoints, transports, testnet.
- TypeScript — typed usage with the shipped declarations.
Deploy to the edge
- Cloudflare Workers — full edge guide with a worked vote endpoint.
- Deno & Deno Deploy — permissions model and
Deno.serveedge functions.
Use the API
- Reading data → API reference · concepts in the guides below.
- Writing to the chain → Broadcasting + Broadcast reference.
- Following the chain live → Streaming.
- Keys & signing → Auth · encrypted memos → Memo.
- Display helpers → Formatter · validation → Utils.
Background
- What’s New — everything that changed and why.