Entities

The strict types of actors and assets that the protocol describes.

Entities are simply the actors and assets within the Fide Context Graph.

Every Active, Inactive, or Protocol entity is identified by a Primary Fide ID if it is the subject of any Statement.


Standard Alignment

FCP is designed to be the "Universal Glue." Instead of proprietary types, we map FCP entities directly to established standard vocabularies.

Protocol Entities

These entities form the "foundation" of the Fide Context Protocol (FCP). They are the grammar we use to build sentences about the world.

FCP Entity TypeStandard AlignmentImplementation Notes
Statementrdf:StatementA specific, content-addressed Subject-Predicate-Object triple.
Attestationverifiable:CredentialA cryptographic wrapper proving authorship over Statements.
EvaluationMethodprov:PlanThe algorithm, rubric, or logic used to generate a verdict.

Active Entities

Entities with Agency. They can sign statements, take actions, and own assets.

FCP Entity TypeStandard AlignmentImplementation Notes
Personschema:PersonDirect mapping.
Organizationschema:OrganizationDirect mapping.
AutonomousAgentprov:SoftwareAgentA running software instance with signing keys.

Inactive Entities

Entities that exist to be described, referenced, or acted upon.

FCP Entity TypeStandard AlignmentImplementation Notes
Placeschema:PlaceDirect mapping.
Eventschema:EventDirect mapping.
Productschema:ProductTools, assets, or services.
CreativeWorkschema:CreativeWorkContent, code, or concepts.
CryptographicAccountsec:Key(W3C Security) Represents the Controller address of a sec:Key pair.

Protocol Entities

Statement

The base unit of the protocol. A Statement is a content-addressed Subject → Predicate → Object triple defined in the Statement Schema. All other protocol primitives (like Attestations) ultimately exist to publish, sign, and link Statements.

Attestation

A signing event. When an actor signs a Statement, they create an Attestation entity — the cryptographic wrapper that proves authorship. The Statement becomes a Signed Statement (see Attesting) when linked to an Attestation.

SDK Implementation

The SDK provides createAttestation() and verifyAttestation() functions. See Attestation & Batching in the SDK documentation for implementation examples.

EvaluationMethod

The methodology, algorithm, or service used to evaluate another entity. When an EvaluationMethod is used as the predicate in a statement, that statement becomes an evaluation.

For details on evaluation types, how to create methods, and how evaluations aggregate, see Evaluating.

Philosophy: Statement vs. Fact

Why isn't data called a 'Fact'?

Because in a distributed system, truth is relative.

  • A Statement ("Alice says sky is green") is an objective record of speech. The protocol guarantees Alice said it.
  • A Fact is a status you assign to a statement after you verify it.

FCP records Statements. Your application upgrades them to Facts based on Evaluations.


Active Entities

Person

Natural human beings.

Organization

Companies, teams, governments, or groups acting as a single unit.

Defining Groups: Lists vs. Queries

How do I represent a group like 'Stanford Alumni 2022'?

You usually don't need a separate Entity for every group. FCP uses Dynamic Queries:

  1. Semantic Data: Link entities with statements (Alice → alumniOf → Stanford + startDate: 2022).
  2. Query: "Find all Persons where alumniOf=Stanford AND startDate=2022".

Only create a distinct Organization entity if the group itself needs to take action (e.g., "The Alumni Association donates $1M").

AutonomousAgent

Self-acting software instances (bots, AI agents, workflows). Any software instance that holds a signing key and takes actions.

Code vs. Running Instance

  • Agent Code (CreativeWork): The GitHub repo, the logic.
  • Agent Instance (AutonomousAgent): The running process with a signing key.

Think: Docker Image (CreativeWork) vs. Running Container (AutonomousAgent).


Inactive Entities

Place

Physical locations or spatial regions (Cities, Venues, Countries).

Event

Happenings with start/end times (Concerts, Meetings, Action Traces).

Product

Tools, software, physical goods, or assets defined by utility (SaaS Tools, Hardware).

CreativeWork

Concepts, documents, code repositories, media files, or Protocol Statements.

Tie-Breaker: Product vs CreativeWork

Product (5) is for Utility (tools). CreativeWork (6) is for Consumption (content).

"If I replace it with a different version, is it the same entity?"

  • Hammer Test (Product): Replacing one hammer with another = Same utility.
  • Book Test (CreativeWork): Replacing one book with another = Different content.

CryptographicAccount

An entity representing a cryptographic keypair (Account/Wallet). Distinct from the Person or Agent controlling it.


Decision Tree

Is it a natural human being?

Use Person.

Is it a company, team, government, or group?

Use Organization.

Is it a physical location?

Use Place.

Is it a happening with start/end times?

Use Event.

Is it a cryptographic keypair?

Use CryptographicAccount.

Is it self-acting software with a key?

Use AutonomousAgent.

Is it a tool, good, or asset?

Use Product.

Is it a document, media file, or code?

Use CreativeWork.

Identity Is Subjective

While FCP provides the IDs (did:fide:0x...), the Fide Context Graph allows you to decide what those IDs truly mean.

Two applications, same Fide ID = Different entity profiles. This is by design. Your application resolves the entity profile by choosing which indexers to trust and applying your own weighting models.

👉 Read the full Entity Resolution guide

On this page