RYNTRA
Guard for Arc
Back to Arc project
INDEPENDENT PROJECTTESTNET ONLYNOT AUDITEDNOT FINANCIAL ADVICEARC PUBLIC TESTNET

Decision & Settlement Evidence Layer

Know whether this action is ready — and preserve the evidence.

Normalize intent, preserve provider provenance and freshness, apply versioned financial policy, keep authorization separate, and reconcile the final Arc result.

CURRENT CAPABILITYCHECKING CAPABILITY FRESHNESS

The exact EOA USDC fallback does not expose a signing secret, and is the path the recorded run proved. App Kit swap estimates still require a server-only key.

  1. 01CONNECT
  2. 02INTENT
  3. 03EVIDENCE
  4. 04POLICY
  5. 05AUTHORIZE
  6. 06EXECUTE

Versioned intent

EOA USDC treasury transfer

Arc Testnet
Expected output
Minimum received
Fees
Total debit
Provider
Evidence valid until

Route: waiting · Underlying DEX route is not exposed by the current App Kit estimate.

Connect an EVM wallet, prepare the exact transfer, then review each wallet action.

FOR DEVELOPERS

Embed the same Guard kernel

const intent = await ryntra.intents.create<{ id: string }>(input, {
  idempotencyKey: "create-order-001",
});
const evaluation = await ryntra.preflight<{
  id: string;
  evidenceStatus: string;
  policyDecision: string;
  authorizationStatus: string;
  executionStatus: string;
  reconciliationStatus: string;
}>(intent.id, { evidence: [evidence] }, {
  idempotencyKey: "preflight-order-001",
});

if (evaluation.evidenceStatus !== "COMPLETE") return showMissing(evaluation);
if (evaluation.policyDecision === "BLOCKED_BY_RULE") return showBlockers(evaluation);

const authorization = await ryntra.authorize<{ id: string }>({
  intentId: intent.id,
  evaluationId: evaluation.id,
  fingerprint,
  subjectRef,
  method: "PARTNER_AUTHENTICATED",
}, { idempotencyKey: "authorize-order-001" });

// The wallet signs. This is the user's action, in their own wallet, and the
// application never holds the key that makes it.
const transactionHash = await partnerWallet.execute(transaction);

await ryntra.executions.record({
  intentId: intent.id,
  authorizationId: authorization.id,
  fingerprint,
  transactionHash,
}, { idempotencyKey: "record-order-001" });

Decision & settlement receipt

Not finalized

Intent
Ryntra authorization
Pending
Wallet signature
Not signed
Transaction
Not verified
Reconciliation
Receipt hash
A receipt cannot finalize without a real Arc Testnet transaction hash and confirmed reconciliation.

Recorded Arc Testnet run

Reconciled proof

Operation
Direct-EOA ERC-20 USDC transfer
Amount
1.000000 USDC
Transaction
0x6476…d5f9 · block 55677295
Reconciliation
MATCHED · ONCHAIN_VERIFIED
Receipt
rcpt_b6b010ec3d5e4be19b4c26cdfce28e73
Receipt hash
0xb153…64f2
The one recorded, reconciled run on Arc Public Testnet, shown for review. The session panel starts empty; only a real new transaction fills it.
Open the recorded transaction
Arc Testnet Demo — Ryntra Guard