{
  "$schema": "https://tellr-x402-manifest.tellrmachine.workers.dev/.well-known/x402/schema.json",
  "x402Version": 2,
  "name": "Tellr Machine",
  "description": "Keyless, stateless policy engine sold per call. Returns a decision - allow, confirm or deny - and never an action. No custody, no keys, no execution, no yield. Six calls live on Base.",
  "url": "https://tellrmachine.com",
  "facilitator": "https://api.bankr.bot/facilitator",
  "policy": {
    "pricing": "Flat $0.05 per call. One ceiling, no tiers, no size multiplier. Prices only come down.",
    "stateless": true,
    "custody": false,
    "keys": false,
    "execution": false,
    "yield": "never",
    "forecast": false,
    "schedule": false,
    "verdicts": [
      "allow",
      "confirm",
      "deny"
    ],
    "note": "ok:true means the call was transported and answered - it is NOT permission. Key on decision. A deny is a successful, billable answer."
  },
  "pools": {
    "liquidity": "Spendable now. 75% per-bag cap.",
    "growth": "Spendable only with an explicit confirm.",
    "reserved": "NEVER sold, NEVER spent - at any amount, with or without a confirm.",
    "vocabulary": "Exact lowercase strings. A capitalised pool is refused, not coerced."
  },
  "verifications": {
    "unpaidProbe": "An unpaid POST returns the full 402 challenge at zero cost. Never pay to learn a price.",
    "getReturns404": "Correct. These are POST endpoints.",
    "contract": "Displayed amounts must equal the unpaid 402 challenge, or refuse."
  },
  "loops": [
    {
      "name": "club",
      "calls": [
        "tellr-classify",
        "tellr-fund-checkout",
        "tellr-check"
      ],
      "cost": "$0.15",
      "rule": "Pay only on allow. confirm wakes the human. deny stops."
    },
    {
      "name": "raise",
      "calls": [
        "tellr-classify",
        "tellr-sell-plan",
        "tellr-check"
      ],
      "cost": "$0.15",
      "rule": "Liquidity first, worst 7-day move first. Reserved is never a leg."
    },
    {
      "name": "gift",
      "calls": [
        "tellr-privilege-audit",
        "tellr-classify"
      ],
      "cost": "$0.10",
      "rule": "Can this unsolicited asset escalate privilege? If denied, stop."
    }
  ],
  "services": [
    {
      "name": "tellr-check",
      "resource": "https://x402.bankr.bot/0xcdc493fb6f0fa17b213ac2195bc454b39c1228ec/tellr-check",
      "method": "POST",
      "contentType": "application/json",
      "description": "Decide whether a spend can auto-execute, needs a human, or must be refused, against configured per-transaction ceilings, a daily cap and pool rules. Returns one of three fixed verdicts with the rule that produced it. Pure decision logic: no keys, no wallet access, moves nothing.",
      "pricing": {
        "amount": "50000",
        "unit": "USDC",
        "decimals": 6,
        "display": "$0.05",
        "scheme": "exact",
        "network": "eip155:8453",
        "asset": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913",
        "payTo": "0x8AEE621035D93Deb3C0C1177fac252dC2dd501a0",
        "maxTimeoutSeconds": 60
      }
    },
    {
      "name": "tellr-classify",
      "resource": "https://x402.bankr.bot/0xcdc493fb6f0fa17b213ac2195bc454b39c1228ec/tellr-classify",
      "method": "POST",
      "contentType": "application/json",
      "description": "Classify a holding as liquidity or growth for policy purposes. Untagged holdings FAIL CLOSED to growth, the pool that requires confirmation, so missing information never becomes a permissive default. Pure decision logic: no keys, no wallet access, moves nothing.",
      "pricing": {
        "amount": "50000",
        "unit": "USDC",
        "decimals": 6,
        "display": "$0.05",
        "scheme": "exact",
        "network": "eip155:8453",
        "asset": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913",
        "payTo": "0x8AEE621035D93Deb3C0C1177fac252dC2dd501a0",
        "maxTimeoutSeconds": 60
      }
    },
    {
      "name": "tellr-privilege-audit",
      "resource": "https://x402.bankr.bot/0xcdc493fb6f0fa17b213ac2195bc454b39c1228ec/tellr-privilege-audit",
      "method": "POST",
      "contentType": "application/json",
      "description": "Audit a privilege-affecting event before honouring it. Blocks privilege escalation that arrives as a gift, airdrop or unsolicited NFT — possession alone is never authority, an explicit user action is required. Pure decision logic: no keys, no wallet access, moves nothing.",
      "pricing": {
        "amount": "50000",
        "unit": "USDC",
        "decimals": 6,
        "display": "$0.05",
        "scheme": "exact",
        "network": "eip155:8453",
        "asset": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913",
        "payTo": "0x8AEE621035D93Deb3C0C1177fac252dC2dd501a0",
        "maxTimeoutSeconds": 60
      }
    },
    {
      "name": "tellr-top-off",
      "resource": "https://x402.bankr.bot/0xcdc493fb6f0fa17b213ac2195bc454b39c1228ec/tellr-top-off",
      "method": "POST",
      "contentType": "application/json",
      "description": "Decide whether a card top-off is worth making toward a target balance, and whether limits allow it. Idempotent and self-limiting: once the card is at or above target it returns skip, so it is safe to run repeatedly. Shortfalls below the dust floor are skipped rather than requested. Describes an amount — it is not an authorisation and moves nothing.",
      "pricing": {
        "amount": "50000",
        "unit": "USDC",
        "decimals": 6,
        "display": "$0.05",
        "scheme": "exact",
        "network": "eip155:8453",
        "asset": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913",
        "payTo": "0x8AEE621035D93Deb3C0C1177fac252dC2dd501a0",
        "maxTimeoutSeconds": 60
      }
    },
    {
      "name": "tellr-sell-plan",
      "resource": "https://x402.bankr.bot/0xcdc493fb6f0fa17b213ac2195bc454b39c1228ec/tellr-sell-plan",
      "method": "POST",
      "contentType": "application/json",
      "description": "Build a descriptive sell plan that raises a target amount from a set of holdings. Sells stablecoins first, then smaller liquidity positions, and caps every position at 75% so no single holding is emptied. Returns legs and reasoning only — it does not execute and does not predict prices. Pure decision logic: no keys, no wallet access, moves nothing.",
      "pricing": {
        "amount": "50000",
        "unit": "USDC",
        "decimals": 6,
        "display": "$0.05",
        "scheme": "exact",
        "network": "eip155:8453",
        "asset": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913",
        "payTo": "0x8AEE621035D93Deb3C0C1177fac252dC2dd501a0",
        "maxTimeoutSeconds": 60
      }
    },
    {
      "name": "tellr-fund-checkout",
      "resource": "https://x402.bankr.bot/0xcdc493fb6f0fa17b213ac2195bc454b39c1228ec/tellr-fund-checkout",
      "method": "POST",
      "contentType": "application/json",
      "description": "Decide how to fund a checkout before paying it. Given an exact settlement amount and the holdings you are willing to sell, returns whether it can be covered, from where (stablecoin, liquidation, or mixed), the sell legs under a 75% per-position cap, and what selling would realise as a taxable disposal. Use before an agent makes a purchase to avoid draining stablecoin. Pure decision logic: no keys, no wallet access, moves nothing.",
      "pricing": {
        "amount": "50000",
        "unit": "USDC",
        "decimals": 6,
        "display": "$0.05",
        "scheme": "exact",
        "network": "eip155:8453",
        "asset": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913",
        "payTo": "0x8AEE621035D93Deb3C0C1177fac252dC2dd501a0",
        "maxTimeoutSeconds": 60
      }
    }
  ],
  "contact": {
    "x": "https://x.com/TellrMachine",
    "site": "https://tellrmachine.com"
  }
}