Skip to content

Kind 31989 (NIP-89 app recommendations): 154 events, 95% invalid — missing a-tag references #72

Description

@alltheseas

Summary

154 out of 162 kind 31989 (NIP-89 app recommendation) events fail validation due to missing required a-tag references to handler announcements.

Evidence

  • 154 invalid events, 8 valid — 95.1% error rate
  • Unattributed, spread across many pubkeys (top: 6 events each)

Violation breakdown

Error Count
must contain at least 1 valid item(s) 154
must be equal to constant (expected "a" tag) 154 per position
must match pattern "^\d+:[a-f0-9]{64}:.+$" (invalid a-tag value) 154 per position

Root cause

Kind 31989 events are supposed to contain a-tags referencing kind 31990 handler announcements. Instead, events contain d, t, and other tags:

{
  "kind": 31989,
  "tags": [
    ["d", "a2n-capability"],
    ["t", "a2n"],
    ["t", "agent"],
    ["t", "ai"]
  ]
}

These events appear to be "capability" or "feature" declarations rather than app recommendations. They lack the required a-tag with the <kind>:<pubkey>:<d-tag> format.

Notes

This appears to be a misuse of kind 31989 — the events are declaring capabilities/features rather than recommending specific NIP-89 app handlers. The a2n tag suggests an AI agent framework repurposing this kind.

Dataset

655K events scanned across 52 event kinds from multiple relays. Validated against nostrability/schemata schemas.

Exact Failure Mode

Error Path Keyword Message Count
/tags contains must contain at least 1 valid item(s) 158
/tags/0/0 const must be equal to constant 158
/tags/0/1 pattern must match pattern kind:pubkey:dtag 158
/tags/1/0 const must be equal to constant 158

Sample failing tags: [["d","a2n-capability"],["t","a2n"],["t","agent"],["t","ai"]]

Root cause: Missing required a-tag with NIP-33 coordinate format; events use d/t tags for categorization instead of app recommendation. Appears to be AI agent framework repurposing kind 31989.

Metadata

Metadata

Assignees

No one assigned

    Labels

    failure-pinpointedExact AJV error paths, keywords, and sample values documentedverified-nipNIP specification verified against the actual NIP documentverified-schemaSchemata schema verified as correct for this kind

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions