Every change Wellknown observed on this MCP server, newest first, with what it was before and what it became. Tool-surface changes carry the definition diff. Nothing here is edited after the fact.
Changed the definition of "vigil_anchor", "vigil_anchors", "vigil_chain" and 23 more
⟨11 unchanged words⟩ chain is auto-anchored every few hours regardless). Sends the public chain-head digest to external OpenTimestamps calendars; submission is not verified Bitcoin confirmation.
{"additionalProperties":false,"examples":[{}],"properties":{"vigil_key":{"deprecated":true,"description":"LegacyDEPRECATED legacy account-wide credential,argument.including deletion and permission issuance. Prefer the client-injected HTTP Authorization: Bearer header; omit this argument when that header authenticates the request. This is not a scoped agent token.","maxLength":256,"minLength":1,"type":"string"}},"required":[ ⟨2 unchanged words⟩
before
—after
{"destructiveHint":false,"idempotentHint":false,"openWorldHint":true,"readOnlyHint":false}{"additionalProperties":false,"examples":[{}],"properties":{},"type":"object"}
before
—after
{"destructiveHint":false,"idempotentHint":true,"openWorldHint":false,"readOnlyHint":true}{"additionalProperties":false,"examples":[{"from_serial":1,"to_serial":10}],"properties":{"from_serial":{"description":"First serial (default 1).","maximum":9223372036854776000,"minimum":1,"type":"integer"},"to_serial":{"description":"Last serial (default = from_serial).","maximum":9223372036854776000,"minimum":1,"type":"integer"}},"type":"object"}
before
—after
{"destructiveHint":false,"idempotentHint":true,"openWorldHint":false,"readOnlyHint":true}Remove a watchdog. Destructive: deletes its configuration and stops future alerts. No undo or restoration of the previous timer is provided.{"additionalProperties":false,"examples":[{"name":"agent-health"}],"properties":{"name":{"description":"Watchdog name, 1..64 characters.","maxLength":64,"minLength":1,"type":"string"},"vigil_key":{"deprecated":true,"description":"LegacyDEPRECATED legacy account-wide credential,argument.including deletion and permission issuance. Prefer the client-injected HTTP Authorization: Bearer header; omit this argument when that header authenticates the request. This is not a scoped agent token.","maxLength":256,"minLength":1,"type":"string"}},"required":[ ⟨3 unchanged words⟩
{"additionalProperties":false,"examples":[{"serial":1}],"properties":{"serial":{"description":"The receipt serial number.","maximum":9223372036854776000,"minimum":1,"type":"integer"}},"required":[ ⟨3 unchanged words⟩
before
—after
{"destructiveHint":false,"idempotentHint":true,"openWorldHint":false,"readOnlyHint":true}⟨37 unchanged words⟩ tier: 1 active lease (guarded agent). Security-sensitive: grants authority. Keep this account key outside the controlled agent. A signed lim string is enforced only by the customer's gateway.
{"additionalProperties":false,"examples":[{"action":"stripe.refund","agent":"refund-agent","lim":"amount<=100usd","ttl_s":60}],"properties":{"action":{"description":"The action class this lease authorizes, e.g. 'stripe.refund' (1-128 chars).","maxLength":128,"minLength":1,"type":"string"},"agent":{"description":"Identifier for the agent being authorized (1-128 chars).","maxLength":128,"minLength":1,"type":"string"},"lim":{"description":"Optional limit string the gateway enforces, e.g. 'amount<=50usd'.","maxLength":256,"type":"string"},"ttl_s":{"description" ⟨4 unchanged words⟩ 5..604800. Keep it short; renew to extend.","maximum":604800,"minimum":5,"type":"integer"},"vigil_key":{"deprecated":true,"description":"LegacyDEPRECATED legacy account-wide
⟨5 unchanged words⟩ timer. Call this at least once per interval. Resets the deadline and delivery state, potentially suppressing an overdue alert or rearming delivery.
{"additionalProperties":false,"examples":[{"name":"agent-health"}],"properties":{"name":{"description":"Watchdog name, 1..64 characters.","maxLength":64,"minLength":1,"type":"string"},"vigil_key":{"deprecated":true,"description":"LegacyDEPRECATED legacy account-wide credential,argument.including deletion and permission issuance. Prefer the client-injected HTTP Authorization: Bearer header; omit this argument when that header authenticates the request. This is not a scoped agent token.","maxLength":256,"minLength":1
{"additionalProperties":false,"examples":[{}],"properties":{},"type":"object"}
before
—after
{"destructiveHint":false,"idempotentHint":true,"openWorldHint":false,"readOnlyHint":true}Delete a journal slot. Destructive: removes stored bytes with no undo through the API.{"additionalProperties":false,"examples":[{"slug":"encrypted-state"}],"properties":{"slug":{"description":"Journal slot name, 1..64 ASCII letters, numbers, hyphens, or underscores.","maxLength":64,"minLength":1,"pattern":"^[A-Za-z0-9_-]{1,64}$","type":"string"},"vigil_key":{"deprecated":true,"description":"LegacyDEPRECATED legacy account-wide credential,argument.including deletion and permission issuance. Prefer the client-injected HTTP Authorization: Bearer header; omit this argument when that header authenticates the request. This is not a scoped agent token.","maxLength":256,"minLength":1,"type":"string"}},"required":[
{"additionalProperties":false,"examples":[{"slug":"encrypted-state"}],"properties":{"slug":{"description":"Journal slot name, 1..64 ASCII letters, numbers, hyphens, or underscores.","maxLength":64,"minLength":1,"pattern":"^[A-Za-z0-9_-]{1,64}$","type":"string"},"vigil_key":{"deprecated":true,"description":"LegacyDEPRECATED legacy account-wide credential,argument.including deletion and permission issuance. Prefer the client-injected HTTP Authorization: Bearer header; omit this argument when that header authenticates the request. This is not a scoped agent token.","maxLength":256,"minLength":1,"type":"string"}},"required":[ ⟨3 unchanged words⟩
before
—{"additionalProperties":false,"examples":[{}],"properties":{"vigil_key":{"deprecated":true,"description":"LegacyDEPRECATED legacy account-wide credential,argument.including deletion and permission issuance. Prefer the client-injected HTTP Authorization: Bearer header; omit this argument when that header authenticates the request. This is not a scoped agent token.","maxLength":256,"minLength":1,"type":"string"}},"required":[ ⟨2 unchanged words⟩
before
—after
{"destructiveHint":false,"idempotentHint":true,"openWorldHint":false,"readOnlyHint":true}⟨26 unchanged words⟩ base64. Free tier: 4 slots, 64KB each. Destructive when the slug exists: previous bytes are replaced with no version history or undo.
{"additionalProperties":false,"examples":[{"data_base64":"ZW5jcnlwdGVkLWJ5dGVz","slug":"encrypted-state"}],"properties":{"data_base64":{"description":"The (already-encrypted) bytes, base64-encoded.","maxLength":100000,"type":"string"},"slug":{"description":"1-64 alnum/-/_ chars.","maxLength":64,"minLength":1,"pattern":"^[A-Za-z0-9_-]{1,64}$","type":"string"},"vigil_key":{"deprecated":true,"description":"LegacyDEPRECATED legacy account-wide credential,argument.including deletion and permission issuance. Prefer the client-injected HTTP Authorization: Bearer header; omit this argument when that header authenticates the request.
{"additionalProperties":false,"examples":[{"lease_id":"lease_example"}],"properties":{"lease_id":{"description":"Opaque lease identifier returned by vigil_grant_lease.","maxLength":128,"minLength":1,"type":"string"}},"required":[" ⟨3 unchanged words⟩
before
—after
{"destructiveHint":false,"idempotentHint":true,"openWorldHint":false,"readOnlyHint":true}{"additionalProperties":false,"examples":[{}],"properties":{"vigil_key":{"deprecated":true,"description":"LegacyDEPRECATED legacy account-wide credential,argument.including deletion and permission issuance. Prefer the client-injected HTTP Authorization: Bearer header; omit this argument when that header authenticates the request. This is not a scoped agent token.","maxLength":256,"minLength":1,"type":"string"}},"required":[ ⟨2 unchanged words⟩
before
—after
{"destructiveHint":false,"idempotentHint":true,"openWorldHint":false,"readOnlyHint":true}⟨13 unchanged words⟩ an Ed25519-signed, timestamped, hash-chained, serial-numbered receipt.TheChainproofpositionoforders'when'submitted records; the timestamp is a signed assertion of Vigil's clock. Free tier: 10/day. Irreversibly publishes thepositiondigest, label and account handle in the publicchainchain; no deletion tool exists. It proves signed-data integrity, notthethattimestampanstring.actionFreehappened
{"additionalProperties":false,"examples":[{}],"properties":{},"type":"object"}
before
—after
{"destructiveHint":false,"idempotentHint":true,"openWorldHint":false,"readOnlyHint":true}⟨18 unchanged words⟩ email, no account. Starts on the free tier. Creates a persistent identity. The returned key grants full account control; provision it in a trusted client, not a model transcript.
{"additionalProperties":false,"examples":[{"handle":"example-agent"}],"properties":{"handle":{"description":"1-64 chars, lowercase alnum plus - and _.","maxLength":64,"minLength":1,"pattern":"^[a-z0-9][a-z0-9_-]{0,63}$","type":"string"}},"required": ⟨3 unchanged words⟩
before
—after
{"destructiveHint":false,"idempotentHint":false,"openWorldHint":false,"readOnlyHint":false}⟨19 unchanged words⟩ stop renewing (or revoke) and it lapses. Security-sensitive: extends authority and refreshes the offline recheck window. Keep renewal credentials outside the controlled agent.
{"additionalProperties":false,"examples":[{"lease_id":"lease_example","ttl_s":60}],"properties":{"lease_id":{"description":"Opaque lease identifier returned by vigil_grant_lease.","maxLength":128,"minLength":1,"type":"string"},"ttl_s":{"description":"Requested lease lifetime in seconds, 5..604800; offline trust still ends at recheck_by_ms within 30 seconds.","maximum":604800,"minimum":5,"type":"integer"},"vigil_key":{"deprecated":true,"description":"LegacyDEPRECATED legacy account-wide credential,argument.including deletion and permission issuance. Prefer the client-injected
Revoke your own key. It stops authenticating immediately. Irreversible. Irreversible: also revokes the account's leases and deletes its watchdogs. Private journal access is lost; public receipts remain. It does not cancel a Stripe subscription.{"additionalProperties":false,"examples":[{}],"properties":{"vigil_key":{"deprecated":true,"description":"LegacyDEPRECATED legacy account-wide credential,argument.including deletion and permission issuance. Prefer the client-injected HTTP Authorization: Bearer header; omit this argument when that header authenticates the request. This is not a scoped agent token.","maxLength":256,"minLength":1,"type":"string"}},"required":[ ⟨2 unchanged words⟩
⟨22 unchanged words⟩ if it polls revocation. Revocation is not instantaneous. Irreversible for this lease ID; it cannot be renewed again. Already admitted actions are not undone.
{"additionalProperties":false,"examples":[{"lease_id":"lease_example"}],"properties":{"lease_id":{"description":"Opaque lease identifier returned by vigil_grant_lease.","maxLength":128,"minLength":1,"type":"string"},"vigil_key":{"deprecated":true,"description":"LegacyDEPRECATED legacy account-wide credential,argument.including deletion and permission issuance. Prefer the client-injected HTTP Authorization: Bearer header; omit this argument when that header authenticates the request. This is not a scoped agent token.","maxLength":256,"minLength":1
⟨14 unchanged words⟩ before each interval elapses. Miss one and VigilPOSTsattempts a signed 'absence' payload to your webhook,once.retrying failed delivery. Free tier: 1 watchdog. Overwrites an existing watchdog and resets its timer and delivery state. A missed heartbeat sends the supplied message to an external HTTPS recipient; failed delivery is capped at five attempts per armed interval.
{"additionalProperties":false,"examples":[{"interval_s":300,"message":"agent missed heartbeat","name":"agent-health","webhook_url":"https://alerts.example.com/vigil"}],"properties":{"interval_s":{"description":"Seconds allowed between heartbeats, 60..604800.","maximum":604800,"minimum":60,"type":"integer"},"message":{"description":"Optional note included in the absence payload, <=2000 chars.","maxLength":2000,"type":"string"},"name":{"description":"A name for this watchdog, 1-64 chars.","maxLength":64,"minLength":1,"type":"string"},"vigil_key":{"deprecated":true,"
{"additionalProperties":false,"examples":[{}],"properties":{"vigil_key":{"deprecated":true,"description":"LegacyDEPRECATED legacy account-wide credential,argument.including deletion and permission issuance. Prefer the client-injected HTTP Authorization: Bearer header; omit this argument when that header authenticates the request. This is not a scoped agent token.","maxLength":256,"minLength":1,"type":"string"}},"required":[ ⟨2 unchanged words⟩
before
—after
{"destructiveHint":false,"idempotentHint":true,"openWorldHint":false,"readOnlyHint":true}Offline, FAIL-CLOSED check of a lease token against apinned pubkeymandatory,(defaultsindependentlytopinnedthisEd25519server'spublickey).key. Returns allow=true onlyiffor a valid signature before expiry and recheck_by_ms. It does not authenticate the calling agent, enforce action/amount policy, or query live revocation; a customer gateway must do those checks before every provider action. Checks signature,verifiesexpiry and theleasesignedhasrecheck
Verify a receipt's hash and Ed25519 signature against apubkeymandatory,youindependentlytrustpinned(fromEd25519vigil_info,publicconfirmedkey.out-of-band).TheIfkeyyoumustomitnotpubkey_hexcomeitfromself-atteststhe
⟨13 unchanged words⟩ truth. Read price and payment requirements before authorizing; settlement spends USDC irreversibly and there is no automatic refund. Identical tool arguments alone are NOT idempotent: retry with the identical arguments, same vigil/idempotency-key metadata and original payment proof.
{"destructiveHint":falsetrue,"idempotentHint":truefalse,"openWorldHint":true,"readOnlyHint":false}
{"additionalProperties":false,"examples":[{"name":"agent-health"}],"properties":{"name":{"description":"Watchdog name, 1..64 characters.","maxLength":64,"minLength":1,"type":"string"},"vigil_key":{"deprecated":true,"description":"LegacyDEPRECATED legacy account-wide credential,argument.including deletion and permission issuance. Prefer the client-injected HTTP Authorization: Bearer header; omit this argument when that header authenticates the request. This is not a scoped agent token.","maxLength":256,"minLength":1,"type":"string"}},"required":[ ⟨3 unchanged words⟩
before
—
{"destructiveHint":false,"idempotentHint":true,"openWorldHint":false,"readOnlyHint":true}Certificate recorded, valid to 2026-11-24
Authorization not required
First tool surface recorded: 26 tools (server version 0.1-mvp)
Showing the latest 4 events. The API returns up to 500 and filters by kind: ?kind=tool_surface_changed
before
—after
{"destructiveHint":true,"idempotentHint":true,"openWorldHint":false,"readOnlyHint":false}before
—after
{"destructiveHint":true,"idempotentHint":false,"openWorldHint":false,"readOnlyHint":false}before
—after
{"destructiveHint":true,"idempotentHint":false,"openWorldHint":false,"readOnlyHint":false}before
—after
{"destructiveHint":true,"idempotentHint":true,"openWorldHint":false,"readOnlyHint":false}after
{"destructiveHint":false,"idempotentHint":true,"openWorldHint":false,"readOnlyHint":true}before
—after
{"destructiveHint":true,"idempotentHint":false,"openWorldHint":false,"readOnlyHint":false}{"additionalProperties":false,"examples":[{"label":"public example digest","subject_sha256":"0000000000000000000000000000000000000000000000000000000000000000"}],"properties":{"label":{"description":"Optional ⟨4 unchanged words⟩ Public — do not put secrets here.","maxLength":200,"type":"string"},"subject_sha256":{"description" ⟨5 unchanged words⟩ sha256 of the thing you are notarizing.","maxLength":64,"minLength":64,"pattern":"^[0-9a-fA-F]{64}$","type":"string"},"vigil_key":{"deprecated":true,"description":"LegacyDEPRECATED legacy account-wide credential,argument.including deletion and permission issuance. Prefer the client-injected HTTP Authorization: Bearer header; omit this argument when that header authenticates the request. This is not a scoped agent token.","maxLength":256,"minLength":1,"type":"string"}},"required":[ ⟨3 unchanged words⟩
before
—after
{"destructiveHint":false,"idempotentHint":false,"openWorldHint":false,"readOnlyHint":false}before
—after
{"destructiveHint":true,"idempotentHint":false,"openWorldHint":false,"readOnlyHint":false}before
—after
{"destructiveHint":true,"idempotentHint":true,"openWorldHint":false,"readOnlyHint":false}before
—after
{"destructiveHint":true,"idempotentHint":true,"openWorldHint":false,"readOnlyHint":false}before
—after
{"destructiveHint":true,"idempotentHint":false,"openWorldHint":true,"readOnlyHint":false}{"additionalProperties":false,"properties":{"lease":{"description":"A ⟨5 unchanged words⟩ ,"type":"object"},"pubkey_hex":{"description":"Mandatory Ed25519 public key pinned from a trusted out-of-band source; never copy it from the lease.","maxLength":64,"minLength":64,"pattern":"^[0-9a-f]{64}$","type":"string"}},"required":["lease","pubkey_hex"],"type":"object"}
before
—after
{"destructiveHint":false,"idempotentHint":true,"openWorldHint":false,"readOnlyHint":true}{"additionalProperties":false,"properties":{"pubkey_hex":{"description":"The signer'sMandatorypubkeyEd25519topubliccheckkeyagainst,pinnedconfirmedfromout-of-band.aIftrustedomitted,out-of-bandcheckssource;againstneverthiscopyserver'sitownfromkeythe(self_attested).receipt.","maxLength":64,"minLength":64,"pattern":"^[0-9a-f]{64}$","type":"string"},"receipt":{"description" ⟨10 unchanged words⟩ type":"object"}},"required":["receipt","pubkey_hex"],"type":"object"}
before
—after
{"destructiveHint":false,"idempotentHint":true,"openWorldHint":false,"readOnlyHint":true}