Skip to main content
The DeveloperCredential establishes the identity and legitimacy of organizations or individuals developing AI agents. It serves as the root of trust for all AgentCredentials issued to agents developed by this entity. Version: 1.0 Schema: developer-credential-v1.schema.json Media Type: application/beltic-developer+jwt

Purpose

DeveloperCredentials provide:
  • Verified identity for agent developers
  • KYC/KYB compliance verification
  • Risk assessment and screening results
  • Foundation for trust chains linking agents to developers

Field Categories

Fields are organized into 7 categories with 35+ total fields:
  1. Core Identity Information (6 fields)
  2. Contact Information (5 fields)
  3. Tax and Registration (4 fields)
  4. Risk and Compliance (6 fields)
  5. Ownership and Control (3 fields)
  6. Verification Metadata (8 fields)
  7. Cryptographic Identity (3 fields)

1. Core Identity Information

legalName

Type: string Required: Yes Sensitivity: Public The full legal name of the organization or individual as registered with the relevant government authority. Constraints:
  • Minimum length: 2 characters
  • Maximum length: 500 characters
  • Must match official registration documents
Assurance:
  • Self-attested: Allowed for development/testing
  • Beltic-verified: Required for production use
  • Third-party-verified: Allowed for regulated industries
Example: "Aurora Labs Inc."

entityType

Type: enum Required: Yes Sensitivity: Public Categorizes whether the credential holder is a corporation, individual, partnership, or other legal entity type. Allowed Values:
  • corporation - Incorporated company (Inc, Corp, Ltd)
  • limited_liability_company - LLC or equivalent
  • partnership - General or limited partnership
  • sole_proprietorship - Individual doing business
  • individual - Personal developer account
  • nonprofit_organization - Registered nonprofit/NGO
  • government_entity - Government agency or department
  • other - Other legal structures
Example: "corporation"

incorporationJurisdiction

Type: object Required: Yes Sensitivity: Public The country (and optionally state/province) where the entity is legally registered or incorporated. Structure:
{
  "country": "US",     // ISO 3166-1 alpha-2 (required)
  "region": "CA"       // ISO 3166-2 subdivision (optional)
}
Constraints:
  • Country must be valid ISO 3166-1 alpha-2 code
  • Region should use ISO 3166-2 subdivision codes where applicable
Example: {"country": "US", "region": "CA"}

incorporationDate

Type: string (ISO 8601 date: YYYY-MM-DD) Required: Yes (for organizations), Optional (for individuals) Sensitivity: Public The date when the entity was officially registered or incorporated. Constraints:
  • Must be a valid date in the past
  • Cannot be more than 200 years in the past
  • Cannot be in the future
Privacy Note: For individuals, day-level precision is reserved for internal logs; public presentations surface only year-month to avoid exposing personal birthdates. Example: "2019-06-15"

businessRegistrationNumber

Type: string (tokenized hash) Required: Optional Sensitivity: Restricted Official business registration or incorporation number. Format: Stored as a tokenized hash for privacy: "hash_9f4a..." Assurance: Third-party-verified against official registries

businessRegistrationStatus

Type: enum Required: Optional Sensitivity: Public Current standing of the business registration. Allowed Values:
  • active_good_standing
  • active_with_conditions
  • suspended
  • dissolved
  • pending
Example: "active_good_standing"

2. Contact Information

website

Type: string (URL) Required: Optional Sensitivity: Public Primary website or online presence. Constraints: Must be valid HTTPS URL Example: "https://auroralabs.ai"

registeredAddress

Type: object Required: Optional Sensitivity: Restricted Legal registered address of the entity. Structure:
{
  "street": "500 Market St, Suite 1200",
  "city": "San Francisco",
  "state": "CA",
  "postalCode": "94105",
  "country": "US"
}

businessEmail

Type: string (email) Required: Yes Sensitivity: Public Primary business contact email address. Constraints: Must be valid email format Assurance: Beltic-verified via email verification Example: "ops@auroralabs.ai"

businessPhone

Type: string (E.164 format) Required: Optional Sensitivity: Restricted Primary business phone number. Format: E.164 international format (e.g., "+1-415-555-1200")

securityEmail

Type: string (email) Required: Optional Sensitivity: Public Dedicated security contact email for vulnerability reports. Example: "security@auroralabs.ai"

3. Tax and Registration

taxIdExists

Type: boolean Required: Yes Sensitivity: Public Indicates whether the entity has a tax identification number. Example: true

taxIdVerified

Type: enum Required: Yes (if taxIdExists is true) Sensitivity: Public Verification status of the tax ID. Allowed Values:
  • not_verified
  • verified
  • verification_failed
Assurance: Third-party-verified via tax authority or verification service Example: "verified"

taxIdJurisdiction

Type: object Required: Yes (if taxIdExists is true) Sensitivity: Public Jurisdiction that issued the tax ID. Structure: Same as incorporationJurisdiction Example: {"country": "US"}

taxIdLastVerifiedDate

Type: string (ISO 8601 date) Required: Yes (if taxIdVerified is “verified”) Sensitivity: Public Date of the most recent tax ID verification. Example: "2025-05-01" Note: The actual tax ID number is never included in the credential. Only verification status and metadata are shared.

4. Risk and Compliance

kybTier

Type: enum Required: Yes Sensitivity: Public Level of Know Your Business verification completed. Allowed Values:
  • tier_0_none - No verification
  • tier_1_basic - Basic identity verification
  • tier_2_standard - Enhanced verification with screening
  • tier_3_enhanced - Full due diligence
  • tier_4_ongoing - Continuous monitoring
Tier Requirements:
TierRequirementsUse Cases
Tier 1Legal name, entity type, basic infoOpen-source agents, development
Tier 2+ Tax verification, screening checks, freshnessProduction agents, commerce
Tier 3+ Enhanced due diligence, UBO verificationFinancial services, regulated industries
Example: "tier_2_standard"

sanctionsScreeningStatus

Type: enum Required: Yes (Tier 2+) Sensitivity: Public Result of sanctions list screening. Allowed Values:
  • not_screened
  • clear
  • potential_match
  • confirmed_match
Assurance: Third-party-verified via sanctions screening service Example: "clear"

sanctionsScreeningLastChecked

Type: string (ISO 8601 timestamp) Required: Yes (if screening performed) Sensitivity: Public When sanctions screening was last performed. Example: "2025-10-05"

pepRiskLevel

Type: enum Required: Optional Sensitivity: Restricted Politically Exposed Person (PEP) risk assessment. Allowed Values:
  • none
  • low
  • medium
  • high
Example: "low"

adverseMediaRiskLevel

Type: enum Required: Optional Sensitivity: Restricted Risk level based on adverse media screening. Allowed Values:
  • none
  • low
  • medium
  • high
Example: "low"

overallRiskRating

Type: enum Required: Yes Sensitivity: Public Composite risk assessment across all factors. Allowed Values:
  • low
  • medium
  • high
  • prohibited
Example: "low"

5. Ownership and Control

beneficialOwnersKycStatus

Type: enum Required: Optional Sensitivity: Restricted KYC completion status for beneficial owners. Allowed Values:
  • not_applicable - Individual entity
  • all_identified_and_kycd - All UBOs verified
  • partially_identified - Some UBOs unverified
  • none_identified - No UBO verification
Example: "all_identified_and_kycd"

beneficialOwnersCount

Type: number Required: Optional Sensitivity: Restricted Number of beneficial owners with 25%+ ownership. Example: 3

controlStructureComplexity

Type: enum Required: Optional Sensitivity: Restricted Assessment of ownership structure complexity. Allowed Values:
  • simple - Direct ownership
  • moderate - Holding company structure
  • complex - Multi-tier or international structure
Example: "moderate"

6. Verification Metadata

credentialId

Type: string (UUID v4) Required: Yes Sensitivity: Public Unique identifier for this credential instance. Example: "d7aa92c7-8b07-4f35-8c9b-a2d02e26f012"

issuanceDate

Type: string (ISO 8601 timestamp) Required: Yes Sensitivity: Public When the credential was issued. Example: "2025-11-10T18:22:00Z"

expirationDate

Type: string (ISO 8601 timestamp) Required: Yes Sensitivity: Public When the credential expires. Constraints: Must be after issuanceDate Example: "2026-05-10T18:22:00Z"

issuerDid

Type: string (DID) Required: Yes Sensitivity: Public DID of the credential issuer. Example: "did:web:beltic.com"

verificationMethod

Type: string (DID URL) Required: Yes Sensitivity: Public Specific key used to sign this credential. Example: "did:web:beltic.com#key-1"

credentialStatus

Type: enum Required: Yes Sensitivity: Public Current status of the credential. Allowed Values:
  • active
  • suspended
  • revoked
Example: "active"

revocationListUrl

Type: string (URL) Required: Optional Sensitivity: Public URL to the Status List 2021 bitstring for revocation checking. Example: "https://beltic.com/status/dev-credentials.json"

lastUpdatedDate

Type: string (ISO 8601 timestamp) Required: Yes Sensitivity: Public When the credential was last modified. Example: "2025-11-10T18:22:00Z"

7. Cryptographic Identity

subjectDid

Type: string (DID) Required: Yes Sensitivity: Public DID of the credential subject (the developer). Example: "did:web:auroralabs.ai"

publicKey

Type: object Required: Optional Sensitivity: Public Public key reference for the subject’s cryptographic identity.

proof

Type: object Required: Yes Sensitivity: Public Cryptographic proof/signature from the issuer. Structure:
{
  "type": "Ed25519Signature2020",
  "created": "2025-11-10T18:22:00Z",
  "verificationMethod": "did:web:beltic.com#key-1",
  "proofPurpose": "assertionMethod",
  "proofValue": "z5vkY..."
}

Validation Rules

DeveloperCredential has 27 conditional validation rules across 2 tiers:

Tier 1 (Critical) - 9 Rules

  1. Entity-type consistency: If entityType is "individual", incorporationDate must be optional
  2. Sanctions violation: If sanctionsScreeningStatus is "confirmed_match", overallRiskRating must be "prohibited"
  3. Active with sanctions: If sanctionsScreeningStatus is "confirmed_match", credentialStatus cannot be "active"
  4. Tax ID required for orgs: If entityType is not "individual", taxIdExists must be true
  5. Verification consistency: If taxIdVerified is "verified", taxIdLastVerifiedDate is required
  6. Jurisdiction match: taxIdJurisdiction should match incorporationJurisdiction in most cases
  7. Registration status: businessRegistrationStatus cannot be "dissolved" if credentialStatus is "active"
  8. Risk rating consistency: If pepRiskLevel or adverseMediaRiskLevel is "high", overallRiskRating cannot be "low"
  9. Date ordering: issuanceDate must be before expirationDate

Tier 2 (High) - 18 Rules

Includes freshness requirements, screening completeness for tier 2+, date consistency across all metadata fields, and UBO requirements for tier 3. See Validation Guide for complete rule documentation.

Complete Example: Aurora Labs Inc.

This example shows a tier 2 verified corporation:
{
  "credentialId": "d7aa92c7-8b07-4f35-8c9b-a2d02e26f012",
  "legalName": "Aurora Labs Inc.",
  "entityType": "corporation",
  "incorporationJurisdiction": {
    "country": "US",
    "region": "CA"
  },
  "incorporationDate": "2019-06-15",
  "businessRegistrationNumber": "hash_9f4a...",
  "businessRegistrationStatus": "active_good_standing",

  "website": "https://auroralabs.ai",
  "registeredAddress": {
    "street": "500 Market St, Suite 1200",
    "city": "San Francisco",
    "state": "CA",
    "postalCode": "94105",
    "country": "US"
  },
  "businessEmail": "ops@auroralabs.ai",
  "businessPhone": "+1-415-555-1200",
  "securityEmail": "security@auroralabs.ai",

  "taxIdExists": true,
  "taxIdVerified": "verified",
  "taxIdJurisdiction": {
    "country": "US"
  },
  "taxIdLastVerifiedDate": "2025-05-01",

  "kybTier": "tier_2_standard",
  "sanctionsScreeningStatus": "clear",
  "sanctionsScreeningLastChecked": "2025-10-05",
  "pepRiskLevel": "low",
  "pepRiskLastAssessed": "2025-09-30",
  "adverseMediaRiskLevel": "low",
  "adverseMediaLastAssessed": "2025-09-30",
  "overallRiskRating": "low",

  "beneficialOwnersKycStatus": "all_identified_and_kycd",
  "beneficialOwnersCount": 3,
  "controlStructureComplexity": "moderate",

  "issuanceDate": "2025-11-10T18:22:00Z",
  "expirationDate": "2026-05-10T18:22:00Z",
  "issuerDid": "did:web:beltic.com",
  "verificationMethod": "did:web:beltic.com#key-1",
  "credentialStatus": "active",
  "revocationListUrl": "https://beltic.com/status/dev-credentials.json",
  "lastUpdatedDate": "2025-11-10T18:22:00Z",

  "subjectDid": "did:web:auroralabs.ai",
  "proof": {
    "type": "Ed25519Signature2020",
    "created": "2025-11-10T18:22:00Z",
    "verificationMethod": "did:web:beltic.com#key-1",
    "proofPurpose": "assertionMethod",
    "proofValue": "z5vkY..."
  }
}

KYB Tier Use Cases

Tier 1: Basic Verification

Requirements: Legal name, entity type, jurisdiction Use Cases:
  • Open-source agent development
  • Personal projects
  • Early-stage prototypes
  • Non-commercial agents
Example: Solo developer building a personal assistant

Tier 2: Standard Verification

Requirements: + Tax verification, sanctions/PEP screening, freshness (90 days) Use Cases:
  • Production agents
  • E-commerce and payment integration
  • Customer support agents
  • Multi-platform deployment
Example: Aurora Labs Inc. building commercial refund agents

Tier 3: Enhanced Due Diligence

Requirements: + UBO verification, enhanced screening, complex ownership analysis Use Cases:
  • Financial services agents
  • Healthcare/HIPAA-regulated agents
  • High-value transactions
  • Cross-border operations
Example: FinTech startup building payment automation agents

Next Steps

AgentCredential

Technical profile, safety scores, and agent capabilities

Credential Lifecycle

Issuance, verification, and revocation workflows

Developer Examples

Complete examples across all KYB tiers

JSON Schema

Complete schema definition