A modern JavaScript/TypeScript library for interacting with the Steem blockchain. Complete refactoring with TypeScript, modern tooling, and improved security.
👉 Complete API Documentation - Comprehensive guide with all methods, examples, and usage patterns
API routing (condenser_api vs database_api) - How RPC namespaces map to current Steem nodes (v1.0.16+)
📋 Changelog - Version history and breaking changes
🔧 Refactoring Details - Technical details about the 2025 modernization
- Node.js: >= 20.19.0 (LTS recommended)
- Browser: Modern browsers with Web Crypto API support
# npm
npm install @steemit/steem-js
# pnpm (recommended)
pnpm install @steemit/steem-js
# yarn
yarn add @steemit/steem-jsimport { steem } from '@steemit/steem-js';
// Configure API endpoint
steem.config.set({
nodes: ['https://api.steemit.com'],
address_prefix: 'STM'
});
// Get account information
const accounts = await steem.api.getAccountsAsync(['username']);
console.log(accounts[0]);
// Vote on a post
const postingWif = steem.auth.toWif('username', 'password', 'posting');
await steem.broadcast.voteAsync(postingWif, 'voter', 'author', 'permlink', 10000);<script src="https://cdn.jsdelivr.net/npm/@steemit/steem-js/dist/index.umd.min.js"></script>
<script>
steem.config.set({ nodes: ['https://api.steemit.com'] });
steem.api.getAccountsAsync(['username']).then(console.log);
</script>- 🔗 Correct RPC routing - Legacy read APIs use
condenser_api; chain/validation APIs usedatabase_api(v1.0.16+, aligned with steem) - 🔒 Type Safety - Full TypeScript support with complete type definitions
- ⚡ Modern - ES modules, async/await, modern cryptography libraries
- 🌐 Universal - Works in Node.js, browsers, and bundlers
- 🔐 Secure - Proper cryptographic implementations, no key exposure
- 📖 Well Documented - Comprehensive API documentation with examples
# Install dependencies
pnpm install
# Build the library
pnpm build
# Run tests
pnpm test
# Type checking
pnpm typecheckThis is a complete modernization of the original steem-js library:
- ✅ TypeScript Migration - Full type safety and better developer experience
- ✅ Modern Dependencies - Replaced outdated crypto libraries (
bigi→bn.js,ecurve→elliptic) - ✅ Modern Crypto - Using @noble/hashes and @noble/ciphers for universal browser/Node.js compatibility
- ✅ Build System - Migrated from Webpack to Rollup for better output
- ✅ Testing - Migrated from Mocha to Vitest with 95.8% test coverage
- ✅ Security - Fixed insecure random number generation and crypto implementations
src/
├── api/ # Blockchain API client (HTTP; methods.ts → condenser_api / database_api / …)
├── auth/ # Authentication and key management
├── broadcast/ # Transaction broadcasting
├── crypto/ # Cryptographic utilities
├── formatter/ # Data formatting helpers
├── memo/ # Encrypted memo handling
├── operations/ # Operation type definitions
├── serializer/ # Transaction serialization
└── utils/ # Utility functions
- 📖 API Documentation - Complete method reference
- 🔧 Refactoring History - Technical modernization details
- 📦 NPM Package - Published package
- 🐛 Issues - Bug reports and feature requests
MIT - see LICENSE file for details.
💡 Need help? Check the complete documentation for detailed examples and API reference.