Skip to content

Kind 1984 (NIP-56 reporting): 383 unattributed invalid events — tag format issues #71

Description

@alltheseas

Summary

383 kind 1984 (reporting/flagging) events fail validation due to tag format issues, primarily missing the required 3rd element (report type) in p-tags and e-tags.

Evidence

  • 383 invalid events (unattributed), out of 604 total — 63.4% error rate

Violation breakdown

Error Count
must contain at least 1 valid item(s) 510
must NOT have fewer than 3 items (tags too short) 416
must be equal to one of the allowed values (invalid report type) 316
must be equal to constant (wrong tag names) 286
must match a schema in anyOf 127

Root cause

NIP-56 reporting events require p-tags and e-tags with a report type in position 3 (one of: nudity, malware, profanity, illegal, spam, impersonation). Common violations:

Pattern 1 — Missing report type (2 elements instead of 3):

["p", "<pubkey>"]

Should be: ["p", "<pubkey>", "spam"]

Pattern 2 — Report type in wrong position:

["p", "<pubkey>", "", "impersonation"]

Empty relay hint pushes report type to position 4.

Pattern 3 — e-tag with report type as position 2:

["e", "<event-id>", "impersonation"]

Position 2 should be relay URL; report type goes in position 3.

Notes

Reporting events are privacy-sensitive, so attribution is difficult (no client tags). The diverse error patterns suggest multiple clients are implementing NIP-56 with different interpretations of the tag structure.

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) 515
/tags/0 minItems must NOT have fewer than 3 items 416
/tags/1/0 const must be equal to constant 368
/tags/0/2 enum must be equal to one of the allowed values 316
/tags/0/0 const must be equal to constant 291

Sample failing tags: [["p","f8e496ae...","","impersonation"]]

Root cause: Report reason ("impersonation") at position 3 instead of position 2; empty relay hint at position 2 fails enum check; many tags missing reason field.

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