{
  "_comment": "Written by agent/tools/dashboard.ts. Every figure is derived from the grant's manifest, its allowlist, or the chain — none is typed. The refusal sentences are produced by running the same explainRefusal the payer calls, except the one marked derived:false, which is consensus's answer quoted from a node's actual rejection.",
  "checkedAt": "2026-09-12T21:35:01.957Z",
  "network": "testnet-10",
  "elsewhere": {
    "vendor": "kaspatest:qr50gmc7t3jp33gg68aj63s9av54yc7w9kyjpwqdjhva9tt8j0a7wz2h6cnll",
    "sameAgent": true,
    "cap": "3 KAS",
    "budget": "15 KAS",
    "spent": "1.46802739 KAS",
    "reachedTheVendor": "1.46802739 KAS",
    "coins": [
      {
        "amount": "1.46802739 KAS",
        "txid": "3cb85aa8226bac1297ffd6db4c6f48f77cb8e483222834a7c736eadb0effd254",
        "blockDaaScore": "564077281"
      }
    ],
    "served": false,
    "servedDerived": false,
    "note": "The payment settled and the service did not arrive. Why is unknown: the same vendor refuses a payment from an ordinary wallet too, so it is not about this grant, and it has been reported. What the covenant did is the part that is checkable — it bounded what a vendor who takes payment without delivering can take."
  },
  "identity": {
    "agentId": "WARDA-001",
    "agent": "3c693f61fbc35d1fd4dcec2bbbab692be38656e6fd5a4077ee495afcb23535a1",
    "principal": "0393133deefc4c8df644f4512978c675a8a090860770d8de7b2d077f2c2df34f",
    "revocation": "0393133deefc4c8df644f4512978c675a8a090860770d8de7b2d077f2c2df34f",
    "grantAddress": "kaspatest:pz7fzszt05ggjjkyt8ysmvkewe48x7xfqytq0qxj7hl7wk74kj6vk9uxz45u9",
    "covenantId": "aae9b0d02d0595de29e80b1bb78d7051f667281985d8f80d3da0d70eafc7cf26",
    "template": "b3e5eeefacf2021f"
  },
  "authority": {
    "budget": "5 KAS",
    "spent": "0.8 KAS",
    "remaining": "4.2 KAS",
    "maxPerPayment": "0.3 KAS",
    "epochLimit": "1 KAS",
    "epochLengthDaa": 1000,
    "authorizedPayees": 1,
    "payees": [
      "kaspatest:qzlws9lm7uyt0tftzffshnyeu2zcqk4kf7hw5ghk6v0zh093vnkljcy2fl0fh"
    ],
    "delegationDepth": 2,
    "onChain": "4.12 KAS",
    "sompi": {
      "budget": "500000000",
      "spent": "80000000",
      "reserved": "0",
      "maxPerPayment": "30000000",
      "epochLimit": "100000000",
      "onChain": "412000000"
    }
  },
  "activity": {
    "payments": 5,
    "paid": "1 KAS",
    "paidOutsideTheAllowlist": "0 KAS",
    "coins": [
      {
        "amount": "0.2 KAS",
        "daaScore": "560791883",
        "txid": "73f34306bc66fc376dbc7d08569ba3f69d101693c85b97693d7d6fea6e4b2f58",
        "index": 1
      },
      {
        "amount": "0.2 KAS",
        "daaScore": "560837825",
        "txid": "0bbc7254716fc403cbefbd7ee7c82ebeb4cb6c8a8b4d2b828aed73ae63e8145e",
        "index": 1
      },
      {
        "amount": "0.2 KAS",
        "daaScore": "561520792",
        "txid": "38006e773f49b3c7cf1437f609f40a95c1dfafc5f3c60b97568d7996bc2b5962",
        "index": 1
      },
      {
        "amount": "0.2 KAS",
        "daaScore": "564064563",
        "txid": "7821fc2a554551af559a078626d9cc071205a97965b953334a6d8c7ba32e31bc",
        "index": 1
      },
      {
        "amount": "0.2 KAS",
        "daaScore": "564094891",
        "txid": "29726ba017ba1880709c6ea6214edfb19d662f8ef745b1c91c04cad1a8cd7e74",
        "index": 0
      }
    ]
  },
  "refusals": [
    {
      "rule": "per-payment cap",
      "attempted": "pay 0.30000001 KAS to an authorized payee",
      "refusal": "this invoice is 30000001 sompi and the grant's per-payment cap is 30000000. The cap exists to bound what a single decision can do, so it binds here regardless of how much budget remains.",
      "derived": true
    },
    {
      "rule": "lifetime budget",
      "attempted": "pay 5 KAS to an authorized payee",
      "refusal": "this invoice is 500000000 sompi and the grant's per-payment cap is 30000000. The cap exists to bound what a single decision can do, so it binds here regardless of how much budget remains.",
      "derived": true
    },
    {
      "rule": "payee allowlist",
      "attempted": "pay an address the grant never committed to",
      "refusal": "kaspatest:qrxvenxvenxvenxvenxvenxvenxvenxvenxvenxvenxvenxvenxvc3rysjr0d is not on this grant's allowlist, so no inclusion proof places it in the recipients tree. There is no valid transaction that pays them — not one the network would reject, none at all. A grant's payees are fixed at genesis: to pay this vendor you need a grant that committed to them.",
      "derived": true
    },
    {
      "rule": "payee script type",
      "attempted": "pay a pay-to-script-hash address",
      "refusal": "kaspatest:pz7fzszt05ggjjkyt8ysmvkewe48x7xfqytq0qxj7hl7wk74kj6vk9uxz45u9 is a pay-to-script-hash address (version 8), and a Warda grant can only pay pay-to-pubkey. The covenant builds the payee output as P2PK(recipient) — there is no transaction shape that pays a script hash from a grant, so this is not something a larger budget or a different grant would fix.",
      "derived": true
    },
    {
      "rule": "epoch allowance",
      "attempted": "pay 1.00000001 KAS within one epoch",
      "refusal": "this invoice is 100000001 sompi and only 80000000 remains in the current epoch (3395). The allowance refreshes as the chain advances — and cannot be refreshed by claiming an earlier epoch, which the covenant refuses.",
      "derived": true
    },
    {
      "rule": "storage mass (consensus, not the covenant)",
      "attempted": "pay 0.01 KAS — below what Kaspa will carry",
      "refusal": "this payment of 1000000 sompi is too SMALL to broadcast. Kaspa charges storage mass for the small outputs a transaction creates: this one massed 1000000 against a ceiling of 500000. Nothing about the grant was exceeded and nothing was spent — the amount itself is below what the network will carry.",
      "derived": false
    }
  ],
  "mission": "Monitor the Kaspa network and publish an independent daily digest, unattended. It holds a bounded Warda grant and may buy an approved service when it needs one.",
  "lastRun": {
    "at": "2026-09-12T21:17:02.825Z",
    "runs": 188,
    "since": "2026-09-03T08:18:38.642Z",
    "servicesUsed": 0,
    "spent": "0 KAS",
    "note": "reading the chain needs no vendor, so this run bought nothing"
  },
  "digest": {
    "window": "24 h",
    "from": "2026-09-11T21:17:03.465Z",
    "to": "2026-09-12T21:17:02.825Z",
    "text": "Kaspa testnet-10 · 24 h to 2026-09-12 21:17 UTC\n\n  blue score  +862,652           9.98 blue blocks/s\n  DAA score   +863,265           now 568,890,075\n  minted      +2,664,691.79 KAS  26,935,784,805 KAS in existence\n  hashrate    18.84 MH/s         node estimate over its last 1,000 blocks\n  mempool     5 tx               held, unaccepted, at the closing reading\n  DAG         4 tips             1,089,150 blocks held by this node\n\nmeasured between two readings of one node (kaspad 2.0.1)\n"
  }
}
