Nondominium Architecture Components

  • Generated: 2025-10-30
  • Updated: 2025-11-23
  • Version: 3.0 (Improved mermaid diagrams)
  • Scope: Detailed component breakdown and interaction patterns

🎯 Executive Summary

Nondominium implements a sophisticated 3-zome Holochain architecture that enables distributed resource sharing with embedded governance, capability-based security, and cryptographically-secured reputation tracking. The system supports four structured Economic Processes (Use, Transport, Storage, Repair) with role-based access control and 14-category PPR reputation system for trustworthy agent interactions.


🏗️ System Architecture

High-Level System Architecture

graph TB
    subgraph "Frontend Layer"
        UI["Svelte 5.0 + TypeScript"]
        Client["holochain-client 0.19.0"]
    end

    subgraph "Holochain Runtime"
        WASM[WASM Compilation]
        DHT[DHT-based P2P Network]
        CapSec[Capability-Based Security]
    end

    subgraph "Zome Layer"
        Person["zome_person<br/>Identity and Access"]
        Resource["zome_resource<br/>Resource Management"]
        Gov["zome_gouvernance<br/>Governance and Reputation"]
    end

    UI --> Client
    Client --> WASM
    WASM --> DHT
    WASM --> CapSec

    Person --> DHT
    Resource --> DHT
    Gov --> DHT

Data Flow Architecture

sequenceDiagram
    participant Agent as Agent Request
    participant UI as UI Client
    participant Auth as Auth & Cap Check
    participant Role as Role Validation
    participant Zome as Zome Function
    participant PPR as PPR System

    Agent->>UI: Submit Request
    UI->>Auth: Validate Capability Token
    Auth->>Role: Check Role Permissions
    Role->>Zome: Execute Function
    Zome->>PPR: Issue PPR if Applicable
    PPR-->>Zome: PPR Issued
    Zome-->>Role: Function Result
    Role-->>Auth: Validation Complete
    Auth-->>UI: Access Granted
    UI-->>Agent: Response/Result

Core Technology Stack

┌─────────────────────────────────────────────────────────────┐
│                    FRONTEND LAYER                           │
├─────────────────────────────────────────────────────────────┤
│ Svelte 5.0 + TypeScript + Vite 6.2.5                        │
│ @holochain/client 0.19.0                                    │
└─────────────────────────────────────────────────────────────┘
                              │
                              ▼
┌─────────────────────────────────────────────────────────────┐
│                 HOLOCHAIN RUNTIME                           │
├─────────────────────────────────────────────────────────────┤
│ Rust (HDK ^0.6.0 / HDI ^0.7.0) → WASM Compilation            │
│ DHT-based peer-to-peer network                              │
│ Capability-based security & gossip                          │
└─────────────────────────────────────────────────────────────┘
                              │
                              ▼
┌─────────────────────────────────────────────────────────────┐
│                    ZOME LAYER                               │
├─────────────────────────────────────────────────────────────┤
│  zome_person    │  zome_resource  │  zome_gouvernance       │
│  (Identity)     │  (Resources)    │  (Governance)           │
└─────────────────────────────────────────────────────────────┘

🔐 Zome Components

1. zome_person - Identity & Access Management

Zome Person Architecture

graph TB
    subgraph "zome_person"
        subgraph "Agent Identity"
            Person[Person Entry<br/>Public Profile]
            EncProfile[EncryptedProfile<br/>Private Data]
            Discovery[Discovery Anchors<br/>Agent Directory]
        end

        subgraph "Capability System"
            CapToken["CapabilityToken<br/>Role-based Access"]
            CapProgress["CapabilityProgression<br/>Trust Advancement"]
            ACL["Access Control Lists<br/>Resource Permissions"]
        end

        subgraph "Private Data Sharing"
            DataReq["DataAccessRequest<br/>time-limited (max 30d)"]
            DataGrant["DataAccessGrant<br/>Field-specific Control"]
            PrivateData["PrivateDataEntry<br/>Encrypted Info"]
        end

        subgraph "Role Management"
            RoleAssign["RoleAssignment<br/>Validation Metadata"]
            RoleQual["RoleQualification<br/>Requirements Tracking"]
            RoleProgress["RoleProgression<br/>Advancement Criteria"]
        end
    end

    Person --> Discovery
    EncProfile --> DataGrant
    CapToken --> CapProgress
    DataReq --> DataGrant
    RoleAssign --> RoleQual

Core Components

┌─────────────────────────────────────────────────────────────┐
│                   zome_person                               │
├─────────────────────────────────────────────────────────────┤
│ 1.1 AGENT IDENTITY                                          │
│ ├── Person Entry (public profile)                           │
│ ├── EncryptedProfile Entry (private data)                   │
│ └── Discovery Anchors (findable agent directory)            │
│                                                             │
│ 1.2 CAPABILITY SYSTEM                                       │
│ ├── CapabilityToken Entry (role-based access)               │
│ ├── CapabilityProgression (trust advancement)               │
│ └── Access Control Lists (resource permissions)             │
│                                                             │
│ 1.3 PRIVATE DATA SHARING                                    │
│ ├── DataAccessRequest Entry (time-limited; max 30-day grants) │
│ ├── DataAccessGrant Entry (field-specific control)          │
│ └── PrivateDataEntry (encrypted personal information)       │
│                                                             │
│ 1.4 ROLE MANAGEMENT                                         │
│ ├── RoleAssignment Entry (with validation metadata)         │
│ ├── RoleQualification Entry (requirements tracking)         │
│ └── RoleProgression Entry (advancement criteria)            │
└─────────────────────────────────────────────────────────────┘

Key Functions

#![allow(unused)]
fn main() {
// Identity Management
create_person(PersonInput) -> PersonHash
get_person(PersonHash) -> Person
get_all_persons() -> Vec<Person>
update_person(PersonHash, PersonInput) -> PersonHash
delete_person(PersonHash) -> DeleteResult

// Capability Management
create_capability_token(CapabilityRequest) -> CapabilityTokenHash
get_agent_capability_level(AgentPubKey) -> CapabilityLevel
promote_agent_capability(AgentPubKey, PromotionCriteria) -> PromotionResult

// Private Data Sharing
request_private_data_access(DataAccessRequest) -> RequestHash
grant_private_data_access(RequestHash, GrantDetails) -> GrantHash
get_private_data(GrantHash, FieldList) -> PrivateData
revoke_private_data_access(GrantHash) -> RevokeResult

// Role Management
assign_role(AgentPubKey, RoleAssignment) -> RoleHash
get_agent_roles(AgentPubKey) -> Vec<RoleAssignment>
validate_role_requirements(AgentPubKey, RoleType) -> ValidationStatus
}

2. zome_resource - Resource Lifecycle Management

Zome Resource Architecture

graph TB
    subgraph "zome_resource"
        subgraph "Resource Specification"
            ResSpec[ResourceSpecification<br/>Type Definition]
            ResProp[ResourceProperty<br/>Custom Properties]
            SpecCat[SpecificationCategory<br/>Classification]
        end

        subgraph "Economic Resource"
            EconRes[EconomicResource<br/>Resource Instance]
            ResState[LifecycleStage + OperationalState<br/>State Tracking (TODO: split ResourceState)]
            ResHistory[ResourceHistory<br/>Audit Trail]
            ResCustody[ResourceCustody<br/>Custody Tracking]
        end

        subgraph "Economic Processes"
            UseProc[UseProcess<br/>Time-limited Access]
            TransProc[TransportProcess<br/>Location Movement]
            StorageProc[StorageProcess<br/>Preservation]
            RepairProc[RepairProcess<br/>Restoration]
        end

        subgraph "Economic Events"
            EconEvent[EconomicEvent<br/>State Changes]
            EventVal[EventValidation<br/>Validation Workflow]
            EventImpact[EventImpact<br/>Resource Impact]
        end
    end

    ResSpec --> EconRes
    ResProp --> ResSpec
    SpecCat --> ResSpec
    EconRes --> ResState
    EconRes --> ResHistory
    EconRes --> ResCustody

    UseProc --> EconEvent
    TransProc --> EconEvent
    StorageProc --> EconEvent
    RepairProc --> EconEvent

    EconEvent --> EventVal
    EconEvent --> EventImpact

Core Components

┌─────────────────────────────────────────────────────────────┐
│                  zome_resource                              │
├─────────────────────────────────────────────────────────────┤
│ 2.1 RESOURCE SPECIFICATION                                  │
│ ├── ResourceSpecification Entry (type definition)           │
│ ├── ResourceProperty Entry (custom properties)              │
│ └── SpecificationCategory Entry (classification)            │
│                                                             │
│ 2.2 ECONOMIC RESOURCE                                       │
│ ├── EconomicResource Entry (resource instance)              │
│ ├── LifecycleStage (on NondominiumIdentity) + OperationalState (on EconomicResource) │
│ │   TODO: split current ResourceState into these two enums  │
│ ├── ResourceHistory Entry (audit trail)                     │
│ └── ResourceCustody Entry (custody tracking)                │
│                                                             │
│ 2.3 ECONOMIC PROCESSES                                      │
│ ├── UseProcess Entry (time-limited access)                  │
│ ├── TransportProcess Entry (location movement)              │
│ ├── StorageProcess Entry (preservation)                     │
│ └── RepairProcess Entry (restoration)                       │
│                                                             │
│ 2.4 ECONOMIC EVENTS                                         │
│ ├── EconomicEvent Entry (state changes)                     │
│ ├── EventValidation Entry (validation workflow)             │
│ └── EventImpact Entry (resource impact tracking)            │
└─────────────────────────────────────────────────────────────┘

Key Functions

#![allow(unused)]
fn main() {
// Resource Specification
create_resource_specification(ResourceSpecInput) -> ResourceSpecHash
get_resource_specification(ResourceSpecHash) -> ResourceSpecification
update_resource_specification(ResourceSpecHash, ResourceSpecInput) -> ResourceSpecHash

// Economic Resource Management
create_economic_resource(ResourceInput) -> EconomicResourceHash
get_economic_resource(EconomicResourceHash) -> EconomicResource
update_economic_resource(EconomicResourceHash, ResourceUpdate) -> EconomicResourceHash
transfer_resource_custody(EconomicResourceHash, AgentPubKey) -> TransferResult

// Economic Process Management
initiate_use_process(UseProcessInput) -> UseProcessHash
initiate_transport_process(TransportProcessInput) -> TransportProcessHash
initiate_storage_process(StorageProcessInput) -> StorageProcessHash
initiate_repair_process(RepairProcessInput) -> RepairProcessHash

// Process Execution
complete_use_process(UseProcessHash, CompletionDetails) -> CompletionResult
complete_transport_process(TransportProcessHash, TransportDetails) -> CompletionResult
complete_storage_process(StorageProcessHash, StorageDetails) -> CompletionResult
complete_repair_process(RepairProcessHash, RepairDetails) -> CompletionResult
}

3. zome_gouvernance - Governance & Reputation

Zome Governance Architecture

graph TB
    subgraph "zome_gouvernance"
        subgraph "Commitment System"
            Commitment[Commitment<br/>Agreements & Obligations]
            CommitFulfill[CommitmentFulfillment<br/>Completion Tracking]
            CommitValidation[CommitmentValidation<br/>Validation Workflow]
        end

        subgraph "PPR Reputation System"
            PPR[PPR Entry<br/>14 Categories]
            PPRValidation[PPRValidation<br/>Crypto Verification]
            ReputationSummary[ReputationSummary<br/>Derived Metrics]
            PPRMilestone[PPRMilestone<br/>Advancement Criteria]
        end

        subgraph "Multi-Reviewer Validation"
            ValWorkflow[ValidationWorkflow<br/>Validation Setup]
            ValReview[ValidationReview<br/>Individual Assessments]
            ValConsensus[ValidationConsensus<br/>Consensus Determination]
            ValAppeal[ValidationAppeal<br/>Dispute Resolution]
        end

        subgraph "Agent Promotion"
            PromotionElig[PromotionEligibility<br/>Qualification Check]
            PromotionApp[PromotionApplication<br/>Advancement Request]
            PromotionDecision[PromotionDecision<br/>Approval/Rejection]
            PromotionHistory[PromotionHistory<br/>Audit Trail]
        end
    end

    Commitment --> CommitFulfill
    CommitFulfill --> CommitValidation
    PPR --> PPRValidation
    PPRValidation --> ReputationSummary
    ReputationSummary --> PPRMilestone

    ValWorkflow --> ValReview
    ValReview --> ValConsensus
    ValConsensus --> ValAppeal

    PromotionElig --> PromotionApp
    PromotionApp --> PromotionDecision
    PromotionDecision --> PromotionHistory

    PPRMilestone -.-> PromotionElig
    ValConsensus -.-> PPRValidation

Core Components

┌─────────────────────────────────────────────────────────────┐
│                 zome_gouvernance                            │
├─────────────────────────────────────────────────────────────┤
│ 3.1 COMMITMENT SYSTEM                                       │
│ ├── Commitment Entry (agreements & obligations)             │
│ ├── CommitmentFulfillment Entry (completion tracking)       │
│ └── CommitmentValidation Entry (validation workflow)        │
│                                                             │
│ 3.2 PPR REPUTATION SYSTEM                                   │
│ ├── PPR Entry (14 reputation categories)                    │
│ ├── PPRValidation Entry (cryptographic verification)        │
│ ├── ReputationSummary Entry (derived metrics)               │
│ └── PPRMilestone Entry (advancement criteria)               │
│                                                             │
│ 3.3 MULTI-REVIEWER VALIDATION                               │
│ ├── ValidationWorkflow Entry (validation setup)             │
│ ├── ValidationReview Entry (individual assessments)         │
│ ├── ValidationConsensus Entry (consensus determination)     │
│ └── ValidationAppeal Entry (dispute resolution)             │
│                                                             │
│ 3.4 AGENT PROMOTION                                         │
│ ├── PromotionEligibility Entry (qualification check)        │
│ ├── PromotionApplication Entry (advancement request)        │
│ ├── PromotionDecision Entry (approval/rejection)            │
│ └── PromotionHistory Entry (audit trail)                    │
└─────────────────────────────────────────────────────────────┘

PPR System Categories

#![allow(unused)]
fn main() {
pub enum PPRCategory {
    // Resource & Service Categories
    ResourceContribution,      // Resource creation and validation
    ResourceValidation,        // Resource quality assessment
    UseService,               // Use process participation
    TransportService,         // Transport service provision
    StorageService,           // Storage service provision
    RepairService,            // Repair service provision
    ServiceValidation,        // Service quality assessment

    // Governance & Community Categories
    CommitmentFulfillment,     // Commitment completion tracking
    GovernanceParticipation,   // Governance activity participation
    Custodianship,           // Resource custody responsibilities
    DisputeResolution,       // Conflict resolution participation
    CoordinationService,      // Coordination activities
    Mentorship,              // Knowledge sharing and guidance
    CommunityBuilding,       // Community development activities
}
}

Key Functions

#![allow(unused)]
fn main() {
// Commitment Management
create_commitment(CommitmentInput) -> CommitmentHash
get_commitment(CommitmentHash) -> Commitment
fulfill_commitment(CommitmentHash, FulfillmentDetails) -> FulfillmentResult
validate_commitment_fulfillment(CommitmentHash) -> ValidationResult

// PPR System
issue_ppr(PPRIssuanceRequest) -> PPRHash
get_ppr_summary(AgentPubKey, PPRCategory) -> PPRSummary
validate_ppr_eligibility(AgentPubKey, PPRCategory) -> EligibilityResult
derive_reputation_score(AgentPubKey) -> ReputationMetrics

// Multi-Reviewer Validation
create_validation_workflow(ValidationWorkflowInput) -> WorkflowHash
submit_validation_review(WorkflowHash, ValidationReview) -> ReviewHash
check_validation_consensus(WorkflowHash) -> ConsensusResult
appeal_validation_decision(WorkflowHash, AppealDetails) -> AppealHash

// Agent Promotion
evaluate_agent_promotion(AgentPubKey, PromotionType) -> EvaluationResult
promote_to_accountable_agent(AgentPubKey) -> PromotionResult
promote_to_primary_accountable_agent(AgentPubKey) -> PromotionResult
get_promotion_history(AgentPubKey) -> Vec<PromotionRecord>
}

🔄 Cross-Zome Integration Patterns

Cross-Zome Data Flow

graph LR
    subgraph "zome_person"
        Person[Person Entry]
        CapToken[Capability Token]
        RoleAssign[Role Assignment]
    end

    subgraph "zome_resource"
        ResSpec[Resource Spec]
        EconRes[Economic Resource]
        UseProc[Use Process]
        EconEvent[Economic Event]
    end

    subgraph "zome_gouvernance"
        PPR[PPR Entry]
        Commitment[Commitment]
        ValWorkflow[Validation Workflow]
        Promotion[Promotion]
    end

    Person --> CapToken
    CapToken --> RoleAssign
    RoleAssign -.-> UseProc
    ResSpec --> EconRes
    EconRes --> UseProc
    UseProc --> EconEvent
    EconEvent --> PPR
    PPR --> ValWorkflow
    ValWorkflow --> Promotion
    Promotion -.-> CapToken

1. Capability Progression Integration

sequenceDiagram
    participant Agent as Agent
    participant Person as zome_person
    participant Resource as zome_resource
    participant Gov as zome_gouvernance

    Agent->>Person: Request Process Access
    Person->>Person: Get Capability Level
    Person->>Gov: Get Reputation Score
    Gov-->>Person: Return Reputation
    Person->>Person: Validate Process Access
    alt Access Granted
        Person->>Resource: Authorize Process
        Resource->>Resource: Execute Economic Process
        Resource->>Gov: Trigger PPR Issuance
        Gov->>Gov: Update Agent Reputation
        Gov-->>Person: Promotion Eligibility
        Person-->>Agent: Process Complete
    else Access Denied
        Person-->>Agent: Access Denied
    end
#![allow(unused)]
fn main() {
// Cross-zome capability validation
fn validate_process_access(agent: AgentPubKey, process_type: EconomicProcess) -> bool {
    let capability = zome_person::get_agent_capability_level(agent)?;
    let reputation = zome_gouvernance::derive_reputation_score(agent)?;

    match process_type {
        EconomicProcess::Use => {
            // Accountable Agent (stewardship) or higher
            capability.level >= CapabilityLevel::Accountable
        },
        EconomicProcess::Transport | EconomicProcess::Storage | EconomicProcess::Repair => {
            // Primary Accountable Agent (coordination/governance) only
            capability.level >= CapabilityLevel::Primary &&
            reputation.exceeds_threshold(PROMOTION_THRESHOLD)
        }
    }
}
}

2. PPR Issuance Coordination

#![allow(unused)]
fn main() {
// PPR issuance coordination across zomes
fn coordinate_ppr_issuance(event: EconomicEvent) -> Vec<PPRIssuance> {
    let mut issuances = Vec::new();

    // Resource-based PPRs (zome_resource coordination)
    if let Some(resource) = event.affected_resource {
        if event.action == VfAction::Produce {
            issuances.push(PPRIssuance {
                recipient: event.provider,
                category: PPRCategory::ResourceContribution,
                evidence: resource.hash,
            });
        }
    }

    // Process-based PPRs (cross-zome coordination)
    if let Some(process) = event.process {
        match process.process_type {
            UseProcess => issuances.push(PPRIssuance {
                recipient: event.receiver,
                category: PPRCategory::UseService,
                evidence: process.hash,
            }),
            TransportProcess => issuances.push(PPRIssuance {
                recipient: event.provider,
                category: PPRCategory::TransportService,
                evidence: process.hash,
            }),
            // ... other process types
        }
    }

    issuances
}
}

3. Private Data Sharing with Economic Processes

#![allow(unused)]
fn main() {
// Private data access for economic processes
fn authorize_process_data_access(
    process: EconomicProcess,
    requesting_agent: AgentPubKey,
    required_fields: Vec<PrivateDataField>
) -> Result<DataAccessGrant, DataAccessError> {
    // Validate process participation
    let participation = validate_process_participation(process, requesting_agent)?;

    // Check role requirements
    let role = zome_person::get_agent_roles(requesting_agent)?
        .into_iter()
        .find(|r| r.matches_process_requirements(&process))
        .ok_or(DataAccessError::InsufficientRole)?;

    // Illustrative pseudocode — align grant duration with zome_person capability rules (30-day max).
    let grant = DataAccessGrant {
        requesting_agent,
        granting_agent: process.resource_owner,
        accessible_fields: required_fields,
        expires_at: sys_time()? + Duration::from_secs(7 * 24 * 60 * 60), // example: 7 days; cap 30 days in MVP metadata
        purpose: format!("Data access for {} process", process.process_type),
        process_context: process.hash,
    };

    Ok(grant)
}
}

🛡️ Security Architecture

Capability-Based Access Control Flow

graph TD
    subgraph "Trust Levels"
        Simple[Simple Agent<br/>Basic Member]
        Accountable[Accountable Agent<br/>Stewardship Role]
        Primary[Primary Accountable<br/>Coordination Role]
        Advanced[Advanced Agent<br/>Governance Role]
    end

    subgraph "Simple Agent Capabilities"
        S1[General Capability Token]
        S2[Create Resources]
        S3[Initial Transfer]
        S4[Basic PPR Eligibility]
    end

    subgraph "Accountable Agent Capabilities"
        A1[Restricted Capability Token<br/>Role-specific]
        A2[Access Resources]
        A3[Validate Others]
        A4[Initiate Use Processes]
        A5[Service PPR Eligibility]
    end

    subgraph "Primary Accountable Capabilities"
        P1[Full Capability Token<br/>Comprehensive Access]
        P2[Hold Custody]
        P3[Validate Specialized Roles]
        P4[Initiate All Processes]
        P5[All 16 PPR Categories<br/>Including Custodianship]
    end

    subgraph "Advanced Agent Capabilities"
        AD1[Advanced Governance Token]
        AD2[Dispute Resolution]
        AD3[End-of-Life Validation]
        AD4[System Leadership]
    end

    Simple --> S1 --> S2 --> S3 --> S4 --> Accountable
    Accountable --> A1 --> A2 --> A3 --> A4 --> A5 --> Primary
    Primary --> P1 --> P2 --> P3 --> P4 --> P5 --> Advanced
    Advanced --> AD1 --> AD2 --> AD3 --> AD4

1. Capability-Based Access Control

Trust Level Progression:
Simple Agent (member)
├── General Capability Token
├── Can: Create resources, make InitialTransfer
├── PPR Eligibility: ResourceContribution upon validation
└── Promotion Criteria: First validated transaction

Accountable Agent (stewardship)
├── Restricted Capability Token (role-specific)
├── Can: Access resources, validate others, initiate Use processes
├── PPR Eligibility: Service processes, validation activities
└── Promotion Criteria: PPR milestones + specialized role validation

Primary Accountable Agent (coordination/governance)
├── Full Capability Token (comprehensive access)
├── Can: Hold custody, validate specialized roles, initiate all processes
├── PPR Eligibility: All 16 categories including custodianship
└── Advanced: Dispute resolution, end-of-life validation

2. Cryptographic Reputation System

PPR Cryptographic Structure:
├── Issuer Signature (Ed25519)
├── Recipient Identity (AgentPubKey)
├── Category & Evidence (Process/Resource hash)
├── Timestamp & Expiration
├── Validation Metadata (Reviewer signatures)
└── Reputation Impact Calculation

Reputation Derivation:
├── PPR Collection (all categories)
├── Quality Scoring (reviewer assessments)
├── Temporal Weighting (recent > historical)
├── Category Diversity (balanced participation)
└── Cryptographic Proof (tamper-evident)

3. Private Data Protection

Data Access Control:
├── Field-Level Granularity (specific data elements)
├── Time-Limited Grants (30-day maximum per capability metadata)
├── Purpose Binding (process-specific usage)
├── Automatic Expiration (system-enforced)
├── Audit Trail (access logging)
└── Revocation Capability (immediate termination)

Encryption Strategy:
├── End-to-End Encryption (agent-to-agent)
├── Key Management (capability-based)
├── Secure Storage (encrypted entries)
├── Access Validation (real-time checks)
└── Secure Transmission (Holochain secure messaging)

📊 Economic Process Architecture

Economic Process Flow

graph TB
    subgraph "Economic Resources"
        Resource[Economic Resource<br/>Physical/Digital Asset]
        Spec[Resource Specification<br/>Type & Properties]
    end

    subgraph "Process Types"
        Use[Use Process<br/>Time-Limited Access]
        Transport[Transport Process<br/>Custody Transfer]
        Storage[Storage Process<br/>Preservation]
        Repair[Repair Process<br/>Restoration]
    end

    subgraph "Process Roles"
        User[User<br/>Accountable Agent]
        Provider[Provider<br/>Resource Owner]
        Transporter[Transporter<br/>Primary Accountable]
        StorageProvider[Storage Provider<br/>Primary Accountable]
        RepairProvider[Repair Provider<br/>Primary Accountable]
    end

    subgraph "Economic Events"
        CreateEvent[Create Event<br/>Resource Creation]
        UseEvent[Use Event<br/>Resource Access]
        TransferEvent[Transfer Event<br/>Custody Change]
        RepairEvent[Repair Event<br/>Resource Restoration]
    end

    Resource --> Use
    Resource --> Transport
    Resource --> Storage
    Resource --> Repair

    Use --> User
    Use --> Provider
    Transport --> Transporter
    Storage --> StorageProvider
    Repair --> RepairProvider

    Use --> UseEvent
    Transport --> TransferEvent
    Repair --> RepairEvent
    Resource --> CreateEvent

1. Use Process (Time-Limited Access)

sequenceDiagram
    participant User as User (Accountable Agent)
    participant Provider as Provider (Resource Owner)
    participant Resource as Resource System
    participant Gov as Governance (PPR System)

    User->>Provider: Request Resource Access
    Provider->>Resource: Check Resource Availability
    Resource-->>Provider: Availability Confirmed
    Provider->>User: Grant Access (Time-limited)
    User->>Resource: Use Resource
    Resource->>Resource: Track Usage
    Resource-->>User: Usage Complete

    User->>Gov: Report Service Quality
    Provider->>Gov: Report User Compliance
    Gov->>Gov: Issue PPRs to Both Parties
    Gov-->>User: PPR Issued (UseService)
    Gov-->>Provider: PPR Issued (ServiceValidation)
#![allow(unused)]
fn main() {
UseProcess {
    resource: EconomicResourceHash,
    user: AgentPubKey,
    provider: AgentPubKey,
    time_start: SystemTime,
    time_end: SystemTime,
    usage_terms: UsageAgreement,
    access_requirements: AccessConstraints,
    tracking_mechanism: UsageMonitoring,
}
}

Role Requirements:

  • User: Accountable Agent (stewardship role)
  • Provider: Resource owner or custodian
  • Validation: Service quality assessment possible

2. Transport Process (Custody Transfer)

#![allow(unused)]
fn main() {
TransportProcess {
    resource: EconomicResourceHash,
    transporter: AgentPubKey,
    from_location: Location,
    to_location: Location,
    custody_transfer: CustodyAgreement,
    tracking_requirements: TrackingProtocol,
    insurance_terms: InsuranceCoverage,
}
}

Role Requirements:

  • Transporter: Primary Accountable Agent (coordination role)
  • Custodian: Resource owner or appointed custodian
  • Validation: Transport service assessment possible

3. Storage Process (Preservation)

#![allow(unused)]
fn main() {
StorageProcess {
    resource: EconomicResourceHash,
    storage_provider: AgentPubKey,
    storage_location: Location,
    storage_conditions: PreservationRequirements,
    monitoring_protocol: ConditionMonitoring,
    access_during_storage: AccessPolicy,
}
}

Role Requirements:

  • Storage Provider: Primary Accountable Agent (coordination role)
  • Resource Owner: Maintains ultimate ownership
  • Validation: Storage service assessment possible

4. Repair Process (Restoration)

#![allow(unused)]
fn main() {
RepairProcess {
    resource: EconomicResourceHash,
    repair_provider: AgentPubKey,
    repair_specification: RepairPlan,
    quality_requirements: QualityStandards,
    cost_structure: CostAgreement,
    validation_requirements: QualityAssurance,
}
}

Role Requirements:

  • Repair Provider: Primary Accountable Agent (coordination role)
  • Quality Validator: Specialized validation role
  • Validation: Repair service assessment possible

🔄 Validation & Governance Workflows

PPR System Workflow

stateDiagram-v2
    [*] --> EventOccurrence: Economic Event
    EventOccurrence --> PPRIssuance: Trigger PPR Creation
    PPRIssuance --> ValidationRequired: Needs Verification
    ValidationRequired --> UnderReview: Assign Reviewers

    state UnderReview {
        [*] --> Reviewer1
        Reviewer1 --> Reviewer2
        Reviewer2 --> Reviewer3
        Reviewer3 --> ConsensusCheck
    }

    UnderReview --> ValidationApproved: Consensus Reached
    UnderReview --> ValidationRejected: No Consensus

    ValidationApproved --> PPRActive: Activate PPR
    ValidationRejected --> AppealProcess: Dispute Filed

    AppealProcess --> Reconsideration: Valid Appeal
    AppealProcess --> PPRRejected: Appeal Denied

    Reconsideration --> UnderReview: Re-validate
    PPRActive --> ReputationUpdate: Update Score
    ReputationUpdate --> [*]
    PPRRejected --> [*]

Multi-Reviewer Validation System

graph TB
    subgraph "Validation Workflow"
        ValType[Validation Type<br/>2-of-3, N-of-M, Majority]
        Subject[Validation Subject<br/>Resource/Service/Commitment]
        Reviewers[Required Reviewers<br/>Min 2, Max 5]
        Deadline[Review Deadline<br/>24-72 hours]
        Criteria[Validation Criteria<br/>Quality Rules]
    end

    subgraph "Review Process"
        Assign[Assign Reviewers<br/>Random Selection]
        Collect[Collect Reviews<br/>Parallel Process]
        Consensus[Consensus Check<br/>Threshold Analysis]
        Outcome[Validation Outcome<br/>Approved/Rejected]
    end

    subgraph "Appeal Process"
        Appeal[Appeal Initiation<br/>3-day Window]
        ReReview[Re-review Process<br/>New Reviewers]
        FinalDecision[Final Decision<br/>Binding Outcome]
    end

    ValType --> Assign
    Subject --> Assign
    Reviewers --> Assign
    Deadline --> Collect
    Criteria --> Collect

    Assign --> Collect
    Collect --> Consensus
    Consensus --> Outcome

    Outcome --> Appeal
    Appeal --> ReReview
    ReReview --> FinalDecision
#![allow(unused)]
fn main() {
ValidationWorkflow {
    workflow_type: ValidationType,  // 2-of-3, N-of-M, simple_majority
    subject: ValidationSubject,     // Resource, Service, Commitment
    required_reviewers: u32,
    review_deadline: SystemTime,
    validation_criteria: ValidationRules,
    appeal_process: AppealProcedure,
}
}

Validation Types:

  • 2-of-3 Validation: 3 reviewers, 2 required for consensus
  • N-of-M Validation: Custom reviewer numbers and consensus thresholds
  • Simple Majority: Democratic decision-making with minimum participation

2. Agent Promotion Workflow

graph TD
    subgraph "Promotion Levels"
        Simple[Simple Agent<br/>Base Access]
        Accountable[Accountable Agent<br/>Stewardship Role]
        Primary[Primary Accountable<br/>Coordination Role]
        Advanced[Advanced Agent<br/>Governance Role]
    end

    subgraph "Simple → Accountable"
        S1[First Validated Transaction]
        S2[Basic PPR Earned]
        S3[Identity Verified]
    end

    subgraph "Accountable → Primary"
        A1[Multiple PPR Categories<br/>3+ Categories]
        A2[Specialized Validation<br/>Process Expertise]
        A3[Community Standing<br/>Reputation Threshold]
    end

    subgraph "Primary → Advanced"
        P1[Governance Participation<br/>Commitment Fulfillment]
        P2[Dispute Resolution<br/>Mediation Experience]
        P3[System Leadership<br/>Coordination Excellence]
    end

    Simple --> S1 --> S2 --> S3 --> Accountable
    Accountable --> A1 --> A2 --> A3 --> Primary
    Primary --> P1 --> P2 --> P3 --> Advanced
#![allow(unused)]
fn main() {
PromotionWorkflow {
    current_level: CapabilityLevel,
    target_level: CapabilityLevel,
    eligibility_criteria: PromotionRequirements,
    evaluation_period: Duration,
    required_ppr_categories: Vec<PPRCategory>,
    milestone_achievements: Vec<PPRMilestone>,
    review_board: Vec<AgentPubKey>,
}
}

Promotion Criteria:

  • Simple → Accountable: First validated transaction + basic PPR
  • Accountable → Primary: Multiple PPR categories + specialized validation
  • Primary → Advanced: Governance participation + dispute resolution experience

3. Dispute Resolution Process

#![allow(unused)]
fn main() {
DisputeResolution {
    dispute_type: DisputeCategory,
    parties_involved: Vec<AgentPubKey>,
    evidence_collection: Vec<EvidenceHash>,
    mediation_process: MediationProcedure,
    resolution_options: ResolutionOptions,
    enforcement_mechanism: EnforcementStrategy,
}
}

Dispute Categories:

  • Resource Quality: Resource not meeting specifications
  • Service Quality: Service not meeting agreed standards
  • Access Violations: Unauthorized resource access or use
  • Contract Disputes: Commitment fulfillment disagreements
  • Reputation Challenges: PPR validity disputes

📈 Performance & Scalability Architecture

1. DHT Optimization Strategies

Anchor Pattern Optimization:
├── Resource Discovery Anchors (category-based indexing)
├── Agent Discovery Anchors (role-based indexing)
├── Process Type Anchors (process-based indexing)
└── Geographic Anchors (location-based indexing)

Link Traversal Optimization:
├── Efficient Link Creation (minimal link overhead)
├── Cached Link Queries (reduced DHT calls)
├── Batch Link Operations (reduced network traffic)
└── Link Cleanup Strategies (DHT maintenance)

2. Reputation System Performance

PPR Calculation Optimization:
├── Incremental Updates (only calculate changes)
├── Cached Reputation Scores (periodic refresh)
├── Category-Specific Caching (domain-specific optimization)
└── Asynchronous Validation (non-blocking reputation updates)

Scalability Considerations:
├── PPR Rate Limiting (prevents reputation spam)
├── Validation Pool Management (efficient reviewer assignment)
├── Reputation Decay (historical relevance weighting)
└── Distributed Calculation (peer-to-peer reputation consensus)

3. Private Data Access Performance

Access Control Optimization:
├── Capability Token Caching (reduced validation overhead)
├── Grant Status Indexing (fast access validation)
├── Field-Level Access Caching (optimized data retrieval)
└── Expiration Queue Management (automatic cleanup)

Encryption Performance:
├── Symmetric Encryption for Data (efficient encryption/decryption)
├── Asymmetric Encryption for Keys (secure key exchange)
├── Key Derivation Optimization (efficient key management)
└── Secure Storage Compression (reduced storage overhead)

🔮 Future Architecture Extensions

1. Advanced Governance Features

  • Dynamic Rule Updates: Community-driven governance rule modifications
  • Delegated Validation: Hierarchical validation delegation systems
  • Cross-Community Coordination: Inter-hApp governance coordination
  • Automated Dispute Resolution: AI-assisted dispute mediation

2. Enhanced Economic Processes

  • Process Composition: Complex multi-process workflows
  • Resource Bundling: Package deals and combined services
  • Subscription Models: Recurring access and service arrangements
  • Market Integration: External market price discovery and integration

3. Advanced Reputation Systems

  • Skill-Based Reputation: Domain-specific expertise tracking
  • Temporal Reputation Patterns: Time-based reputation analysis
  • Network Reputation: Relationship-based reputation scoring
  • Privacy-Preserving Reputation: Zero-knowledge reputation proofs

4. Performance & Scalability Enhancements

  • Sharding Strategies: Horizontal scaling through network partitioning
  • Caching Layers: Multi-level caching for frequently accessed data
  • Compression Algorithms: Advanced data compression for storage efficiency
  • Load Balancing: Intelligent request routing and resource allocation

📋 Architecture Decision Records (ADRs)

ADR-001: Three-Zome Architecture

Decision: Implement 3-zome architecture (person, resource, governance) Rationale: Clear separation of concerns, focused responsibility domains Alternatives Considered: Single monolithic zome, 5+ specialized zomes Impact: Simplified development, clear API boundaries, cross-zome coordination complexity

ADR-002: PPR-Based Reputation System

Decision: Implement 14-category PPR reputation system with cryptographic proofs Rationale: Comprehensive reputation tracking, fraud resistance, privacy preservation Alternatives Considered: Simple scoring system, centralized reputation database Impact: Complex implementation, strong trust foundations, computational overhead

ADR-003: Four Economic Processes

Decision: Standardize on Use, Transport, Storage, Repair processes Rationale: Covers common sharing scenarios, clear role definitions, structured workflows Alternatives Considered: Unlimited process types, minimal process structure Impact: Standardized workflows, limited flexibility, easier validation

ADR-004: Capability-Based Security Model

Decision: Progressive capability tokens with role-based restrictions Rationale: Gradual trust building, principle of least privilege, automated advancement Alternatives Considered: All-or-nothing access, centralized authorization Impact: Complex access control, strong security, user-friendly progression


🎯 Architecture Quality Metrics

Performance Targets

  • Zome Function Response Time: < 500ms for common operations
  • PPR Calculation Time: < 2s for reputation score derivation
  • Validation Workflow Time: < 24h for standard validations
  • Private Data Access Time: < 1s for authorized access requests

Security Metrics

  • Capability Token Security: Cryptographically secure, non-repudiable
  • PPR System Integrity: Tamper-evident, cryptographically verifiable
  • Private Data Protection: End-to-end encryption, field-level access control
  • Access Control Compliance: 100% enforcement of capability restrictions

Scalability Targets

  • Concurrent Users: Support 1000+ concurrent agents
  • Resource Management: 10,000+ concurrent economic resources
  • Process Throughput: 100+ concurrent economic processes
  • Reputation Queries: 10,000+ concurrent reputation calculations

Reliability Requirements

  • System Availability: 99.9% uptime for critical functions
  • Data Consistency: Strong consistency for all economic transactions
  • Backup Recovery: Complete data recovery from any network state
  • Error Recovery: Graceful handling of network partitions and failures

This architecture document represents the current state of the Nondominium system as of October 30, 2025. It is a living document that evolves with the implementation and community feedback.