{"id":46160867,"url":"https://github.com/cryptoandcoffee/akash-jsdk","last_synced_at":"2026-03-02T11:01:22.564Z","repository":{"id":321593387,"uuid":"1021080961","full_name":"cryptoandcoffee/akash-jsdk","owner":"cryptoandcoffee","description":"Modern JavaScript SDK for Akash Network.","archived":false,"fork":false,"pushed_at":"2025-11-16T19:41:38.000Z","size":2248,"stargazers_count":0,"open_issues_count":2,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-12-21T09:36:31.574Z","etag":null,"topics":["akash","akash-network","blockchain","cloud-computing","cosmos","cosmos-sdk","decentralized-cloud","deployment","docker","ibc","javascript","jwt-auth","kubernetes","monorepo","pnpm","sdk","staking","typescript","web3"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/cryptoandcoffee.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-07-16T21:13:00.000Z","updated_at":"2025-11-16T19:41:41.000Z","dependencies_parsed_at":"2025-10-30T14:30:28.943Z","dependency_job_id":null,"html_url":"https://github.com/cryptoandcoffee/akash-jsdk","commit_stats":null,"previous_names":["cryptoandcoffee/akash-jsdk"],"tags_count":72,"template":false,"template_full_name":null,"purl":"pkg:github/cryptoandcoffee/akash-jsdk","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cryptoandcoffee%2Fakash-jsdk","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cryptoandcoffee%2Fakash-jsdk/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cryptoandcoffee%2Fakash-jsdk/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cryptoandcoffee%2Fakash-jsdk/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/cryptoandcoffee","download_url":"https://codeload.github.com/cryptoandcoffee/akash-jsdk/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cryptoandcoffee%2Fakash-jsdk/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29999216,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-02T09:59:02.300Z","status":"ssl_error","status_checked_at":"2026-03-02T09:59:02.001Z","response_time":60,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["akash","akash-network","blockchain","cloud-computing","cosmos","cosmos-sdk","decentralized-cloud","deployment","docker","ibc","javascript","jwt-auth","kubernetes","monorepo","pnpm","sdk","staking","typescript","web3"],"created_at":"2026-03-02T11:01:20.688Z","updated_at":"2026-03-02T11:01:22.556Z","avatar_url":"https://github.com/cryptoandcoffee.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# @cryptoandcoffee/akash-jsdk\n\n[![npm version](https://img.shields.io/npm/v/@cryptoandcoffee/akash-jsdk-core.svg)](https://www.npmjs.com/package/@cryptoandcoffee/akash-jsdk-core)\n[![npm downloads](https://img.shields.io/npm/dm/@cryptoandcoffee/akash-jsdk-core.svg)](https://www.npmjs.com/package/@cryptoandcoffee/akash-jsdk-core)\n[![CI](https://img.shields.io/github/actions/workflow/status/cryptoandcoffee/akash-jsdk/ci.yml?branch=main\u0026label=CI)](https://github.com/cryptoandcoffee/akash-jsdk/actions/workflows/ci.yml)\n[![Tests](https://img.shields.io/badge/tests-1,280%20passing-brightgreen.svg)](#-comprehensive-test-results)\n[![Coverage](https://img.shields.io/badge/coverage-100%25-brightgreen.svg)](#-comprehensive-test-results)\n[![License](https://img.shields.io/badge/License-Apache%202.0-blue.svg)](LICENSE)\n\nA modern, fully-featured JavaScript SDK for Akash Network built from scratch with cutting-edge frameworks and enterprise-grade quality.\n\n## 🚀 Features\n\n- **Modern TypeScript**: Full type safety with strict TypeScript 5.9+ configuration\n- **Monorepo Architecture**: pnpm workspaces with modular, tree-shakeable packages\n- **React Integration**: Custom hooks and provider for seamless React development  \n- **CLI Tools**: Command-line interface for deployment and management operations\n- **Custom Protobuf**: Optimized protobuf implementation using @bufbuild/protobuf\n- **Comprehensive Testing**: Enterprise-grade testing with 1,280 tests passing across all packages\n- **Performance First**: ES2022 target, ESM modules, incremental builds\n\n## What's New in v3.11.1\n\nVersion 3.11.1 brings comprehensive Protobuf message type registration and production-ready blockchain integration:\n\n### Protobuf Message Type Registration (v3.7.0)\n- **New `createAkashRegistry()` Utility**: Centralized registry creation with all 14 Akash message types pre-registered\n- **Full CosmJS Compatibility**: Eliminates \"Unregistered type url\" errors when broadcasting transactions\n- **Message Types Registered**:\n  - Deployment: MsgCreateDeployment, MsgUpdateDeployment, MsgCloseDeployment, MsgDepositDeployment\n  - Market: MsgCreateBid, MsgCloseBid, MsgCreateLease, MsgCloseLease, MsgWithdrawLease\n  - Provider: MsgCreateProvider, MsgUpdateProvider, MsgDeleteProvider\n  - Certificate: MsgCreateCertificate, MsgRevokeCertificate\n\n### Previous Release: GitHub Packages Integration (v3.6.1)\n- Published to both npm and GitHub Packages registries\n- Repository field integration for GitHub\n- Dual registry publishing support\n\n### All Mainnet 14 Features Available\nFull support for Akash Network Mainnet 14 features:\n- **JWT Authentication (AEP-63)**: Modern JWT tokens with ES256K signatures\n- **Multi-Depositor Escrow (AEP-75)**: Flexible funding sources for deployments\n- **Lease Termination Tracking (AEP-39)**: Detailed lease close reasons\n- **Cosmos SDK v0.53 Compatibility**: Latest SDK features and improvements\n\n## ✅ Production Ready\n\n**All modules are now production-ready with real blockchain implementations:**\n\n| Module | Status | Capabilities |\n|--------|--------|--------------|\n| **Batch Operations** | ✅ Production Ready | Real transaction broadcasting, gas simulation, confirmation polling |\n| **IBC Module** | ✅ Production Ready | Real IBC transfers, channel queries, packet acknowledgement tracking |\n| **Staking Module** | ✅ Production Ready | Real staking operations, validator queries, reward distribution |\n| **Deployment Module** | ✅ Production Ready | Full deployment lifecycle management |\n| **Market Module** | ✅ Production Ready | Orders, bids, leases, multi-source deposits |\n| **Provider Module** | ✅ Production Ready | Provider registration, capacity queries, manifest deployment |\n| **Wallet Module** | ✅ Production Ready | Multi-wallet support (Keplr, Leap, Cosmostation) |\n\n**All modules use SigningStargateClient for real blockchain interactions and REST API queries for state retrieval.**\n\n---\n\n## 📦 Packages\n\n| Package | Description | Version |\n|---------|-------------|---------|\n| `@cryptoandcoffee/akash-jsdk-core` | Core SDK with deployment, market, provider, and wallet management | 3.11.1 |\n| `@cryptoandcoffee/akash-jsdk-react` | React hooks and context provider for seamless integration | 3.11.1 |\n| `@cryptoandcoffee/akash-jsdk-cli` | Command-line tools for project initialization and deployment | 3.11.1 |\n| `@cryptoandcoffee/akash-jsdk-protobuf` | Custom protobuf definitions with TypeScript support | 3.11.1 |\n\n## 🔧 Installation\n\n```bash\n# Core SDK only\nnpm install @cryptoandcoffee/akash-jsdk-core\n\n# With React hooks\nnpm install @cryptoandcoffee/akash-jsdk-core @cryptoandcoffee/akash-jsdk-react\n\n# CLI tools globally\nnpm install -g @cryptoandcoffee/akash-jsdk-cli\n\n# All packages for development\npnpm install @cryptoandcoffee/akash-jsdk-core @cryptoandcoffee/akash-jsdk-react @cryptoandcoffee/akash-jsdk-cli\n```\n\n## 💻 Quick Start\n\n### Core SDK (Vanilla JavaScript/TypeScript)\n\n```typescript\nimport { AkashSDK } from '@cryptoandcoffee/akash-jsdk-core'\n\nconst sdk = new AkashSDK({\n  rpcEndpoint: 'https://rpc.akashedge.com:443',\n  apiEndpoint: 'https://api.akashedge.com:443',\n  chainId: 'akashnet-2',\n  gasPrice: '0.025uakt'\n})\n\nawait sdk.connect()\n\n// Deployment operations\nconst deployments = await sdk.deployments.list('akash1...')\nconst deploymentId = await sdk.deployments.create(sdlConfig)\nawait sdk.deployments.close(deploymentId)\n\n// Market operations\nconst orders = await sdk.market.listOrders()\nconst leases = await sdk.market.listLeases('akash1...')\n\n// Provider operations\nconst providers = await sdk.providers.list()\nconst capacity = await sdk.providers.getCapacity('akash1provider...')\n\n// Wallet operations\nawait sdk.wallet.connect('keplr')\nconst balance = await sdk.wallet.getBalance()\n```\n\n### React Integration\n\n```tsx\nimport { AkashProvider, useDeployments, useLeases, useProviders } from '@cryptoandcoffee/akash-jsdk-react'\n\nfunction App() {\n  return (\n    \u003cAkashProvider \n      config={{\n        rpcEndpoint: 'https://rpc.akashedge.com:443',\n        chainId: 'akashnet-2'\n      }}\n      autoConnect\n    \u003e\n      \u003cDashboard /\u003e\n    \u003c/AkashProvider\u003e\n  )\n}\n\nfunction Dashboard() {\n  const { deployments, loading, createDeployment, closeDeployment } = useDeployments('akash1...')\n  const { leases } = useLeases('akash1...')\n  const { providers } = useProviders()\n  \n  if (loading) return \u003cdiv\u003eLoading deployments...\u003c/div\u003e\n  \n  return (\n    \u003cdiv\u003e\n      \u003ch2\u003eDeployments ({deployments.length})\u003c/h2\u003e\n      {deployments.map(deployment =\u003e (\n        \u003cdiv key={deployment.deploymentId.dseq}\u003e\n          Deployment {deployment.deploymentId.dseq} - {deployment.state}\n          \u003cbutton onClick={() =\u003e closeDeployment(deployment.deploymentId)}\u003e\n            Close\n          \u003c/button\u003e\n        \u003c/div\u003e\n      ))}\n      \n      \u003ch2\u003eAvailable Providers ({providers.length})\u003c/h2\u003e\n      {providers.map(provider =\u003e (\n        \u003cdiv key={provider.owner}\u003e\n          {provider.hostUri} - {provider.attributes.find(a =\u003e a.key === 'region')?.value}\n        \u003c/div\u003e\n      ))}\n    \u003c/div\u003e\n  )\n}\n```\n\n## 🆕 Mainnet 14 Features - Code Examples\n\n### JWT Authentication (AEP-63)\n\nReplace traditional certificate-based authentication with JWT tokens:\n\n#### 🌐 Using Cosmos Wallets for JWT Authentication\n\nThe SDK supports multiple Cosmos wallets through a universal adapter. All wallets use ADR-36 signing, so your private key never leaves the wallet extension.\n\n**Keplr Wallet** (Recommended for Web Apps)\n\n```typescript\nimport { AkashSDK, WalletAdapter } from '@cryptoandcoffee/akash-jsdk-core'\n\nconst sdk = new AkashSDK({\n  rpcEndpoint: 'https://rpc.akashedge.com:443',\n  chainId: 'akashnet-2'\n})\n\nconst walletAdapter = new WalletAdapter()\n\n// Connect to Keplr\nawait window.keplr.enable('akashnet-2')\nconst offlineSigner = window.keplr.getOfflineSigner('akashnet-2')\nconst accounts = await offlineSigner.getAccounts()\n\n// Generate JWT using Keplr's ADR-36 signing (no private key needed!)\nconst token = await walletAdapter.generateJWTWithKeplr(\n  'akashnet-2',\n  accounts[0].address,\n  {\n    expiresIn: 900, // 15 minutes\n    accessType: 'full'\n  }\n)\n\n// Set authentication and use!\nsdk.setAuthConfig({ method: 'jwt', jwtToken: token })\n```\n\n**Leap Wallet**\n\n```typescript\nimport { WalletAdapter } from '@cryptoandcoffee/akash-jsdk-core'\n\nconst walletAdapter = new WalletAdapter()\n\n// Connect to Leap\nawait window.leap.enable('akashnet-2')\nconst accounts = await window.leap.getAccounts('akashnet-2')\n\n// Generate JWT using Leap\nconst token = await walletAdapter.generateJWTWithLeap(\n  'akashnet-2',\n  accounts[0].address,\n  { expiresIn: 900, accessType: 'full' }\n)\n```\n\n**Cosmostation Wallet**\n\n```typescript\nimport { WalletAdapter } from '@cryptoandcoffee/akash-jsdk-core'\n\nconst walletAdapter = new WalletAdapter()\n\n// Connect to Cosmostation\nconst account = await window.cosmostation.cosmos.request({\n  method: 'cos_requestAccount',\n  params: { chainName: 'akashnet-2' }\n})\n\n// Generate JWT using Cosmostation\nconst token = await walletAdapter.generateJWTWithCosmostation(\n  'akashnet-2',\n  account.address,\n  { expiresIn: 900, accessType: 'full' }\n)\n```\n\n**MetaMask with Leap Cosmos Snap**\n\n```typescript\nimport { WalletAdapter } from '@cryptoandcoffee/akash-jsdk-core'\n\nconst walletAdapter = new WalletAdapter()\n\n// Generate JWT using MetaMask Snap (auto-installs snap if needed)\nconst token = await walletAdapter.generateJWTWithMetaMaskSnap(\n  'akashnet-2',\n  'akash1youraddress...',\n  { expiresIn: 900, accessType: 'full' }\n)\n```\n\n**Auto-Detect Available Wallet**\n\n```typescript\nimport { WalletAdapter, SupportedWallet } from '@cryptoandcoffee/akash-jsdk-core'\n\nconst walletAdapter = new WalletAdapter()\n\n// Detect available wallets\nconst available = walletAdapter.detectAvailableWallets()\nconsole.log('Available wallets:', available) // [SupportedWallet.Keplr, SupportedWallet.Leap, ...]\n\n// Auto-select and use first available wallet\nconst { token, wallet } = await walletAdapter.generateJWTAuto(\n  'akashnet-2',\n  'akash1youraddress...',\n  { expiresIn: 900, accessType: 'full' }\n)\n\nconsole.log(`Generated JWT using ${wallet}`) // \"Generated JWT using keplr\"\nsdk.setAuthConfig({ method: 'jwt', jwtToken: token })\n```\n\n#### 🔑 Using Private Key (For Node.js/CLI)\n\n```typescript\nimport { JWTAuthManager, JWTAccessType, JWTPermissionScope } from '@cryptoandcoffee/akash-jsdk-core'\n\nconst jwtAuth = new JWTAuthManager()\n\n// Generate JWT with private key\nconst token = await jwtAuth.generateToken({\n  address: 'akash1...',\n  privateKey: process.env.AKASH_PRIVATE_KEY,\n  expiresIn: 900,\n  accessType: JWTAccessType.Full,\n  leasePermissions: [{\n    owner: 'akash1...',\n    dseq: '12345',\n    scopes: [\n      JWTPermissionScope.SendManifest,\n      JWTPermissionScope.Status,\n      JWTPermissionScope.Logs\n    ]\n  }]\n})\n\n// Use token in HTTP requests\nconst authHeader = jwtAuth.createAuthHeader(token)\n// Authorization: Bearer eyJhbGciOiJFUzI1NksiLCJ0eXAiOiJKV1QifQ...\n\n// Validate and check expiration\nconst validation = await jwtAuth.validateToken(token, publicKey)\nif (jwtAuth.isTokenExpired(token)) {\n  // Regenerate token\n}\n```\n\n### Multi-Depositor Escrow (AEP-75)\n\nCreate deployments with multiple funding sources:\n\n```typescript\nimport { MarketManager, DepositSource } from '@cryptoandcoffee/akash-jsdk-core'\n\nconst market = new MarketManager(provider)\n\n// Create a deposit configuration with multiple sources\nconst depositConfig = market.createDepositConfig(\n  '5000000', // 5 AKT\n  'uakt',\n  [\n    DepositSource.Balance,    // From account balance\n    DepositSource.Grant,      // From external grant\n    DepositSource.Delegated   // From delegated account\n  ],\n  [\n    'akash1depositor1...',  // Primary depositor\n    'akash1depositor2...',  // Secondary depositor\n    'akash1depositor3...'   // Tertiary depositor\n  ]\n)\n\n// Use the deposit config when creating a bid\nconst bid = await market.createBid({\n  orderId: {\n    owner: 'akash1...',\n    dseq: '12345',\n    gseq: 1,\n    oseq: 1\n  },\n  provider: 'akash1provider...',\n  price: { denom: 'uakt', amount: '100' },\n  depositConfig // Use multi-source deposit instead of single deposit\n})\n\n// Deposit funds from a specific depositor\nimport { EscrowManager } from '@cryptoandcoffee/akash-jsdk-core'\n\nconst escrow = new EscrowManager(provider)\n\nawait escrow.depositFunds({\n  accountId: { scope: 'deployment', xid: '12345' },\n  amount: { denom: 'uakt', amount: '1000000' },\n  depositor: 'akash1depositor2...' // Specify which depositor\n})\n\n// List escrow accounts with depositor information\nconst accounts = await escrow.listAccounts({\n  owner: 'akash1...'\n})\n\naccounts.forEach(account =\u003e {\n  console.log(`Account ${account.id.xid}:`)\n  console.log(`  Depositor: ${account.depositor}`)\n  console.log(`  Balance: ${account.balance.amount} ${account.balance.denom}`)\n  console.log(`  Funds: ${account.funds.amount} ${account.funds.denom}`)\n})\n```\n\n### Lease Termination Tracking (AEP-39)\n\nTrack why leases are terminated:\n\n```typescript\nimport { MarketManager, LeaseCloseReason } from '@cryptoandcoffee/akash-jsdk-core'\n\nconst market = new MarketManager(provider)\n\n// Close a lease with a specific reason\nawait market.closeLease(\n  {\n    owner: 'akash1...',\n    dseq: '12345',\n    gseq: 1,\n    oseq: 1,\n    provider: 'akash1provider...'\n  },\n  LeaseCloseReason.InsufficientFunds\n)\n\n// Available close reasons:\n// - LeaseCloseReason.Unspecified\n// - LeaseCloseReason.ManifestTimeout\n// - LeaseCloseReason.Unstable\n// - LeaseCloseReason.InsufficientFunds\n// - LeaseCloseReason.UserRequested\n\n// Query lease details to see close reason\nconst lease = await market.getLease({\n  owner: 'akash1...',\n  dseq: '12345',\n  gseq: 1,\n  oseq: 1,\n  provider: 'akash1provider...'\n})\n\nif (lease \u0026\u0026 lease.state === 'closed' \u0026\u0026 lease.closeReason) {\n  console.log(`Lease closed due to: ${lease.closeReason}`)\n\n  // Handle different close reasons\n  switch (lease.closeReason) {\n    case LeaseCloseReason.InsufficientFunds:\n      console.log('Please deposit more funds to continue')\n      break\n    case LeaseCloseReason.ManifestTimeout:\n      console.log('Provider did not receive manifest in time')\n      break\n    case LeaseCloseReason.Unstable:\n      console.log('Workload was unstable')\n      break\n    case LeaseCloseReason.UserRequested:\n      console.log('User requested termination')\n      break\n  }\n}\n```\n\n### CLI Usage\n\n```bash\n# Initialize new Akash project\nakash-cli init\n# ✓ Choose framework (vanilla, react, next)\n# ✓ Configure network settings\n# ✓ Generate project files\n\n# Deploy application\nakash-cli deploy app.yml --config ~/.akash/config.json\n\n# Check deployment status\nakash-cli status --owner akash1...\n\n# Close deployment\nakash-cli close --deployment 12345 --owner akash1... --yes\n```\n\n## 📚 SDK Modules\n\n### Core Package Features\n\n| Module | Description | Key Features |\n|--------|-------------|--------------|\n| **DeploymentManager** | Deployment lifecycle management | Create, update, close, list deployments |\n| **MarketManager** | Marketplace operations | Orders, bids, leases, market statistics, multi-source deposits |\n| **ProviderManager** | Provider interactions | Registration, capacity, manifest deployment |\n| **WalletManager** | Wallet integration | Keplr, Cosmostation, transaction signing |\n| **SDLManager** | SDL processing | Parse, validate, convert, optimize SDL files |\n| **CertificateManager** | Certificate management | Client certificates, secure communication (legacy) |\n| **JWTAuthManager** | JWT authentication | Token generation, validation, ES256K signatures (Mainnet 14+) |\n| **EscrowManager** | Escrow operations | Deposit, withdrawal, multi-depositor support, account management |\n| **GovernanceManager** | Governance participation | Proposals, voting, delegation |\n\n### SDL Template Generation\n\n```typescript\nimport { SDLManager } from '@cryptoandcoffee/akash-jsdk-core'\n\nconst sdlManager = new SDLManager(provider)\n\n// Generate common templates\nconst webApp = sdlManager.generateTemplate('web-app')\nconst apiServer = sdlManager.generateTemplate('api-server')\nconst database = sdlManager.generateTemplate('database')\nconst worker = sdlManager.generateTemplate('worker')\n\n// Parse and validate custom SDL\nconst sdl = sdlManager.parseSDL(yamlContent)\nconst validation = sdlManager.validateSDL(sdl)\n\n// Convert to manifest and estimate costs\nconst manifest = sdlManager.generateManifest(sdl)\nconst costs = sdlManager.estimateResourceCosts(sdl)\n```\n\n## 🏗️ Development\n\n### System Requirements\n\n- **Node.js**: 18+ (ESM modules required)\n- **TypeScript**: 5.9+ for development\n- **Package Manager**: pnpm (recommended) or npm\n\n### Monorepo Setup\n\n```bash\n# Clone repository\ngit clone \u003crepository-url\u003e\ncd akash-jsdk\n\n# Install dependencies (uses pnpm workspaces)\npnpm install\n\n# Build all packages\npnpm run build\n\n# Run tests with coverage\npnpm test -- --coverage\n\n# Development mode (watch)\npnpm run dev\n```\n\n### Package Development Scripts\n\n```bash\n# Build individual packages\ncd packages/core \u0026\u0026 pnpm build\ncd packages/react \u0026\u0026 pnpm build\ncd packages/cli \u0026\u0026 pnpm build\n\n# Test individual packages\npnpm test packages/core\npnpm test packages/react -- --coverage\n\n# Type checking\npnpm run typecheck\n```\n\n## 📊 Comprehensive Test Results\n\n### Overall Statistics\n- **Total Tests**: 1,280 tests passing\n- **Test Files**: 53 comprehensive test suites\n- **Coverage**: 100% statements, functions, and lines across all packages\n- **Branch Coverage**: 100% (3 packages), 98.15% (core package)\n- **Test Duration**: ~6 seconds total\n- **Source Lines**: 25,000+ lines of production code\n\n### Package-Level Coverage\n\n| Package | Tests | Coverage | Features Tested |\n|---------|-------|----------|----------------|\n| **Core** | 888 tests | 100% statements/functions/lines, 98.15% branches | SDK modules, JWT auth, multi-depositor escrow, lease tracking, providers, batch operations, IBC, staking, error handling |\n| **CLI** | 148 tests | 100% all metrics | Commands, config management, CLI execution, subprocess testing |\n| **React** | 141 tests | 100% all metrics | Hooks, context, component lifecycle, error boundaries |\n| **Protobuf** | 103 tests | 100% all metrics | Type generation, serialization, Mainnet 14 types, error conditions |\n\n### Testing Infrastructure\n\n- **Framework**: Vitest with V8 coverage provider\n- **Environments**: Node.js (core/CLI/protobuf), jsdom (React)\n- **Features**: Async/await patterns, comprehensive mocking, error path testing\n- **Quality**: Zero flaky tests, deterministic results, enterprise-grade reliability\n\n## 🏛️ Architecture Highlights\n\n### Modern TypeScript Configuration\n- **Target**: ES2022 with bundler module resolution\n- **Strict Mode**: Full type safety with comprehensive rules\n- **Project References**: Incremental compilation support\n- **Path Mapping**: Workspace package aliases\n\n### Performance Optimizations\n- **Tree-Shaking**: Modular exports for minimal bundle size\n- **Code Splitting**: Package-level separation of concerns\n- **Incremental Builds**: TypeScript composite projects\n- **Memory Efficiency**: Optimized protobuf serialization\n\n### Developer Experience\n- **IntelliSense**: Rich TypeScript support\n- **Error Handling**: Comprehensive error types with context\n- **Documentation**: Extensive inline documentation\n- **Examples**: Working examples in `examples/` directory\n\n## 🛠️ Build Configuration\n\n### TypeScript Project Structure\n```json\n{\n  \"references\": [\n    { \"path\": \"./packages/protobuf\" },\n    { \"path\": \"./packages/core\" },\n    { \"path\": \"./packages/react\" },\n    { \"path\": \"./packages/cli\" }\n  ]\n}\n```\n\n### Output Formats\n- **ES Modules**: Primary format for modern bundlers\n- **CommonJS**: Compatibility layer for Node.js\n- **Type Definitions**: Complete `.d.ts` files\n- **Source Maps**: Full debugging support\n\n## 📄 License\n\nApache License 2.0 - see [LICENSE](LICENSE) file for details.\n\n## 🛡️ Quality Assurance\n\nThis SDK represents exceptional quality standards:\n\n- **100% Statement Coverage**: Every executable line tested\n- **100% Function Coverage**: Every function validated\n- **100% Line Coverage**: Complete code execution validation\n- **Near-Perfect Branch Coverage**: 98.15%+ on complex modules\n- **Zero Test Failures**: Robust, reliable test suite\n- **Production Ready**: Enterprise-grade quality assurance\n\n## 🙏 Acknowledgments\n\nBuilt from scratch as a modern replacement for existing Akash Network JavaScript tooling, focusing on developer experience, type safety, and comprehensive testing coverage.\n\n---\n\n*This SDK represents a complete, production-ready implementation built with modern web standards and world-class quality assurance.*","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcryptoandcoffee%2Fakash-jsdk","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcryptoandcoffee%2Fakash-jsdk","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcryptoandcoffee%2Fakash-jsdk/lists"}