-
-
Notifications
You must be signed in to change notification settings - Fork 6
Soul System Gate Specifications
Mohamed Abdelaziz edited this page Jun 25, 2026
·
1 revision
Back to Home | See also: Trust Score Algorithm
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.
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
}| 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 |
GateDecision = evaluate(
sbtOwnership: boolean,
trustScore: number,
requiredTier: SoulTier,
actionScope: string,
contextualRules: Rule[]
)
Result: ALLOW | DENY | ESCALATE | CHALLENGE
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
| 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 |
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;
}// 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'
]
};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"
}
}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"
}// 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