Publish
POST /api/v1/registry/announcements validates and stores new announcements.List
GET /api/v1/registry/announcements returns paginated announcements with filters.Stats
GET /api/v1/registry/stats returns total count and non-zero view-tag distribution.POST /api/v1/registry/announcements
Request schema
Hex-encoded ephemeral ciphertext.
Announcement view tag (
0-255).Transaction hash string. Must be non-empty.
Optional 32-byte channel id as 64 hex characters.
Optional human-readable amount string.
Optional chain identifier (for example
ethereum, sui).Response schema
Assigned registry announcement id.
Publish confirmation.
GET /api/v1/registry/announcements
Query parameters
Filter announcements by a specific view tag.
Start of time-range filter (Unix timestamp).
End of time-range filter (Unix timestamp).
Pagination offset.
Pagination limit.
Response schema
Paginated announcement rows.
Total matching rows before pagination.
GET /api/v1/registry/stats
Response schema
Current total number of stored announcements.
Array of non-zero tag buckets (
tag, count).Example calls
- Publish (cURL)
- List (cURL)
- Stats (cURL)
Behavior notes
Duplicate transaction hashes are rejected
Duplicate transaction hashes are rejected
The in-memory registry normalizes
tx_hash and prevents duplicate entries with the same transaction hash.List filter precedence
List filter precedence
Listing uses
view_tag when present. If absent, it uses time range only when both from_timestamp and to_timestamp are provided. Otherwise it returns all.Storage scope
Storage scope
API state uses
MemoryRegistry, so announcements are process-local and reset when the process restarts.