Files
nostrlib/schema/schema.yaml
2025-08-21 17:40:25 -03:00

1210 lines
16 KiB
YAML

_profile: &profile
type: pubkey
required: true
next:
type: relay
_event: &event
type: id
required: true
next:
type: relay
next:
type: pubkey
_addr: &addr
type: addr
required: true
next:
type: relay
_kind: &kind
type: kind
required: true
_dtag: &dtag
name: d
next:
type: free
required: true
_atag: &atag
name: a
next: *addr
_ptag: &ptag
name: p
next: *profile
_etag: &etag
name: e
next: *event
0:
content: json
1:
content: free
tags:
-
name: e
next:
type: id
required: true
next:
type: relay
next:
type: constrained
either:
- reply
- root
next:
type: pubkey
-
name: q
next:
type: id
required: true
next:
type: relay
next:
type: pubkey
-
name: q
next:
type: addr
required: true
next:
type: relay
-
name: p
next: *profile
-
name: a
next: *addr
-
name: subject
next:
type: free
required: true
-
name: L
next:
type: free
required: true
-
name: l
next:
type: free
required: true
next:
type: free
2:
content: free
deprecated: true
3:
content: json
tags:
- *ptag
4:
content: free
tags:
- *ptag
5:
content: empty
tags:
- *etag
6:
content: empty
tags:
- *etag
- *ptag
7:
content: free
tags:
- *etag
- *ptag
8:
content: empty
tags:
- *atag
- *ptag
9:
content: free
tags:
-
name: e
next:
type: id
required: true
next:
type: relay
next:
type: constrained
either:
- root
next:
type: pubkey
- *ptag
13:
content: free
14:
content: free
tags:
- *ptag
- *etag
-
name: subject
next:
type: free
required: true
15:
content: free
tags:
- *ptag
-
name: e
next:
type: id
required: true
next:
type: relay
next:
type: constrained
either:
- reply
-
name: subject
next:
type: free
required: true
-
name: file-type
next:
type: free
required: true
-
name: encryption-algorithm
next:
type: free
required: true
-
name: decryption-key
next:
type: free
required: true
-
name: decryption-nonce
next:
type: free
required: true
-
name: x
next:
type: free
required: true
16:
content: empty
tags:
- *etag
- *ptag
-
name: k
next: *kind
17:
content: free
tags:
-
name: r
next:
type: url
required: true
40:
content: json
41:
content: json
tags:
-
name: e
next:
type: id
required: true
next:
type: relay
next:
type: constrained
either:
- root
-
name: t
next:
type: free
required: true
42:
content: free
tags:
-
name: e
next:
type: id
required: true
next:
type: relay
next:
type: constrained
either:
- root
- reply
- *ptag
43:
content: json
tags:
-
name: e
next:
type: id
required: true
44:
content: json
tags:
- *ptag
64:
content: free
tags:
-
name: alt
next:
type: free
required: true
818:
content: free
tags:
- *atag
- *ptag
1018:
content: empty
tags:
-
name: e
next:
type: id
required: true
-
name: response
next:
type: free
required: true
1021:
content: free
tags:
-
name: e
next:
type: id
required: true
1022:
content: json
tags:
-
name: e
next:
type: id
required: true
1059:
content: free
tags:
- *ptag
1063:
content: free
tags:
-
name: url
next:
type: url
required: true
-
name: m
next:
type: free
required: true
-
name: x
next:
type: free
required: true
-
name: ox
next:
type: free
-
name: size
next:
type: free
-
name: dim
next:
type: free
-
name: magnet
next:
type: url
-
name: i
next:
type: free
-
name: blurhash
next:
type: free
-
name: thumb
next:
type: url
next:
type: free
-
name: image
next:
type: url
next:
type: free
-
name: summary
next:
type: free
-
name: alt
next:
type: free
-
name: fallback
next:
type: url
-
name: service
next:
type: free
1068:
content: free
tags:
-
name: option
next:
type: free
required: true
next:
type: free
required: true
-
name: relay
next:
type: relay
required: true
-
name: polltype
next:
type: constrained
either:
- singlechoice
- multiplechoice
-
name: endsAt
next:
type: free
required: true
1621:
content: free
tags:
- *atag
- *ptag
-
name: subject
next:
type: free
required: true
-
name: t
next:
type: free
required: true
1984:
content: free
tags:
- *ptag
- *etag
- *atag
-
name: L
next:
type: free
required: true
-
name: l
next:
type: free
required: true
next:
type: free
1985:
content: free
tags:
- *ptag
- *etag
- *atag
-
name: L
next:
type: free
required: true
-
name: l
next:
type: free
required: true
next:
type: free
9041:
content: free
tags:
-
name: amount
next:
type: free
required: true
-
name: relays
next:
type: relay
variadic: true
required: true
-
name: closed_at
next:
type: free
-
name: image
next:
type: url
-
name: summary
next:
type: free
-
name: r
next:
type: url
- *atag
-
name: zap
next:
type: pubkey
required: true
next:
type: relay
next:
type: free
9734:
content: free
tags:
-
name: relays
next:
type: relay
variadic: true
required: true
-
name: amount
next:
type: free
-
name: lnurl
next:
type: free
- *ptag
- *etag
- *atag
-
name: k
next: *kind
9735:
content: empty
tags:
- *ptag
-
name: P
next:
type: pubkey
required: true
- *etag
-
name: k
next: *kind
-
name: bolt11
next:
type: free
required: true
-
name: description
next:
type: free
required: true
-
name: preimage
next:
type: free
1111:
content: free
tags:
-
name: A
next: *addr
-
name: a
next: *addr
-
name: E
next: *event
-
name: e
next: *event
-
name: I
next: &external
type: free
required: true
next:
type: url
-
name: i
next: *external
-
name: K
next: *kind
-
name: K
next:
type: free
required: true
-
name: k
next: *kind
-
name: P
next: *profile
-
name: p
next: *profile
10002:
content: empty
tags:
-
name: r
next:
type: relay
required: true
next:
type: constrained
either:
- read
- write
9802:
content: free
tags:
-
name: p
next: *profile
- *etag
-
name: a
next: *addr
-
name: r
next:
type: url
required: true
-
name: context
next:
type: free
-
name: comment
next:
type: free
10050:
content: empty
tags:
-
name: relay
next:
type: relay
required: true
27235:
content: empty
tags:
-
name: u
next:
type: url
required: true
-
name: method
next:
type: constrained
either:
- GET
- POST
- PUT
- DELETE
required: true
30008:
content: empty
tags:
- *dtag
- *atag
- *etag
30009:
content: free
tags:
- *dtag
-
name: name
next:
type: free
required: true
-
name: description
next:
type: free
-
name: image
next:
type: url
next:
type: free
-
name: thumb
next:
type: url
next:
type: free
30017:
content: json
tags:
- *dtag
30018:
content: json
tags:
- *dtag
-
name: t
next:
type: free
30020:
content: json
tags:
- *dtag
30023:
content: free
tags:
- *dtag
-
name: title
next:
type: free
required: true
-
name: image
next:
type: url
-
name: summary
next:
type: free
-
name: published_at
next:
type: free
-
name: t
next:
type: free
- *etag
- *atag
30024:
content: free
tags:
- *dtag
-
name: title
next:
type: free
required: true
-
name: image
next:
type: url
-
name: summary
next:
type: free
-
name: published_at
next:
type: free
-
name: t
next:
type: free
- *etag
- *atag
30078:
content: free
tags:
- *dtag
30315:
content: free
tags:
- *dtag
-
name: r
next:
type: url
- *ptag
- *etag
- *atag
-
name: expiration
next:
type: free
30402:
content: free
tags:
- *dtag
-
name: title
next:
type: free
required: true
-
name: summary
next:
type: free
-
name: published_at
next:
type: free
-
name: location
next:
type: free
-
name: price
next:
type: free
required: true
next:
type: free
required: true
next:
type: free
-
name: status
next:
type: constrained
either:
- active
- sold
-
name: t
next:
type: free
-
name: image
next:
type: url
next:
type: free
-
name: g
next:
type: free
- *etag
- *atag
30403:
content: free
tags:
- *dtag
-
name: title
next:
type: free
required: true
-
name: summary
next:
type: free
-
name: published_at
next:
type: free
-
name: location
next:
type: free
-
name: price
next:
type: free
required: true
next:
type: free
required: true
next:
type: free
-
name: status
next:
type: constrained
either:
- active
- sold
-
name: t
next:
type: free
-
name: image
next:
type: url
next:
type: free
-
name: g
next:
type: free
- *etag
- *atag
31922:
content: free
tags:
- *dtag
-
name: title
next:
type: free
required: true
-
name: summary
next:
type: free
-
name: image
next:
type: url
-
name: location
next:
type: free
-
name: g
next:
type: free
- *ptag
-
name: t
next:
type: free
-
name: r
next:
type: url
- *atag
-
name: start
next:
type: free
required: true
-
name: end
next:
type: free
31923:
content: free
tags:
- *dtag
-
name: title
next:
type: free
required: true
-
name: summary
next:
type: free
-
name: image
next:
type: url
-
name: location
next:
type: free
-
name: g
next:
type: free
- *ptag
-
name: t
next:
type: free
-
name: r
next:
type: url
- *atag
-
name: start
next:
type: free
required: true
-
name: end
next:
type: free
-
name: start_tzid
next:
type: free
-
name: end_tzid
next:
type: free
31924:
content: free
tags:
- *dtag
-
name: title
next:
type: free
required: true
- *atag
31925:
content: free
tags:
- *dtag
- *etag
- *atag
-
name: status
next:
type: constrained
either:
- accepted
- declined
- tentative
required: true
-
name: fb
next:
type: constrained
either:
- free
- busy
- *ptag
31989:
content: empty
tags:
- *dtag
- *atag
31990:
content: json
tags:
- *dtag
-
name: k
next: *kind
-
name: web
next:
type: url
required: true
next:
type: constrained
either:
- nevent
- nprofile
-
name: ios
next:
type: free
required: true
30617:
content: empty
tags:
- *dtag
-
name: name
next:
type: free
required: true
-
name: description
next:
type: free
required: true
-
name: web
next:
type: url
required: true
-
name: clone
next:
type: giturl
required: true
-
name: relays
next:
type: relay
variadic: true
-
name: r
next:
type: gitcommit
required: true
next:
type: constrained
either:
- euc
required: true
-
name: maintainers
next:
type: pubkey
variadic: true
30618:
content: empty
tags:
- *dtag
-
prefix: "refs/"
next:
type: gitcommit
required: true
-
name: HEAD
next:
type: free
1617:
content: free
tags:
- *atag
-
name: r
next:
type: gitcommit
required: true
- *ptag
-
name: t
next:
type: constrained
either:
- root
- root-revision
required: true
-
name: commit
next:
type: gitcommit
required: true
-
name: r
next:
type: gitcommit
required: true
-
name: parent-commit
next:
type: gitcommit
required: true
-
name: commit-pgp-sig
next:
type: free
required: true
-
name: committer
next:
type: free
required: true
next:
type: free
required: true
next:
type: free
required: true
next:
type: free
required: true