Put your agent
on a leash.
Spend control for AI agents on Solana. Trustless limits, per‑vendor caps, and human approvals — enforced onchain, not by our servers.
Everything you need.
Nothing you don't.
Onchain enforcement, granular caps, human-in-the-loop approvals, and multi-agent hierarchy — all four in a single SDK, shipping on Solana.
Trustless Anchor program
Limits live in an onchain PDA. Even our own backend can't sign over them. Other SDKs check rules in their server — we check yours in Solana.
Per‑vendor daily caps
Set a separate ceiling for any address or protocol. Block one vendor instantly without touching another. Drainers never get a second swing.
Telegram human‑in‑the‑loop
Anything above the threshold pings Telegram. A 5‑minute window, two buttons, full ed25519 receipt. Slack & Discord same wire.
Multi‑agent hierarchy
A parent agent funds N children. Children are bounded by the parent's envelope onchain. No child can outspend the org. Verifiable, recursive.
Watch it block,
then watch it ship.
Four states, every layer of the stack: pre‑check, onchain, human‑in‑the‑loop, hierarchical. Click a scene or let it auto‑run.
ENV · DEVNET
Three lines to install.
One line to send.
Drop into Solana Agent Kit, LangChain, or CrewAI. Your existing keypair becomes a leashed wallet.
# 1. install $ npm i @onleash/sdk # 2. set api key $ leash login --key onl_sk_••• # 3. deploy a policy $ leash policy:create \ --cap 100 \ --vendor-cap 25 \ --hitl 50 \ --telegram @OnLeashBot ✓ policy deployed · pda 7gXq…4mJp
import { LeashWallet } from "@onleash/sdk" import { Keypair } from "@solana/web3.js" const wallet = new LeashWallet({ keypair: Keypair.generate(), apiKey: process.env.ONLEASH_KEY!, }); // Pre‑checks → onchain → HITL if needed await wallet.send({ to: "8aZKj…3mNp", amount: 60, token: "USDC", }); // → throws or returns sig
Two taps.
One signed transfer.
Above the threshold? Your phone buzzes. Tap approve, the SDK gets a hashed token back, the Anchor program executes. Reject and nothing happens — onchain.