Beltic logo
Credentials

DeveloperCredential

Complete field-by-field reference for DeveloperCredential v1 including KYB tiers, validation rules, and examples.

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