Skip to main content

Intents, policies and mandates

Jade uses Yutu's intent and policy system for perps trading. Yutu separates account ownership from trading authority, so an account owner can let an automated strategy trade without giving it an unrestricted wallet key.

The owner sets the rules. A session key signs an intent under those rules. Validators check the signature, nonce, expiry, and policy limits before the action reaches the native market engine.

account owner
├─ policy ────────────── session key ─ signed intent
└─ strategy mandate ─ generated policy ─ session key ─ signed intent
│
▼
protocol checks → native book

Intents describe the action​

An intent is a signed instruction tied to one account and one policy. It contains the chain ID, policy ID, strict nonce, expiry, optional condition, and requested action.

Trading intents can:

  • Place market or limit orders with GTC, IOC, FOK, or GTT
  • Mark a limit order as post-only
  • Cancel or replace an existing order
  • Deposit or withdraw isolated collateral

Each intent moves through recorded states: accepted, conditionally accepted, promoted, executed, expired, or rejected. A rejection includes the policy or order reason, such as an invalid session signature, a disallowed market, an exceeded trade cap, or a post-only order that would cross.

Conditions run with the chain​

An intent can carry a time or Hyperliquid price condition. It can wait until a timestamp, remain valid only before a timestamp, or wait for a committed Hyperliquid mark to move above or below a stated level.

Conditional intents stay in protocol state until they become eligible or expire. The chain checks them during block production. A stop or scheduled action doesn't need a separate keeper to wake it up.

Policies define authority​

A policy binds one session key to a Yutu account. The key signs intents, but the policy decides which of them can be admitted.

Policies can set:

LimitWhat the chain checks
Allowed marketsWhether the intent may act on the named market
Maximum trade notionalThe largest single trade the key may request
Maximum outstanding notionalThe most exposure the policy may carry
Intent ratePer-second, per-minute, and per-day request caps
Daily volumeThe total admitted trading volume for the day
Daily gas budgetThe protocol budget available to the policy
Maximum drawdownA breach revokes the policy and its authority
Expiry and stateOnly an active, unexpired policy can admit an intent

The policy owns its nonce and counters. A signed intent can't be replayed against another policy, another chain, or an earlier nonce. Session keys attached to revoked and expired policies can't admit new work.

A session key can submit an intent to create a child policy for another session key. The child inherits the parent's market scope and can't receive larger volume, gas, rate, or drawdown allowances than its parent. This lets a strategy split work across keys without expanding the authority it received.

Mandates describe a strategy​

A mandate groups one or more session keys under a strategy-level set of constraints. Yutu generates a policy for each key and ties those policies back to the mandate.

Mandates support limits for:

  • Allowed markets, per-market notional, and total notional
  • Trade size and trade rate
  • Maximum notional relative to equity, and market concentration
  • Drawdown, daily loss, and maximum holding time
  • Allowed counterparties and same-operator trading

Some limits reject the intent before admission. Limits that depend on the actual match are checked against the fill, and the fill is rolled back if it would break the mandate. Ongoing limits such as daily loss, concentration, and holding time are evaluated from committed position state. A breach disables the generated policies.

The owner can suspend, resume, or revoke a mandate. Suspension stops its generated policies until the owner resumes it. Revocation and expiry are terminal.

Constraints and objectives​

Constraints are hard limits. Objectives measure the strategy without granting it more authority.

A mandate can track target return and Sharpe, maximum drawdown, minimum or maximum trade count, maximum slippage, and funding paid as a share of equity. Yutu records a conformance score and history for those objectives over their stated windows.

That distinction lets an owner ask two separate questions: was every trade permitted, and did the strategy do what it said it would do?

Where contracts fit​

EVM contracts can submit one-off native orders through Yutu's write precompile or maintain a standing target-position instruction. Promise tickets carry asynchronous order settlement back into the contract.

Read Write-precompile promises for callbacks and EVM on Yutu for standing instructions.