Skip to main content

Official SDKs

Java, Node.js/TypeScript, Python, and Go -- same API coverage, same business-concept names, each idiomatic in its own language.

Each SDK exposes two layers over the same backend: Easy Mode for fast integration (composition of common calls) and Core API for granular access to the entire real API surface. No SDK invents behavior -- everything is traceable back to the API Reference. See the full API Reference →

All four SDKs also ship self-custody wallet generation and transaction signing, symmetric across languages -- the private key is generated and used locally, never sent to Ishtaran. How self-custody works →

Java

Available now

install
<dependency>
  <groupId>com.ishtaran</groupId>
  <artifactId>ishtaran-java</artifactId>
  <version>0.1.4</version>
</dependency>
quickstart
var client = IshtaranClient.builder()
        .apiKey(System.getenv("ISHTARAN_API_KEY"))
        .environment(Environment.SANDBOX)
        .build();

var balance = client.getBalance(accountId, assetNetworkId);
System.out.println("Available: " + balance.available());

Self-custody: wallet & signing

self-custody
// Wallet generated locally -- the private key never leaves this process.
var generated = WalletFactory.generate();

var registered = client.wallets().register(applicationId, networkId,
        DerivationScheme.TRON_BIP44_HARDENED_ACCOUNT,
        generated.wallet().accountExtendedPublicKey(), idempotencyKey);

// Signing also happens locally, against a hash Ishtaran computed and verifies.
var signature = generated.signer().sign(0, canonicalHash);

Development install (unreleased changes)

For local development against an unreleased change -- Maven Central is the primary path above.

local/dev install
git clone https://github.com/taylorjeftedasilva/ishtaran-java.git
cd ishtaran-java && mvn install

Node.js / TypeScript

Available now

install
npm install @ishtaran/sdk
quickstart
import { IshtaranClient, Environment } from '@ishtaran/sdk';

const client = IshtaranClient.create({
  apiKey: process.env.ISHTARAN_API_KEY,
  environment: Environment.Sandbox,
});

const balance = await client.getBalance(accountId, assetNetworkId);
console.log('Available:', balance.available);

Self-custody: wallet & signing

self-custody
import { wallet, DerivationScheme } from '@ishtaran/sdk';

// Wallet generated locally -- the private key never leaves this process.
const generated = wallet.generate();

const registered = await client.wallets.register(
  applicationId, networkId, DerivationScheme.TRON_BIP44_HARDENED_ACCOUNT,
  generated.wallet.accountExtendedPublicKey, idempotencyKey,
);

// Signing also happens locally, against a hash Ishtaran computed and verifies.
const signature = generated.signer.sign(0, canonicalHash);

Development install (unreleased changes)

For local development against an unreleased change -- npm is the primary path above.

local/dev install
npm install github:taylorjeftedasilva/ishtaran-node

Python

Available now

install
pip install ishtaran
quickstart
from ishtaran import IshtaranClient, Environment

client = IshtaranClient.create(
    api_key=os.environ["ISHTARAN_API_KEY"],
    environment=Environment.SANDBOX,
)

balance = client.get_balance(account_id, asset_network_id)
print("Available:", balance.available)

Self-custody: wallet & signing

self-custody
from ishtaran.wallet import generate
from ishtaran.model.enums import DerivationScheme

# Wallet generated locally -- the private key never leaves this process.
generated = generate()

registered = client.wallets.register(
    application_id, network_id, DerivationScheme.TRON_BIP44_HARDENED_ACCOUNT,
    generated.wallet.account_extended_public_key, idempotency_key,
)

# Signing also happens locally, against a hash Ishtaran computed and verifies.
signature = generated.signer.sign(0, canonical_hash)

Development install (unreleased changes)

For local development against an unreleased change -- PyPI is the primary path above.

local/dev install
pip install git+https://github.com/taylorjeftedasilva/ishtaran-python.git

Go

Available now

install
go get github.com/taylorjeftedasilva/ishtaran-go@v0.1.5
quickstart
client, err := ishtaran.NewClient(
	ishtaran.WithAPIKey(os.Getenv("ISHTARAN_API_KEY")),
	ishtaran.WithEnvironment(ishtaran.Sandbox),
)

balance, err := client.GetBalance(ctx, accountID, assetNetworkID)
fmt.Println("Available:", balance.Available)

Self-custody: wallet & signing

self-custody
// Wallet generated locally -- the private key never leaves this process.
generated, err := ishtaran.GenerateWallet()

registered, err := client.Wallets.Register(ctx, applicationID, networkID,
	ishtaran.DerivationSchemeTronBIP44HardenedAccount,
	generated.Wallet.AccountExtendedPublicKey)

// Signing also happens locally, against a hash Ishtaran computed and verifies.
signature, err := generated.Signer.Sign(0, canonicalHash)

Development install (unreleased changes)

@latest resolves to the current source through the standard Go module proxy -- use the tagged v0.1.5 above for a stable, reproducible version.

local/dev install
go get github.com/taylorjeftedasilva/ishtaran-go@latest

Building with an AI agent instead? Ishtaran has an official MCP (Model Context Protocol) server -- knowledge, discovery, planning, and validation for Claude, Codex, Cursor, and any other MCP-compatible client. It never executes financial operations; the SDKs above still do that. How the MCP works →

install
npx -y @ishtaran/mcp