Predicates/Identity/Classification

has tag

Assigns a free-form keyword or tag atom to the subject. Use for lightweight clustering, filtering, and discovery — tags are informal, many-per-subject, and carry no taxonomy guarantees (prefer `has type` or `has category` for structured classification).

enshrined Identity/Classification hasTag

Enshrined — the object model is decided and the ID below is what every conforming app and the contract resolve.

Identity

A predicate is itself an atom. Its ID is derived from these exact bytes — the same value in your app, in anyone else's, and onchain.

predicate atom data
{
  "@context": "https://schema.org/",
  "@type": "DefinedTerm",
  "name": "has tag",
  "description": "Assigns a free-form keyword or tag atom to the subject. Use for lightweight clustering, filtering, and discovery — tags are informal, many-per-subject, and carry no taxonomy guarantees (prefer `has type` or `has category` for structured classification)"
}
atom id 0x0d72b37c75f5f640679c8e4743831d587b5db984edd1c6408bd3d7aa2b5b55b3

Semantics

Market patternattributive — describes the subject

Examples

ETHGlobalhas taghackathon
Rusthas tagsystems-programming

Recommended for

Classifications whose metadata vocabulary includes hasTag:

Use it

import
// tree-shakeable: only this predicate ships in your bundle
import { hasTagId } from "@0xintuition/predicates/hasTag";

// or resolve everything from the aggregate registry
import { PREDICATE_IDS } from "@0xintuition/predicates";
PREDICATE_IDS.hasTag; // 0x0d72b37c75f5f640679c8e4743831d587b5db984edd1c6408bd3d7aa2b5b55b3
make a claim
import { buildTripleByName } from "@0xintuition/primitives/triple";

const { value: triple } = buildTripleByName(
	subjectId,
	"hasTag",
	objectId,
);
// triple.predicateId === 0x0d72b37c… — resolved from the registry