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):
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.
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
Violation breakdown
must contain at least 1 valid item(s)must NOT have fewer than 3 items(tags too short)must be equal to one of the allowed values(invalid report type)must be equal to constant(wrong tag names)must match a schema in anyOfRoot 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):
Should be:
["p", "<pubkey>", "spam"]Pattern 2 — Report type in wrong position:
Empty relay hint pushes report type to position 4.
Pattern 3 — e-tag with report type as position 2:
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
/tagscontains/tags/0minItems/tags/1/0const/tags/0/2enum/tags/0/0constSample 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.