SDK · v0.3.0 · published
Any agent that can describe an intent can run on Soloraa.
The built-in agents are not a closed set. @soloraaa/sdk exposes the same primitives the catalogue uses — describe an action, the enclave signs only what your policy allows, the chain verifies before funds move.
new in 0.3
Zero-setup mode: new SoloraaClient() with no arguments points at the hosted relayer at relayer.soloraa.tech — install, call, ship. The SDK now talks to the relayer instead of the enclave directly, so consumers don't have to run their own TEE to get started.
Install
npm install @soloraaa/sdk @solana/web3.js # or pnpm add @soloraaa/sdk @solana/web3.js
Five-line example
Submit an enclave-signed transfer cycle. The default constructor points at the hosted relayer — no enclave, no keypair, no env vars. Your code never sees a private key.
import { Keypair } from "@solana/web3.js";
import { SoloraaClient } from "@soloraaa/sdk";
const client = new SoloraaClient();
const result = await client.executeTransfer({
destination: Keypair.generate().publicKey.toBase58(),
amountLamports: 2_000_000,
});
console.log(result.signature, result.explorerUrl);What the SDK does for you
Intent shaping
Your high-level request (destination, amount, cycle tag) becomes a structured intent the relayer hands to the enclave for policy evaluation and signing.
Relayer dispatch
The SDK POSTs to /execute-cycle on the relayer. The relayer forwards to the enclave, which produces the 169-byte SOLORA_INTENT_V2 message and the 64-byte Ed25519 signature.
Broadcast & confirm
The relayer assembles the on-chain transaction (Ed25519 verify ix + execute_transfer), signs as the fee payer, submits to Solana, waits for confirmation, and returns the signature + explorer URL.
What the SDK won't let you do
These aren't bugs — they're the point.
Hold a private key
There is no signing key in user space. The enclave holds the Ed25519 secret sealed to its image hash.
Bypass wallet.policy
The enclave fetches the on-chain policy on every call. Any intent outside it is refused before signing.
Reuse a signed intent
Every intent commits to wallet.nonce. The on-chain verifier rejects with IntentNonceMismatch.
Target arbitrary programs
CPI targets must appear in wallet.policy.allowed_programs. Authority-controlled, capped at 16 entries.
Self-hosting the relayer
The hosted relayer at relayer.soloraa.tech is fine for demos and single-tenant trials. For real production, deploy your own relayer + enclave and point the SDK at it.
const client = new SoloraaClient({
relayerUrl: "https://relayer.my-deployment.com",
walletAuthority: "<your wallet authority pubkey>",
agentId: "market-maker-1",
});
await client.executeTransfer({
destination,
amountLamports: 2_000_000n,
cycle: 42,
});The repo's PRODUCTION_CUTOVER.md walks the four-phase deployment (local end-to-end → Marlin Oyster CVM → real Jupiter swap intents → mainnet) with commands.
Integration partners
Soloraa is designed to be the cryptographic execution surface between an AI agent and a Solana DeFi protocol. If you maintain a venue or model and want to publish a curated agent, the integration cost is the policy schema and the program allowlist entry.