$50M+ verified live · Pre-execution control layer

Talk to your money.
The control layer keeps it in bounds.

Vishwa CLI is an agent-native console for on-chain finance. You describe intent in plain English — every action is submitted as an unsigned request through the Vishwa gateway and verified against your constraints inside a hardware-sealed control layer before anything executes.

# install + sign in — connects the CLI to the Vishwa gateway
> Install Vishwa from https://api.vishwalab.com/skills/vishwa-cli/skill.md
> vishwa-cli login
You / Agent
Plain-English intent
Decides — never holds keys
Gateway
Vishwa API
Receives the unsigned request
Control layer
TEE verification
Checks request vs. sealed constraints
Execution
Sign & settle
Only on a passing proof
① Authorization② Solvency & limits③ Execution fidelity
Constraints are sealed in hardware — invisible to both the agent and the wallet.
Walkthrough
Define your limits once — then trade in plain English

Step 00 sets the guardrails. After that, every clip below is a real step from the demo: you state intent, the gateway routes an unsigned request into the control layer, and execution only happens once the request clears your constraints.

00 · DEFINE

Set your constraints

Before any trade, the fund owner seals a constraint policy into the control layer: what the agent may do, with which venues, and how much. The agent never sees the full set — it just gets allowed or denied.

>set my limits: only Polymarket, max $20 per trade, $100/day, buy & sell only
  • Operations — e.g. buy / sell only (no transfers)
  • Venues — allow-list (e.g. Polymarket)
  • Limits — per-trade, daily, monthly caps
  • Fidelity — max slippage vs. the live orderbook
⚠️ Not shown in the recorded demo — this is the foundational step that makes the rest safe.
🔒 constraint-policy.jsonsealed in TEE · signed by owner
"authorized_agents": [{
  "id": "agent:vishwa-cli",
  "allowed_operations": ["buy_contracts", "sell_contracts"],
  "per_operation_limits": {
    "buy_contracts": {
      "per_tx_usd": 20,
      "daily_usd": 100,
      "monthly_usd": 1000,
      "approved_venues": ["polymarket"],
      "max_slippage": 0.02
    }
  }
}],
"global_constraints": {
  "daily_limit_usd": 100,
  "rate_limiting": { "max_operations_per_minute": 5 }
}
01 · SETUP

Install & sign in

Point the agent at the install guide. It checks Node.js, installs the CLI globally, then runs vishwa-cli login to authenticate the session against the Vishwa gateway.

>Install Vishwa from https://api.vishwalab.com/skills/vishwa-cli/skill.md
  • Checks prerequisites — Node.js & npm
  • Installs globally via npm
  • Connects to the gateway via browser sign-in
01 · SETUP0:10
02 · WALLET

Check your wallet

Ask for your wallet and get a live, on-chain snapshot — the same balance the control layer reads independently when it checks solvency.

>get my wallet
  • Solana address & SOL balance
  • Token balances — USDC, JupUSD
02 · WALLET0:10
03 · MARKETS

Browse prediction markets

Vishwa connects to Polymarket. Ask for hot events, then drill into any market by name. You get a ranked table of outcomes with live prices and volume.

>show me the polymarket hot events
>2026 FIFA World Cup Winner
  • Real-time odds & volume per outcome
  • Plain-English explainer of Yes/No payouts
03 · MARKETS0:10
04 · BUY

Place a trade

Describe the trade. The agent builds an unsigned request and sends it through the gateway; the control layer checks it against your limits and the live orderbook, then signs and submits.

>buy France 10 yes contracts in this market
Control layer checks: action allowed · venue = Polymarket · cost ≤ per-trade & daily caps · price within slippage of the book — then it issues the proof that authorizes execution.
  • Respects the venue $5 minimum (scales 10→31, and says why)
  • Returns a transaction signature
04 · BUY0:10
05 · POSITIONS

Check your positions

See exactly what you hold: contracts, average price, cost basis, current mark, and live P&L.

>show me my positions
  • Contracts held, avg price, cost basis
  • Current value & unrealized P&L
05 · POSITIONS0:10
06 · SELL

Close the position

Sell the whole position in one sentence. The exit is verified the same way — a request through the gateway, cleared by the control layer — then filled and confirmed with a signature.

>sell all contracts in this position
  • Sells at the live bid
  • Returns proceeds + transaction signature
06 · SELL0:10
07 · RECAP

Wallet recap & P&L

Ask for your wallet again and the agent shows a before / after view of the whole session — balance changes per asset, fees, and a plain-English recap.

>get my wallet
  • Before/after balances for SOL, USDC, JupUSD
  • Net result of the session, fees included
07 · RECAP0:10
Why it's different
A control layer, not just an agent

Wallet policy engines see the transaction shape but not the market. Vishwa's control layer verifies intent, solvency, and execution fidelity — before anything irreversible happens.

🛡️

Verified before execution

Every action clears your constraints first. The proof replaces the human approval loop — no after-the-fact alerts.

🔑

The agent never holds keys

It submits an unsigned request through the gateway. The control layer signs only on a passing proof.

🔒

Constraints sealed in hardware

Per-trade, daily & monthly caps, allowed venues and actions, slippage bounds — sealed in the TEE, invisible to agent and wallet.

📡

Independent market data

The control layer pulls oracle & venue prices itself, so it can catch bad fills a wallet engine simply can't see.

Cheat sheet
Just say it
You want to…Just say…
Set guardrailsset my limits: only Polymarket, max $20/trade, $100/day
InstallInstall Vishwa from https://api.vishwalab.com/skills/vishwa-cli/skill.md
Sign invishwa-cli login
See balancesget my wallet
See marketsshow me the polymarket hot events
Open a market2026 FIFA World Cup Winner
Buybuy France 10 yes contracts in this market
View holdingsshow me my positions
Closesell all contracts in this position