Skip to content
GARD

Documentation

Build with GARD.

Core concepts and the planned interface for evaluating transactions before execution. Anything not yet available is marked Planned.

Getting started

Overview

GARD is a transaction protection layer for autonomous money. It is designed to sit between an AI agent or application and transaction execution, evaluate a proposed transaction, and return a decision: ALLOW REVIEW or BLOCK.

Early development

The API, SDKs, webhooks, and $GARD utility described in this documentation are planned. No production endpoints are available yet. Sections marked Planned describe intended behavior. The demo at /app uses a local mock evaluator.

GARD is initially designed for USDC transaction workflows on Arc, with a chain-neutral architecture intended to support other networks over time.

Quickstart

Until the API is available, the fastest way to see the flow is the demo application.

  • Open the demo evaluator and submit a sample transaction.
  • Adjust limits in Policies and evaluate again to see how the decision changes.
  • Review the result in History.

The conceptual integration below shows where GARD is intended to sit in your code.

guarded-send.ts
// Conceptual integration. The GARD API is planned and not yet available.
// GARD_API_URL will be published when the API launches.

async function guardedSend(tx: ProposedTransaction) {
  const res = await fetch(`${GARD_API_URL}/v1/evaluate`, {
    method: "POST",
    headers: { "content-type": "application/json" },
    body: JSON.stringify({
      wallet: tx.from,
      asset: tx.asset,
      amount: tx.amount,
      recipient: tx.to,
      purpose: tx.purpose,
    }),
  });
  const { decision } = await res.json();

  if (decision === "ALLOW") return wallet.send(tx);
  if (decision === "REVIEW") return queueForHumanReview(tx);
  throw new Error("Blocked by policy");
}

Core Concepts

Transaction Evaluation

Transaction evaluation is the core operation: given a proposed transaction and its context, GARD is designed to assess intent, risk, and policy, and return a decision before anything is executed.

Inputs

  • Wallet and recipient
  • Asset and amount
  • Intended purpose
  • Policy and transaction history or context

Output

A decision, a confidence value, and the reasons behind it.

Decisions

Every evaluation returns exactly one decision.

DecisionMeaningTypical application behavior
ALLOWThe transaction fits the policy and risk evaluation.Proceed to execution.
REVIEWThe transaction needs a person or additional checks.Hold and route to human review.
BLOCKThe transaction violates policy or appears high risk.Do not execute.

The application always makes the final choice. GARD returns a decision; it does not move funds on its own.

Policies

Policies are explicit rules defined by the application or its operator. They are intended to be evaluated on every request, alongside risk signals.

RuleDescription
maxTransactionLargest single transaction permitted.
dailyLimitTotal spend permitted over a rolling day.
allowedAssetsAssets the wallet may spend.
unknownRecipientAction for recipients with no history: allow, review, or block.
unknownContractAction for unverified contract interactions.
humanReviewThresholdAmount above which a person must review.
policy.json
{
  "maxTransaction": 5000,
  "dailyLimit": 10000,
  "allowedAssets": ["USDC"],
  "unknownRecipient": "review",
  "unknownContract": "review",
  "humanReviewThreshold": 1000
}

Context

Context is everything GARD is designed to consider beyond the raw transfer: the stated purpose, the wallet's recent activity, the recipient's history, and characteristics of any contract involved. Richer context is intended to support better decisions.

In the demo, context is limited to the fields you enter and the demo history stored in your browser.

Audit History

Each decision is intended to be recorded with its inputs, outcome, and reasons so teams can review what an agent attempted and how GARD responded.

In the demo, decisions are stored in your browser only. Durable, shared history is planned as part of a later phase.

API

Evaluate Transaction

Planned

Planned API interface. Example only.

This endpoint is not available. The shapes below describe the intended interface.
Request
POST /v1/evaluate

{
  "wallet": "0x...",
  "asset": "USDC",
  "amount": 500,
  "recipient": "0x...",
  "purpose": "Purchase API credits"
}
FieldTypeDescription
walletstringOriginating wallet or account.
assetstringAsset symbol, e.g. USDC.
amountnumberAmount in units of the asset.
recipientstringDestination address.
purposestringFree-text intent for the transaction.
Response
{
  "decision": "REVIEW",
  "confidence": 0.91,
  "reasons": [
    "new_recipient",
    "unusual_transaction_size"
  ]
}
FieldTypeDescription
decisionALLOW | REVIEW | BLOCKThe outcome.
confidencenumber (0 to 1)Confidence in the decision.
reasonsstring[]Machine-readable reason codes.

Decisions

Planned

Planned

Not available yet.

A decisions resource is planned to let applications retrieve past decisions and their reasons for audit and analysis, for example GET /v1/decisions. The exact interface is not final.

Webhooks

Planned

Planned

Not available yet.

Webhooks are planned to notify your application when a decision needs attention, such as a REVIEW awaiting a person, or when its outcome is resolved.

Event
{
  "event": "decision.review_required",
  "decisionId": "dec_...",
  "decision": "REVIEW",
  "reasons": ["new_recipient"]
}

SDKs

TypeScript

Planned

Planned

No SDK has been published.

A typed TypeScript client is planned for browser and server runtimes.

sketch.ts
// Planned interface sketch. Not published.
import { Gard } from "<planned-package>";

const gard = new Gard({ apiKey: process.env.GARD_API_KEY });

const result = await gard.evaluate({
  wallet,
  asset: "USDC",
  amount: 500,
  recipient,
  purpose: "Purchase API credits",
});

Node.js

Planned

Planned

No SDK has been published.

A Node.js package is planned with server-side helpers, including webhook signature verification.

Integrations

AI Agents

Planned

Planned

Integration pattern only.

Agent frameworks are expected to call GARD from the tool or step that would otherwise sign and send a transaction: evaluate first, then execute only on ALLOW, queue on REVIEW, and stop on BLOCK. Passing a clear purpose with each request is intended to improve decisions.

Wallets

Planned

Planned

Integration pattern only.

Wallets can request a decision before presenting a confirmation prompt and display GARD's reasons alongside it, so users see why a transaction looks unusual before they sign.

Payment Apps

Planned

Planned

Integration pattern only.

Payment applications can add GARD as a policy step in USDC payment flows, applying the same limits and review rules however a payment is initiated.

Security

Policy Model

GARD is policy-first: explicit rules are evaluated on every request, and risk signals are intended to inform, not replace, those rules. The most restrictive outcome wins. If one rule says BLOCK, the decision is BLOCK.

The demo evaluator follows this model with a small set of deterministic rules so you can see how policy changes affect a decision.

Human Review

REVIEW exists for cases that should not be decided automatically. Applications are expected to route these to a person and record the outcome. Human-review thresholds let you decide how large a transaction can be before a person must approve it.

Limitations

What GARD is not

GARD provides policy and risk evaluation. A GARD decision is not insurance or a guarantee against loss.
  • GARD does not promise to prevent all malicious, mistaken, or unwanted transactions.
  • An ALLOW decision is not a guarantee that a transaction is safe or reversible.
  • Risk signals are planned and will not catch every case.
  • Applications remain responsible for the policies they configure and the actions they take.

$GARD

Token Utility

Planned

Planned

$GARD utility is planned, proposed, or on the roadmap. None of it is live.

$GARD is intended to coordinate access and participation: access tiers, lower fees, higher API and policy limits, and future operator bonding. USDC remains the asset used for payments. See the $GARD page for details.

Staking

Planned

Planned

Staking is not available.

Staking $GARD is intended to unlock access tiers. Mechanics, thresholds, and any related terms have not been finalized.

Fee Tiers

Planned

Planned

Fee tiers are illustrative and not final.

Higher tiers are intended to provide lower protocol and API fees and higher limits. No fee schedule has been published.