Product sheet · Grant Milestone Attestation

A milestone, attested once, checkable forever

A grant program publishes a milestone; a grantee claims it; a funder wants to know. Glass Hull captures the milestone text and every piece of evidence, hashes them, points at the on-chain proof where one exists, and signs the record with hardware (A9 and A10 chips) onto the Matchstick ledger. The record carries a verdict, never a badge: VERIFIED-ONCHAIN, VERIFIED-OFFCHAIN, UNRECONCILED or DENIED.

What the funder gets

Demo attestation · public Open House milestone

Glass Hull · grant milestone · demo

Tilt Protocol

VERIFIED-OFFCHAIN

Program: Arbitrum Open House 2026 — NYC Founder House (Robinhood Chain special awards)
Milestone (as published): “Tilt Protocol — $100K Founder in Residence seed funding, Robinhood Chain special award, NYC Founder House (announced 2026-03-11): AI-driven management layer for tokenized real-world assets.”

On-chain pointer (4663)
NOT FOUND
Evidence files
1
Ledger event
kind-15 2695342
Signature
ecdsa-p256:a9-atecc608b-slot0:aca611d37d…
milestone sha2566e2fc426c094b8858c3b9ccf3b4e93d003a7a030accb3f4d148b54ef7df3ea60packet sha256da6cfa6afc76ba05d1b464a9…captured2026-09-06T07:53:32Zevent hashdd663d2fdef5eb5808c4ce20…

Evidence captured

Demo record. The milestone is evidenced by the program's own publication (captured and hashed). No contract or transaction attributable to Tilt Protocol was found on Robinhood Chain 4663 mainnet at capture time, so the on-chain pointer is NOT FOUND and the verdict stays VERIFIED-OFFCHAIN. A funder-facing attestation would add the grantee's signed deliverable and its on-chain pointers.

Schema (kind-15 payload class grant-milestone)

{
 "$schema": "https://json-schema.org/draft/2020-12/schema",
 "title": "Glass Hull grant milestone attestation (kind-15 payload)",
 "type": "object",
 "additionalProperties": false,
 "required": [
  "class",
  "program",
  "grantee",
  "milestone_sha256",
  "evidence",
  "onchain",
  "onchain_status",
  "verdict",
  "captured_at",
  "packet_sha256",
  "packet_ref"
 ],
 "properties": {
  "class": {
   "const": "grant-milestone"
  },
  "program": {
   "type": "string",
   "maxLength": 80
  },
  "grantee": {
   "type": "string",
   "maxLength": 80
  },
  "milestone_sha256": {
   "type": "string",
   "pattern": "^[0-9a-f]{64}$",
   "description": "sha256 of the milestone text as published by the program"
  },
  "evidence": {
   "type": "array",
   "maxItems": 6,
   "items": {
    "type": "string",
    "pattern": "^[0-9a-f]{64}$"
   },
   "description": "sha256 of each captured evidence file (bytes as fetched, URL and time in the packet)"
  },
  "onchain": {
   "type": "array",
   "maxItems": 4,
   "items": {
    "type": "object",
    "required": [
     "chain_id",
     "block",
     "tx"
    ],
    "properties": {
     "chain_id": {
      "type": "integer"
     },
     "block": {
      "type": "integer"
     },
     "tx": {
      "type": "string",
      "pattern": "^0x[0-9a-f]{64}$"
     }
    }
   }
  },
  "onchain_status": {
   "enum": [
    "FOUND",
    "NOT FOUND",
    "NOT APPLICABLE"
   ]
  },
  "verdict": {
   "enum": [
    "VERIFIED-ONCHAIN",
    "VERIFIED-OFFCHAIN",
    "UNRECONCILED",
    "DENIED"
   ]
  },
  "captured_at": {
   "type": "string"
  },
  "packet_sha256": {
   "type": "string",
   "pattern": "^[0-9a-f]{64}$"
  },
  "packet_ref": {
   "type": "string"
  }
 }
}