Skip to main content

Welcome to tari.js! 👋

Build powerful Tari applications with confidence — tari.js is the complete TypeScript toolkit for connecting wallets, querying the blockchain, and creating amazing dApps.

npm version License TypeScript

🚀 What is tari.js?

tari.js is the universal JavaScript/TypeScript library for building on Tari. Whether you're creating a DeFi app, an NFT marketplace, or an enterprise solution, tari.js provides everything you need:

  • 🔌 Universal Wallet Support — Connect MetaMask, Wallet Daemon, Universe, WalletConnect with one API
  • 🛡️ Privacy-First — Built-in confidential transactions and zero-knowledge proofs
  • 📱 Developer Friendly — Full TypeScript support, intuitive APIs, comprehensive docs
  • ⚡ Production Ready — Battle-tested, optimized, and actively maintained

What Makes tari.js Special?

🎯 Provider/Signer Architecture

Clean separation between reading data and wallet operations:

// 📖 Provider: Read blockchain data (no wallet needed)
const provider = new IndexerProvider('http://localhost:18300');
const balance = await provider.getSubstate(substateId);

// ✍️ Signer: Wallet operations (requires authentication)
const signer = new WalletDaemonSigner('http://localhost:18103');
const tx = await signer.submitTransaction(transaction);

🧩 Unified API Across All Wallets

Same code works with any wallet type:

// Works with MetaMask, Universe, Wallet Daemon, WalletConnect
const wallet = await connectWallet();
const account = await wallet.getDefaultAccount();
const result = await wallet.submitTransaction(tx);

🏗️ Powerful Transaction Builder

Fluent API for complex operations:

const transaction = new TransactionBuilder()
.fee(100)
.callMethod('account', 'transfer', { amount: 1000, destination })
.callFunction('nft_template', 'mint', { metadata })
.build();

🎯 Quick Navigation

🚀 Get Started (5 minutes)

🔌 Wallet Integration

🏗️ Building Transactions

🔧 Reference

📚 Documentation Structure

This documentation is organized for different user journeys:

If you're...Start here
🆕 New to tari.jsInstallationGetting Started Tutorial
🔌 Integrating walletsProvider vs SignerWallet Documentation
🏗️ Building transactionsTransaction BuilderTemplates
🚨 Having issuesTroubleshootingGitHub Issues
📖 Looking for specificsAPI Reference → Search this site

🆕 What's New in v0.5.0

Major Update

Provider/Signer Split — We've separated data access from wallet operations for better security and flexibility. Learn about the changes →

🎉 New Features

  • 🔌 Unified wallet connection API across all wallet types
  • 🏗️ Enhanced transaction builder with fluent API design
  • 📱 Improved mobile support for React Native and PWAs
  • 🛡️ Better error handling and debugging tools

🔄 Migration Guide

Upgrading from v0.4.0? Check our GitHub releases for upgrade instructions.

🤝 Community & Support


Ready to build something amazing? Install tari.js and create your first Tari application in 5 minutes! 🚀