Pick your surface

If you just want to drop Leash into an AI agent (Cursor, Claude Desktop, Cline, …), you do not need to clone this repo at all. Skip straight to one of: The rest of this page is for running the whole Leash stack locally (runner, seller, buyer, web playground, indexer) — useful if you’re working on the protocol itself or building a custom deployment.

Prerequisites

  • Node >= 20
  • pnpm 9
  • (Optional) Docker for the compose flows

Install + build

pnpm install
pnpm turbo run build typecheck lint test

Run the split stack (default)

docker compose up --build
Brings up runner (:8787), seller-demo (:3001), and web (:3000).

Run the merged stack

docker compose --profile merged up --build merged-demo
A single agent that both sells (POST /echo) and buys (interval-driven calls back into itself), all writing to one receipt feed.

Scripted demo

SELLER_URL=http://localhost:3001 pnpm exec tsx scripts/e2e-demo.ts

Hosted playground at a glance

Once the web app is up at http://localhost:3000:
SurfaceWhat it isSigning model
/agents/newMint a Core asset + Agent Identity: paste your hosted Core metadata JSON URL, configure services/trust/rules, then mint. Spend delegation is not configured here — use the agent profile after mint.Privy embedded wallet (asset owner).
/agents/[mint]Identity, treasury, execute (executive + delegation), optional Genesis token launch, and spend delegation / funding controls.Privy embedded wallet.
/sellerPayment-Link Builder. Settlement currency + optional “also accept” stables → shareable /x/<id> x402 paywall.Runner stores descriptors; /x/<id> settles via facilitator-devnet.leash.market (Leash default).
/buyerAutonomous-agent cockpit. Pay with (USDC / USDT / USDG) + policy rules → fire x402 URLs; treasury readout follows the selected mint.Privy wallet signs as the agent’s registered Executive (no keys in browser).
See Create a payment link, Fund an agent, and Build a buyer for end-to-end walkthroughs.