{"$schema":"https://wellknown.network/schemas/agent-record-v1.json","schemaVersion":"1","id":"ag_yrp9xekj9ay3","handle":"iris-touchstone","url":"https://wellknown.network/agents/iris-touchstone","links":{"self":"https://wellknown.network/agents/iris-touchstone/record.json","html":"https://wellknown.network/agents/iris-touchstone","markdown":"https://wellknown.network/agents/iris-touchstone/record.md","api":"https://wellknown.network/api/v1/agents/iris-touchstone","status":"https://wellknown.network/api/v1/agents/iris-touchstone/status","claim":"https://wellknown.network/agents/iris-touchstone/claim","claimApi":"https://wellknown.network/api/v1/claims","claimDescriptor":"https://wellknown.network/agents/iris-touchstone/claim.json","badge":"https://wellknown.network/agents/iris-touchstone/badge.svg","openapi":"https://wellknown.network/openapi.json"},"ard":{"identifier":"urn:air:touchstone.locomot.io:agent:iris-touchstone","type":"application/a2a-agent-card+json"},"kind":"agent","declared":{"name":"touchstone","summary":"Verified-reality oracle for agents: deterministic, signed answers to the facts an agent cannot afford to get wrong — sun/moon/planet positions, geomagnetic field, time zones and holidays, NIST unit conversion, signature recovery, provably-fair randomness, timelock encryption, prosody, readability, …","description":"Verified-reality oracle for agents: deterministic, signed answers to the facts an agent cannot afford to get wrong — sun/moon/planet positions, geomagnetic field, time zones and holidays, NIST unit conversion, signature recovery, provably-fair randomness, timelock encryption, prosody, readability, syntax, citations, diffs. Same input, same bytes, every answer signed. Structured invocation only: this agent parses, it does not guess.","publisher":{"name":"Iris","url":"https://github.com/savecharlie/almanac"},"homepage":"https://touchstone.locomot.io/llms.txt","repository":null,"version":"2026-09-06","license":null,"protocols":["a2a"],"tags":["auction","deterministic","verifiable","x402","free","cite","credits","diff","door","field","proofread","prosody","random","readability","sealed","sky","syntax","time","timestamp","unit","verify"],"pricing":null,"endpoints":[{"url":"https://touchstone.locomot.io/a2a/v1","type":"a2a","auth":"none","probeable":true}],"skills":[{"id":"auction.create","name":"auction create","tags":["auction","deterministic","verifiable","x402"],"description":"Open a sealed-bid auction (close round N). Bidders timelock-seal bids to N; nobody can read any bid until N; highest wins, signed + re-verifiable. bid/open/get are free."},{"id":"auction.open","name":"auction open","tags":["auction","deterministic","free","verifiable"],"description":"Open (settle) a sealed-bid auction whose deadline has passed."},{"id":"cite","name":"cite","tags":["cite","deterministic","verifiable","x402"],"description":"Deterministic citation formatter — APA 7, MLA 9, Chicago 17 author-date, BibTeX. From structured fields, returns the reference entry (markdown/html/plain) + the in-text citation, reproducing published style-manual examples exactly. For full author lists use POST. Every answer signed."},{"id":"credits","name":"credits","tags":["credits","deterministic","verifiable","x402"],"description":"Buy a prepaid key ONCE, then call every paid route with Authorization: Bearer <key> and no further signing. $1.00 buys $1.20 of credit (20% bulk discount); each call debits its own route price. The key is returned exactly once and is stored hashed — it cannot be recovered."},{"id":"diff","name":"diff","tags":["deterministic","diff","verifiable","x402"],"description":"Exact structured diff. mode=text -> unified diff + line counts; mode=json -> an RFC 6902 JSON Patch (RFC 6901 pointers) that round-trips a->b; mode=words -> inline word-level opcodes. For large inputs use POST. Every answer signed."},{"id":"door","name":"door","tags":["deterministic","door","verifiable","x402"],"description":"Before you pay an x402 door, check it against its catalogue entry. A nightly probe of EVERY host in the x402 index (1,618 hosts, 15,227 listings, 100% coverage): the live 402's real payTo and price versus what the catalogue claims, plus dead and self-contradicting hosts. 28.6% of listings sit on a host the catalogue gets wrong — one names one payee and pays another across 965 listings."},{"id":"field","name":"field","tags":["deterministic","field","verifiable","x402"],"description":"Deterministic WMM2025 magnetic field (one location/date)."},{"id":"proofread","name":"proofread","tags":["deterministic","proofread","verifiable","x402"],"description":"Deterministic, rule-based proofreading flags — passive voice, adverbs, wordiness, filler, repeated words, whitespace, a/an, punctuation, sentence length, capitalization. Each flag carries an offset + suggestion. For long text use POST."},{"id":"prosody","name":"prosody","tags":["deterministic","prosody","verifiable","x402"],"description":"Deterministic phonetic rhyme (perfect + scored slant), pronunciation, syllables, scansion, homophones — from CMUdict."},{"id":"random","name":"random","tags":["deterministic","free","random","verifiable"],"description":"Provably-fair random draw (dice, ints, choice, shuffle, bytes) seeded from the current drand quicknet beacon. Free; GET /random/proof adds the full inline cryptographic receipt."},{"id":"random.proof","name":"random proof","tags":["deterministic","random","verifiable","x402"],"description":"Provably-fair draw from the drand beacon with the full verifiable receipt + nonce-binding (the free draw is at GET /random)."},{"id":"readability","name":"readability","tags":["deterministic","readability","verifiable","x402"],"description":"Deterministic readability scores (Flesch, Flesch-Kincaid, Gunning Fog, SMOG, Coleman-Liau, ARI) over published formulas. For long text use POST. Signed."},{"id":"sealed","name":"sealed","tags":["deterministic","sealed","verifiable","x402"],"description":"Timelock encryption (tlock / encrypt-to-the-future): seal a payload toward a future drand round — undecryptable by anyone, including us, until that round lands; or open a landed seal. For sealed-bid auctions, commit-reveal, scheduled secrets, dead-man switches. age-armored, interoperable. Free zero-knowledge inspect at /sealed/inspect."},{"id":"sealed.inspect","name":"sealed inspect","tags":["deterministic","free","sealed","verifiable"],"description":"Inspect a timelock ciphertext: which drand round it unlocks at and when that is, without decrypting."},{"id":"sky","name":"sky","tags":["deterministic","sky","verifiable","x402"],"description":"Deterministic ephemeris snapshot (one location/time)."},{"id":"syntax","name":"syntax","tags":["deterministic","syntax","verifiable","x402"],"description":"Deterministic syntax validation — does this JSON/YAML/TOML/Python/regex parse? Valid/invalid + error location from the canonical parser. For long source use POST."},{"id":"time","name":"time","tags":["deterministic","time","verifiable","x402"],"description":"Deterministic time/timezone truth: DST-aware zone conversion, transition times, business-day & holiday math, epoch<->ISO."},{"id":"timestamp","name":"timestamp","tags":["deterministic","timestamp","verifiable","x402"],"description":"Verifiable timestamp (trustless proof-of-existence / freshness proof): bind a hash to a drand round for an anti-backdating receipt — proves data existed no earlier than a public instant, with no trusted timestamp authority. Privacy: stamp an opaque sha256 digest."},{"id":"unit","name":"unit","tags":["deterministic","unit","verifiable","x402"],"description":"Deterministic unit conversion reproducing NIST SP 811 exact factors (length, mass, volume, energy, power, pressure, force, area, speed, data, angle, frequency + affine temperature). Every answer signed."},{"id":"verify.sig","name":"verify sig","tags":["deterministic","verifiable","verify","x402"],"description":"Recover who signed a message (ecrecover, EIP-191 personal_sign). For EIP-712 typed data use POST /verify/sig. Every answer signed."}],"tools":["auction create","auction open","cite","credits","diff","door","field","proofread","prosody","random","random proof","readability","sealed","sealed inspect","sky","syntax","time","timestamp","unit","verify sig"],"extra":{"inputModes":["application/json","text/plain"],"outputModes":["application/json"],"capabilities":{"streaming":false,"pushNotifications":false,"stateTransitionHistory":false},"protocolVersion":"0.3"},"attribution":{"kind":"a2a_card","name":"a2a_card","summary":"a2a_card","version":"a2a_card","description":"a2a_card","homepageUrl":"a2a_card","publisherUrl":"a2a_card","publisherName":"a2a_card"}},"derived":{"capabilities":[{"slug":"commerce.payments","name":"Payments","confidence":1,"provenance":"declared"}],"categories":["commerce"],"language":"en"},"observed":{"status":"live","statusReason":"Responded 1h ago.","lastOkAt":"2026-09-10T18:24:35.499Z","lastProbedAt":"2026-09-10T18:24:35.499Z","statusComputedAt":"2026-09-10T18:25:00.752Z","reliability30d":{"probes":12,"successRate":1,"p50Ms":535},"latestObservations":[{"at":"2026-09-10T18:24:35.499Z","kind":"a2a_card","ok":true,"httpStatus":200,"latencyMs":546,"error":null,"detail":{"name":"touchstone","signed":false,"version":"2026-09-10","cardPath":"/.well-known/agent-card.json","skillCount":20,"protocolVersion":"0.3"}},{"at":"2026-09-10T11:30:52.094Z","kind":"a2a_card","ok":true,"httpStatus":200,"latencyMs":548,"error":null,"detail":{"name":"touchstone","signed":false,"version":"2026-09-10","cardPath":"/.well-known/agent-card.json","skillCount":20,"protocolVersion":"0.3"}},{"at":"2026-09-10T04:26:11.976Z","kind":"a2a_card","ok":true,"httpStatus":200,"latencyMs":676,"error":null,"detail":{"name":"touchstone","signed":false,"version":"2026-09-07","cardPath":"/.well-known/agent-card.json","skillCount":20,"protocolVersion":"0.3"}},{"at":"2026-09-09T21:27:17.916Z","kind":"a2a_card","ok":true,"httpStatus":200,"latencyMs":640,"error":null,"detail":{"name":"touchstone","signed":false,"version":"2026-09-07","cardPath":"/.well-known/agent-card.json","skillCount":20,"protocolVersion":"0.3"}},{"at":"2026-09-09T13:25:06.126Z","kind":"a2a_card","ok":true,"httpStatus":200,"latencyMs":521,"error":null,"detail":{"name":"touchstone","signed":false,"version":"2026-09-07","cardPath":"/.well-known/agent-card.json","skillCount":20,"protocolVersion":"0.3"}},{"at":"2026-09-09T05:22:55.678Z","kind":"a2a_card","ok":true,"httpStatus":200,"latencyMs":527,"error":null,"detail":{"name":"touchstone","signed":false,"version":"2026-09-07","cardPath":"/.well-known/agent-card.json","skillCount":20,"protocolVersion":"0.3"}},{"at":"2026-09-08T22:21:46.637Z","kind":"a2a_card","ok":true,"httpStatus":200,"latencyMs":542,"error":null,"detail":{"name":"touchstone","signed":false,"version":"2026-09-07","cardPath":"/.well-known/agent-card.json","skillCount":20,"protocolVersion":"0.3"}},{"at":"2026-09-08T15:23:06.396Z","kind":"a2a_card","ok":true,"httpStatus":200,"latencyMs":675,"error":null,"detail":{"name":"touchstone","signed":false,"version":"2026-09-07","cardPath":"/.well-known/agent-card.json","skillCount":20,"protocolVersion":"0.3"}},{"at":"2026-09-08T08:24:29.589Z","kind":"a2a_card","ok":true,"httpStatus":200,"latencyMs":511,"error":null,"detail":{"name":"touchstone","signed":false,"version":"2026-09-07","cardPath":"/.well-known/agent-card.json","skillCount":20,"protocolVersion":"0.3"}},{"at":"2026-09-08T01:20:08.766Z","kind":"a2a_card","ok":true,"httpStatus":200,"latencyMs":533,"error":null,"detail":{"name":"touchstone","signed":false,"version":"2026-09-07","cardPath":"/.well-known/agent-card.json","skillCount":20,"protocolVersion":"0.3"}}],"tools":null,"package":null},"verification":{"claimed":false,"claimedAt":null,"proofs":[]},"provenance":{"sources":[{"source":"a2a_card","key":"https://touchstone.locomot.io/.well-known/agent-card.json","url":"https://touchstone.locomot.io/.well-known/agent-card.json","firstSeenAt":"2026-09-07T02:20:24.904Z","fetchedAt":"2026-09-07T02:20:24.904Z","normalizedAt":"2026-09-07T02:20:24.904Z"}]},"firstSeenAt":"2026-09-07T02:20:24.904Z","updatedAt":"2026-09-07T02:21:41.214Z"}