Setting Your Constraints
This is the foundation of the Vishwa model. Before the agent can move a cent, the fund owner seals a constraint policy into the control layer. The agent never sees the full policy - it only ever gets allowed or denied.
Express limits in plain English
set my limits: only trade on Polymarket, max $20 per trade,
$100 per day, buy and sell contracts only - no transfersUnder the hood this becomes a signed constraint policy sealed inside the TEE:
{
"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 }
}
}What each field controls
allowed_operations
Which actions the agent may take (e.g. buy/sell only - never transfer out)
approved_venues
The allow-list of execution venues (e.g. Polymarket)
per_tx_usd / daily_usd / monthly_usd
Spend caps per trade, per day, per month
max_slippage
How far the fill price may drift from the live market
rate_limiting
Max operations per minute - blocks runaway loops
What happens after sealing
Every subsequent action is checked against this policy automatically. A buy that would exceed per_tx_usd, hit an un-approved venue, or fill outside max_slippage is denied before it ever signs. The agent simply reports that it cannot proceed.
Note: in the current release, these guardrails are configured as predefined examples rather than set through a user-facing command. The plain-English and JSON examples above illustrate the control-layer policy model.
Last updated