Untch docs

Deterministic policy evaluation before money moves.

Preflight

Preflight is the core check. Given a policy and a SpendIntent, Untch runs the policy engine and returns a decision plus a full rule trace.

Hosted tool:

POST https://asp.untch.xyz/preflight_payment

Price: $0.05 USDT0 on X Layer mainnet via x402.

Outcomes

FamilyMeaning
APPROVEDAll rules passed. Agent may proceed to pay (and Mode C may return an oracle sig when configured).
BLOCKED_*Hard stop. No payment.
ESCALATED_*Withhold until a human approves or the timeout defaults to deny.
REJECTED_*Malformed input or binding failure.

Examples of block codes: duplicate, cooldown, recipient, agent, category, budget, rate limit, vendor risk, replay.

Examples of escalate codes: amount above threshold, per-call cap (when policy says escalate), proof tier, vendor risk (when policy says escalate).

Rule evaluation

All thirteen RULE_EVAL rules run in fixed order, plus the policy.active lookup. Order is load-bearing: the first failing rule wins.

Inputs that need external state (vendor score, challenge binding) are injected into the ledger window by the ASP. The engine itself stays pure: no LLM, no silent skip.

Receipts and escalations

On a decision, Untch can:

  • Enqueue a durable decision receipt (receiptRef)
  • Create a server-side escalation and fan out to your channels

Poll escalations at GET /escalation_status/:pollRef.

Fail closed

If the policy is missing, the ledger window is malformed, or a dependency fails in a way that would allow silent approve, Untch blocks or escalates. It does not invent an approval.

Related