Get started in 5 minutes.
One SDK. Nine services. Any chain. Smart-Apps fit into your existing stack, REST endpoints, TypeScript SDK, OpenAPI / Swagger docs. No onboarding calls, no vendor lock-in.
One SDK. Nine services. Any chain. Smart-Apps fit into your existing stack, REST endpoints, TypeScript SDK, OpenAPI / Swagger docs. No onboarding calls, no vendor lock-in.
npm install to live smart-appFive commands. The CLI handles wallet generation, faucet funding, on-chain registration, and deployment. You don't talk to the chain directly once.
# 1. Install the CLI globally (Node 20+)
npm install -g @hsuite/smart-engines-cli
# 2. Initialise: writes a fresh .env.local with an XRPL testnet
# wallet, auto-funded with testnet XRP. All local; nothing to commit.
hsuite init
# 3. Drip HSUITE (HST) testnet tokens to your dev wallet. Sets the
# HST trustline automatically if you don't have one yet.
hsuite faucet
# 4. Subscribe your smart-app: pays the HST deposit, mints your
# subscription NFT, and binds a real appId. Free on testnet.
hsuite subscribe
# 5. Deploy a smart-app from a JSON manifest (init → push → deploy).
hsuite deploy --manifest ./smart-app.manifest.json
# 6. Install the SDK in your app:
npm install @hsuite/smart-engines-sdk The TypeScript SDK exposes one BaasClient with nine sub-clients, .customerSession, .db, .storage, .functions, .messaging, .agents, .rules, .entities, .deployment. Same auth, same response shape, same Merkle proof on every write.
// Customer-session login, any supported chain.
import { BaasClient } from '@hsuite/smart-engines-sdk';
const baas = await BaasClient.connectToCluster({ network: 'testnet', appId });
// 1. Ask the host for a one-time challenge
const { challenge } = await baas.customerSession.challenge({
chain: 'xrpl',
address: wallet.address,
});
// 2. Sign with the user's wallet, private key never leaves the device
const signature = await wallet.signMessage(challenge);
// 3. Submit → short-lived JWT (≤15 min TTL), session metadata
const { token, sessionId, expiresAt } = await baas.customerSession.verify({
appId: baas.getAppId()!,
chain: 'xrpl',
address: wallet.address,
publicKey: wallet.publicKey,
signature,
challenge,
});The showcase is a full smart-app: backend, frontend, and SDK examples, deployed on the Smart Engines validator network. Read its architecture, run it locally, fork it.
A smart contract is code on a single ledger, no keys of its own, no files, no off-chain compute, no sessions, no other chains. Smart Engines give Smart-Apps the missing primitives.
A contract has no key. It can't sign an outbound tx, can't talk to another chain, can't custody anything except its own state slots.
The keyset is the validator network. Smart-Apps sign their own transactions on Hedera, XRPL, Solana and Polkadot from one logical identity.
Contract storage is bytecode + state slots. PDFs, JSON manifests, images, ML weights, none of it fits.
IPFS for blobs, MongoDB for structured data. Every write returns a Merkle proof anchored to Hedera HCS, auditable forever.
A contract can't call an LLM, hit an HTTPS API, run an ML model, or parse a PDF. The VM doesn't allow it.
TypeScript / WASM functions run on the validator network. Schedule them, invoke them, return verifiable output.
Every contract call is stateless. No logged-in user, no auth flow, no rate limiting, no rotation-safe identity.
Sign a one-time challenge with your wallet, get a short-lived JWT. Identity survives validator churn via DKG resharing.
A Solidity contract is an Ethereum contract. An XRPL ledger object is an XRPL object. Each chain is an island; bridges are not the answer.
TSS keys are derived natively for each chain from the same threshold ceremony. No bridge. No wrapped token. No 40-minute finality.
Concrete shapes that map to the primitives above. Each card describes the pattern, the services involved, and why it doesn't fit a contract.
An autonomous agent operates one logical treasury spanning Hedera, XRPL, Solana and Polkadot. LLM decision logic runs as a Smart-Host Function; every outbound tx is authorized via TSS so no node ever holds the key.
Every mint / transfer passes through the Rules Engine that calls real KYC providers, geo-allowlists, sanctions feeds and velocity limits before the validator quorum will TSS-sign.
Structured data in MongoDB, blobs in IPFS, every mutation emits a Merkle proof anchored to Hedera HCS. Full product UX, search, auth, real-time updates, with cryptographic auditability.
JWTs signed via TSS, the signing key is a threshold share held by validators. Users rotate credentials, validators come and go via DKG resharing, yet the on-chain identity remains stable.
Smart-Apps content-addressed (IPFS CID), deployed across Smart-Hosts, discovered via Smart-Gateway DNS, served over HTTPS. Hosts prove liveness; bad hosts are reputation-slashed.
Every DKG ceremony produces both classical BLS12-381 and post-quantum Dilithium keys. A notary Smart-App co-signs attestations with both, publishing anchors to HCS, verifiable decades from now.
Install the CLI. Run hsuite init. Read a page of docs. Deploy. Watch the network anchor your first proof on-chain.