Skip to main content
Tags are key-value pairs attached to events that nodes use for indexing and filtering. When a client queries a node (e.g., “give me all supply listings for part MAT-00042”), it filters by tags. Only single-letter tags are indexed by nodes, which is why OMA uses them exclusively. All tags SHOULD be lowercase, with no spaces. All tags except u (UserPublicKey) are expected to have one value. Format: ["<single-letter>", "<value>"]

Tag Reference

TagNameUseExampleNotes
aAddressReferential address of an event for replacement, i.e. when a listing must be updated, it is done so on the address.["a","<kind integer>:<32-bytes lowercase hex of a pubkey>:<d tag value>"]
dIdentifierStable identifier for a given material, this is a concatenation of material information that makes it physically unique among other components with the same part number.["d","MaterialNo + Supply + DateCode"]
nMaterialNoMaterial/part number from your system.["n","MAT-00042"]
mManufacturerManufacturer name.["m","Acme Corp"]
hThreadGroups related events.A deterministic thread ID computed from the root event_id and two participant pubkeys.
yTypeMaterial transaction type (e.g., supply, demand).["y","supply"]
cCompanyEvent publisher namespace.["c","acme"]
bBatchGroups listings created by a single publish action (e.g., one API call or one file import).["b","XYZ123"]
iInternalNoInternal ERP/DB tracking/reference.["i","INT-7788"]
tGenericFree-form topic tag (search/filter).["t","diodes"]
rReply NodeWebsocket URL for reply events.["r","wss://domain.seminode.com/inbox"]
pRecipientIntended recipient’s pubkey.["p","<pubkey>"]Exclusive to thread events of kind Quote, or Quote Response
sStatusWorkflow state this event belongs to (e.g., accepted, rejected).["s","accepted"]Exclusive to thread events of kind Quote Response
zFinalizedWorkflow state this event belongs to (e.g., pending, complete).["z","pending"]Exclusive to thread events of kind Quote, or Quote Response
eEventReference to another event (mention/link).["e","<event-id>"]
uUserPublicKeyUser pubkey(s) associated with the event, allows fine grain filtering for company users.["u","<pubkey>"]
  • Example(s): ["u","<hex>"] (repeat tag if multiple)

Query Modifying Tags

Query Modifying tags offer further specification for what events the client wants returned. These tags are not stored in events — they are passed in filters and modify the underlying query.
  • Match: "match" <Optional["match", "fuzzy"]>
    • Supports "fuzzy" for prefix or trigram matching on select tags. Useful for partial part number searches.
  • Intent: "intent" <Optional["intent", "tail"]>
    • Supports "tail", which returns only the most recent event in a conversation between two parties for a given listing. This is useful for showing the current state of a quoting thread without returning the full history.
    • Determined by the most recent timestamp for a unique combination of the "e" tag (listing event) and an unordered pair of the event author and recipient "p" tag.