Solora

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

installbash
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.

examples/transfer.tsts
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.

multi-tenant.tsts
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.