Tenzro
Capital markets

Capital Intent.

The capital-markets analog of an AP2 Intent Mandate. A signed, expiring authorization that says "acquire / exit / rebalance / hedge / yield this basket, subject to these regulatory constraints, KYA, and ceilings." Solvers bid; an assigner picks one; the intent runs Open → Quote → Assign → Execute → Verify → Settle (with Compensate on dispute).
STATUS
Testnet
CRATE
tenzro-types::capital_intent
STABILITY
Stable
TYPE
Component
01

Objective shapes

Acquire   { basket: Vec<AssetWeight> }
Exit      { basket: Vec<AssetWeight> }
Rebalance { target: Vec<AssetWeight> }
Hedge     { basket: Vec<AssetWeight> }
Yield     { basket: Vec<AssetWeight> }
02

Lifecycle

OpenQuoted AssignedExecuting Verifying (or Compensating) → Settled.

03

RPCs

tenzro_capitalIntentOpen
tenzro_capitalIntentQuote
tenzro_capitalIntentAssign
tenzro_capitalIntentExecute
tenzro_capitalIntentVerify
tenzro_capitalIntentCompensate
tenzro_capitalIntentSettle
tenzro_getCapitalIntent
04

Reserve attestation

Tokenized assets backed 1:1 by off-chain reserves. Attesters submit reserve attestations; mints are gated by a fresh attestation.

tenzro_submitReserveAttestation { attestation }
tenzro_getReserve { asset_id }
tenzro_attestedMint { token_id, to, amount, caller }
05

CLI

tenzro capital open --intent @intent.json
tenzro capital quote <intent_id> <solver_did> --plan "..." --price 1000 --eta-secs 60
tenzro capital assign <intent_id> --auto --payer 0x... --payee 0x...
tenzro capital execute <intent_id> @leg.json
tenzro capital verify <intent_id>
tenzro capital settle <intent_id> --payee 0x...
tenzro capital reserve submit @attestation.json
tenzro capital mint <token_id> <to> <amount> <caller>
06

SDK

// Rust
let opened = client.capital().open(intent_json).await?;
client.capital().assign(intent_id, None, true, Some(payer), Some(payee)).await?;
client.capital().execute(intent_id, leg_json).await?;
client.capital().settle(intent_id, None).await?;

// TypeScript
const opened = await client.capital.open(intent);
await client.capital.assign(opened.intent_id, { auto: true, payer, payee });
await client.capital.execute(opened.intent_id, leg);
await client.capital.settle(opened.intent_id);
Related
← All docs