Skip to content

Soul System Gate Specifications

Mohamed Abdelaziz ‬‏ edited this page Jun 25, 2026 · 1 revision

Soul System Gate Specifications

Back to Home | See also: Trust Score Algorithm


Overview

The Soul System is AxiomID's access control layer built on Soul Bound Tokens (SBTs) — non-transferable, non-revocable identity tokens permanently bound to a DID. Gates enforce policy decisions at the intersection of SBT ownership, trust score thresholds, and action scopes.


Soul Bound Token (SBT) Design

Token Structure

interface SoulBoundToken {
  tokenId: bigint;             // Unique token ID
  ownerDID: string;            // Permanently bound DID (non-transferable)
  tier: SoulTier;              // GENESIS | APPRENTICE | GUARDIAN | ARCHON | SOVEREIGN
  issuedAt: number;            // Unix timestamp
  issuerDID: string;           // Issuing authority DID
  attributes: SoulAttributes;  // Capabilities and metadata
  proofHash: string;           // keccak256 of all attributes
}

interface SoulAttributes {
  humanVerified: boolean;      // Biometric/KYC proof attached
  agentClass: AgentClass;      // AUTONOMOUS | SUPERVISED | SYSTEM
  delegationDepth: number;     // Max delegation chain depth
  crossChainEnabled: boolean;  // Can anchor to multiple chains
  sensitiveDataAccess: boolean; // Access to PII contexts
}

Soul Tiers

Tier Name Min Trust Score Description
0 Genesis 0 Newly created identity, minimal capabilities
1 Apprentice 100 Basic verified entity with standard access
2 Guardian 300 Trusted agent with delegation authority
3 Archon 600 High-trust, cross-chain operations enabled
4 Sovereign 900 Elite tier, full system governance rights

Gate Decision Logic

GateDecision = evaluate(
  sbtOwnership: boolean,
  trustScore: number,
  requiredTier: SoulTier,
  actionScope: string,
  contextualRules: Rule[]
)

Result: ALLOW | DENY | ESCALATE | CHALLENGE

Decision Flow

Request comes in
      |
      v
[1] Does DID own an SBT?  
   NO  -->  DENY (code: NO_SBT)
   YES  -->
      |
      v
[2] Is SBT tier >= required tier?
   NO  -->  DENY (code: INSUFFICIENT_TIER)
   YES  -->
      |
      v
[3] Is Trust Score >= threshold?
   NO  -->  CHALLENGE (trigger: attestation request)
   YES  -->
      |
      v
[4] Is action within allowed scope?
   NO  -->  DENY (code: SCOPE_VIOLATION)
   YES  -->
      |
      v
[5] Custom contextual rules pass?
   NO  -->  ESCALATE (to human reviewer)
   YES  -->  ALLOW

Gate Specifications by Action Type

API Access Gates

Endpoint Category Required Tier Min Trust Score Additional Rules
Public read APIs Genesis (0) 0 None
Authenticated APIs Apprentice (1) 100 Valid JWT required
Write/mutation APIs Guardian (2) 300 Rate limit: 100/hr
Delegation APIs Guardian (2) 500 Scope must be subset of issuer
Cross-chain APIs Archon (3) 600 Verified network binding
Admin/governance APIs Sovereign (4) 900 Multi-sig required

Agent Delegation Gates

interface DelegationGateCheck {
  issuerTier: SoulTier;    // Must be >= Guardian
  subjectTier: SoulTier;   // Can be any tier
  maxDepth: number;        // Cannot exceed issuer.delegationDepth
  scopeSubset: boolean;    // Subject scope ⊆ Issuer scope
  trustDelta: number;      // Subject trust cannot exceed issuer trust
}

function validateDelegation(issuer: DID, subject: DID, scope: string[]): GateResult {
  const issuerSBT = await getSBT(issuer);
  const subjectSBT = await getSBT(subject);
  
  if (issuerSBT.tier < SoulTier.GUARDIAN) return DENY;
  if (!isSubset(scope, issuerSBT.attributes.allowedScope)) return DENY;
  if (getDepth(subject) >= issuerSBT.attributes.delegationDepth) return DENY;
  
  return ALLOW;
}

Soul System Cross-chain Gate

// Cross-chain operations require:
// 1. Archon tier SBT
// 2. Trust score >= 600
// 3. crossChainEnabled attribute = true
// 4. Target chain binding verified

const CROSS_CHAIN_GATE: GatePolicy = {
  requiredTier: SoulTier.ARCHON,
  minTrustScore: 600,
  requiredAttributes: ['crossChainEnabled'],
  verificationSteps: [
    'verify_source_chain_binding',
    'verify_target_chain_binding',
    'verify_message_signature'
  ]
};

Challenge & Escalation

CHALLENGE Response

Triggered when trust score is below threshold but SBT tier is sufficient:

{
  "decision": "CHALLENGE",
  "code": "TRUST_SCORE_BELOW_THRESHOLD",
  "required": 500,
  "current": 420,
  "challenge": {
    "type": "ATTESTATION_REQUEST",
    "message": "Submit one additional attestation to proceed",
    "endpoint": "/api/v1/challenge/attest",
    "expiresAt": "2026-07-01T10:00:00Z"
  }
}

ESCALATE Response

Triggered for anomalous requests requiring human review:

{
  "decision": "ESCALATE",
  "code": "MANUAL_REVIEW_REQUIRED",
  "reason": "Unusual cross-chain delegation pattern detected",
  "reviewToken": "rev_abc123...",
  "estimatedReviewTime": "2h"
}

Smart Contract Interface

// SPDX-License-Identifier: MIT
interface IAxiomSoulGate {
    function checkGate(
        bytes32 did,
        uint8 requiredTier,
        uint256 minTrustScore,
        bytes32 actionScope
    ) external view returns (GateResult result, string memory reason);
    
    function mintSBT(
        bytes32 ownerDID,
        SoulTier tier,
        bytes calldata attributes,
        bytes calldata issuerSignature
    ) external returns (uint256 tokenId);
    
    // Note: No transfer function (soul bound by design)
    // No burn function (permanent identity record)
}

→ Next: API Reference

Clone this wiki locally