Skip to main content

Capability Domains

CAR defines 10 capability domains, each represented by a single uppercase letter code with a unique bitmask value.

Domain Table

CodeDomainBitmaskDescription
AAdministration0x001System administration, user management, configuration
BBusiness0x002Business logic, workflows, approval chains
CCommunications0x004Email, messaging, notifications, channels
DData0x008Data processing, analytics, reporting, ETL
EExternal0x010Third-party integrations, external APIs
FFinance0x020Financial operations, payments, accounting, trading
GGovernance0x040Policy enforcement, compliance, oversight
HHospitality0x080Venue management, events, catering, scheduling
IInfrastructure0x100Compute, storage, networking, deployment
SSecurity0x200Authentication, authorization, audit, threat detection

Bitmask Encoding

Domains are encoded as a bitmask for efficient storage and comparison:

import { encodeDomains, decodeDomains } from '@vorion/car-client';

// Encode domains to bitmask
const mask = encodeDomains(['A', 'B', 'F']); // 0x023 = 35

// Decode bitmask to domain codes
const domains = decodeDomains(0x023); // ['A', 'B', 'F']

Bitmask Operations

// Check if agent has a specific domain
function hasDomain(agentMask: number, domain: DomainCode): boolean {
return (agentMask & DOMAIN_BITMASKS[domain]) !== 0;
}

// Check if agent has ALL required domains
function hasAllDomains(agentMask: number, required: DomainCode[]): boolean {
const requiredMask = encodeDomains(required);
return (agentMask & requiredMask) === requiredMask;
}

// Check if agent has ANY of the domains
function hasAnyDomain(agentMask: number, domains: DomainCode[]): boolean {
const checkMask = encodeDomains(domains);
return (agentMask & checkMask) !== 0;
}

Domain String Formatting

In the CAR string, domain codes are sorted alphabetically:

BFA → ABF (Administration, Business, Finance)
HFC → CFH (Communications, Finance, Hospitality)
SDIG → DGIS (Data, Governance, Infrastructure, Security)

Common Domain Combinations

Use CaseDomainsCAR Fragment
Financial assistantBusiness + Finance:BF-L3@
Event plannerCommunications + Finance + Hospitality:CFH-L3@
DevOps botExternal + Infrastructure + Security:EIS-L4@
Data analystData + External:DE-L2@
Compliance monitorData + Governance + Security:DGS-L1@
Full-stack agentAll domains:ABCDEFGHIS-L5@

Domain Restrictions

  • An agent MUST have at least one domain
  • Domain authorization is granted via attestation, not self-declared
  • Removing a domain requires re-attestation
  • Domain scope is enforced at runtime by the trust engine