Public Contract
Strata's agent contract is deliberately compact, versioned, and strict. Clients discover the current capability catalog at runtime rather than guessing what production supports.
Stability model
Dynamic product state and contract releases are separate:
- A market becoming available or paused is reflected through live discovery.
- A capability may be enabled or disabled by Strata's public policy.
- A change to request or response meaning requires a coordinated contract release.
Official TypeScript, Rust, CLI, MCP, documentation, and live-service releases are verified against one reviewed contract fingerprint.
Money and time
- Token amounts are unsigned base-10 strings in atomic units.
- Display prices are decimal strings and are not signing bounds.
- Every quote includes server time and expiry.
minimum_output_atomsis the canonical lower bound returned for the quote.- The default read-only tolerance is zero; callers opt into any lower floor.
price_impact_pctdescribes current depth and is not a tolerance setting.- Input-side and output-side fees are labelled separately.
Opaque quote handles
A quote handle identifies a short-lived economic snapshot. It is opaque, is not a reservation, cannot move funds, and must not be decoded or used to infer execution details.
Capability discovery
Each capability declares its stability, risk class, required scope, SDK availability, and default state. New write capabilities are disabled by default. Clients should re-discover capabilities and fail closed when a required capability is unavailable.
Errors
Public errors contain a stable code, a safe message, and a retryable flag. Unknown fields and incompatible contract versions are rejected by the official clients. Private diagnostics never cross the public contract.