@cryptoandcoffee/akash-jsdk-core
v3.11.1
Published
Core SDK for Akash Network
Maintainers
Readme
@cryptoandcoffee/akash-jsdk-core
Core SDK for Akash Network with deployment, market, provider, and wallet management.
✅ Production Ready Status
All modules in this package are production-ready with real blockchain implementations.
✅ Production Ready - All Modules Fully Implemented
All modules use SigningStargateClient for real blockchain transactions and REST API queries for state retrieval:
Batch Operations Module (BatchManager, BatchBuilder)
- Status: ✅ Production Ready
- Features:
- ✅
BatchBuilder.execute()- Broadcasts real transactions to blockchain - ✅
BatchManager.executeBatch()- Real blockchain interaction with SigningStargateClient - ✅
BatchManager.simulateBatch()- Actual gas estimation from chain - ✅
BatchManager.getTransactionDetails()- Real transaction data from blockchain
- ✅
- Production capabilities: Real transaction broadcasting, gas simulation, confirmation polling
IBC Module (IBCManager)
- Status: ✅ Production Ready
- Features:
- ✅
IBCManager.transfer()- Executes real IBC transfers on blockchain - ✅
IBCManager.getChannels()- Queries real IBC channels from chain - ✅
IBCManager.getChannel()- Retrieves actual channel information - ✅
IBCManager.getTransferStatus()- Real status tracking via chain events - ✅
IBCManager.getDenomTrace()- Queries actual denom trace from chain
- ✅
- Production capabilities: Real IBC transfers, channel queries, packet acknowledgement tracking
Staking Module (StakingManager)
- Status: ✅ Production Ready
- Features:
- ✅
StakingManager.delegate()- Stakes real tokens on blockchain - ✅
StakingManager.undelegate()- Undelegates real tokens - ✅
StakingManager.redelegate()- Redelegates between validators - ✅
StakingManager.getValidators()- Queries real validator data from chain - ✅
StakingManager.getValidator()- Retrieves actual validator information - ✅
StakingManager.getDelegations()- Queries real delegation data - ✅
StakingManager.getUnbondingDelegations()- Real unbonding data from chain - ✅
StakingManager.getRedelegations()- Actual redelegation data - ✅
StakingManager.getRewards()- Queries real rewards from distribution module - ✅
StakingManager.withdrawRewards()- Withdraws real rewards on blockchain - ✅
StakingManager.withdrawAllRewards()- Withdraws all rewards from all validators - ✅
StakingManager.getPool()- Queries actual staking pool data - ✅
StakingManager.getParams()- Retrieves real staking parameters from chain
- ✅
- Production capabilities: Real staking operations, validator queries, reward distribution
Core Modules
- DeploymentManager - Complete deployment lifecycle management
- MarketManager - Marketplace operations including AEP-75 multi-depositor escrow
- ProviderManager - Provider interactions and manifest deployment
- WalletManager - Wallet integration (Keplr, Leap, Cosmostation, MetaMask Snap)
- WalletAdapter - Multi-wallet JWT authentication with ADR-36 signing
- SDLManager - SDL parsing, validation, and template generation
- JWTAuthManager - AEP-63 JWT authentication for Mainnet 14
- CertificateManager - Client certificate management (legacy)
- EscrowManager - AEP-75 multi-depositor escrow support
- GovernanceManager - Governance participation and voting
- AuditManager - Provider audit and certification
Installation
npm install @cryptoandcoffee/akash-jsdk-coreUsage
Safe Production Usage
Use only the production-ready modules for applications handling real funds:
import { AkashSDK } from '@cryptoandcoffee/akash-jsdk-core'
const sdk = new AkashSDK({
rpcEndpoint: 'https://rpc.akashedge.com:443',
apiEndpoint: 'https://api.akashedge.com:443',
chainId: 'akashnet-2',
gasPrice: '0.025uakt'
})
await sdk.connect()
// ✅ Safe to use in production
const deployments = await sdk.deployments.list('akash1...')
const providers = await sdk.providers.list()
const balance = await sdk.wallet.getBalance()
// ✅ Safe to use - AEP-63 JWT Auth (Mainnet 14)
import { WalletAdapter } from '@cryptoandcoffee/akash-jsdk-core'
const walletAdapter = new WalletAdapter()
const token = await walletAdapter.generateJWTWithKeplr(
'akashnet-2',
'akash1...',
{ expiresIn: 900, accessType: 'full' }
)
sdk.setAuthConfig({ method: 'jwt', jwtToken: token })
// ✅ Safe to use - AEP-75 Multi-Depositor Escrow (Mainnet 14)
const depositConfig = sdk.market.createDepositConfig(
'5000000',
'uakt',
['balance', 'grant'],
['akash1depositor1...', 'akash1depositor2...']
)
// ✅ Safe to use - Batch Operations (Production Ready)
const batch = await sdk.batch.createBatch()
await batch
.addDeployment(sdl)
.addLease(dseq, provider)
.execute() // Broadcasts real transactions to blockchain
// ✅ Safe to use - IBC Module (Production Ready)
const result = await sdk.ibc.transfer({
sourceChannel: 'channel-0',
token: { denom: 'uakt', amount: '1000000' },
receiver: 'cosmos1...'
}) // Executes real IBC transfer on blockchain
// ✅ Safe to use - Staking Module (Production Ready)
const result = await sdk.staking.delegate(
'akashvaloper1...',
{ denom: 'uakt', amount: '1000000' }
) // Stakes real tokens on blockchainAPI Documentation
All Modules Production Ready
Full API documentation for all modules is available in the main repository README.
BatchManager
class BatchManager {
// ✅ Production Ready - All methods interact with blockchain
async createBatch(): Promise<BatchBuilder>
async executeBatch(operations: EncodeObject[]): Promise<BatchResult>
async simulateBatch(operations: EncodeObject[]): Promise<GasEstimate>
async getTransactionDetails(txHash: string): Promise<TxDetails>
}IBCManager
class IBCManager {
// ✅ Production Ready - All methods interact with blockchain
async transfer(params: IBCTransferParams): Promise<IBCTransferResult>
async getChannels(): Promise<Channel[]>
async getChannel(channelId: string): Promise<Channel>
async getTransferStatus(txHash: string): Promise<TransferStatus>
async getDenomTrace(denom: string): Promise<DenomTrace | null>
}StakingManager
class StakingManager {
// ✅ Production Ready - All methods interact with blockchain
async delegate(validator: string, amount: Coin): Promise<StakingResult>
async undelegate(validator: string, amount: Coin): Promise<StakingResult>
async redelegate(src: string, dst: string, amount: Coin): Promise<StakingResult>
async getValidators(status?: BondStatus): Promise<Validator[]>
async getDelegations(delegator?: string): Promise<Delegation[]>
async getRewards(delegator?: string): Promise<Rewards>
async withdrawRewards(validator: string): Promise<StakingResult>
async withdrawAllRewards(): Promise<StakingResult>
async getPool(): Promise<StakingPool>
async getParams(): Promise<StakingParams>
}Support
- Documentation: Main README
- Production Status: PRODUCTION_READINESS.md
- Issues: GitHub Issues
- Security: Report security issues via SECURITY.md
License
Apache License 2.0
✅ All modules are production-ready and safe to use with real funds. Comprehensive testing with 1,280+ passing tests ensures enterprise-grade reliability.
