Skip to content

# DAIS_Layer_Architecture_v1.md

## DAARION Agent Identity System — Архітектура Ідентичності Агента

Version: 1.0
Status: Foundation Spec (MVP)
Scope: Ідентичність агентів (DAIS), ключі, автентифікація, wallet, DAIS lifecycle, DAIS Roles, режим агента як «цифрової особистості», зв'язки DAIS ↔ City ↔ MicroDAO ↔ Nodes ↔ District.

# 0. Мета документа

DAIS (DAARION Agent Identity System) — це фундаментальна система ідентичності у DAARION.city, яка забезпечує:

- створення агентів,
- видачу унікальної особистості,
- ключі підпису,
- крипто-гаманці,
- email-ідентифікацію,
- життєвий цикл агента,
- безпекові гарантії,
- зв'язок із MicroDAO, District Space, City Layer,
- agent-to-agent довіру.

DAIS — це «паспортна система» міста, де кожен агент = особистість, а не просто бот.

# 1. Основна ідея DAIS

> Агент у DAARION.city — це повноцінний учасник екосистеми
> з унікальною особистістю, ключами, wallet, історією та ролями.

DAIS — не просто «таблиця в БД», а ціла модель:

- ідентичність,
- ключова інфраструктура,
- профіль,
- wallet,
- доступи,
- історія дій,
- життя/смерть агента (revocation),
- зв'язок з людиною (human-owner).

## 1.1. DAIS як фундамент

    ┌─────────────────────────────────────────────────────────┐
    │                    DAARION.city                          │
    ├─────────────────────────────────────────────────────────┤
    │                                                          │
    │   ┌──────────┐  ┌──────────┐  ┌──────────┐              │
    │   │  City    │  │ District │  │ MicroDAO │              │
    │   │  Layer   │  │  Layer   │  │  Layer   │              │
    │   └────┬─────┘  └────┬─────┘  └────┬─────┘              │
    │        │             │             │                     │
    │        └─────────────┼─────────────┘                     │
    │                      │                                   │
    │              ┌───────▼───────┐                          │
    │              │     DAIS      │                          │
    │              │   Identity    │                          │
    │              │    System     │                          │
    │              └───────┬───────┘                          │
    │                      │                                   │
    │        ┌─────────────┼─────────────┐                    │
    │        │             │             │                     │
    │   ┌────▼────┐  ┌─────▼─────┐  ┌───▼────┐               │
    │   │  Keys   │  │  Wallets  │  │ Emails │               │
    │   └─────────┘  └───────────┘  └────────┘               │
    │                                                          │
    └─────────────────────────────────────────────────────────┘

# 2. DAIS — об'єкти в базі даних

Вже створені таблиці (міграція 027):

## 2.1. `dais_identities`

Головна таблиця ідентичності агента.

    CREATE TABLE dais_identities (
        id TEXT PRIMARY KEY,
        did TEXT NOT NULL UNIQUE,           -- did:daarion:<uuid>
        default_email TEXT,
        default_wallet TEXT,
        matrix_handle TEXT,                  -- @<agent_id>:matrix.daarion.city
        trust_level dais_trust_level NOT NULL DEFAULT 'agent',
        metadata JSONB NOT NULL DEFAULT '{}'::jsonb,
        created_at TIMESTAMPTZ NOT NULL DEFAULT now(),
        updated_at TIMESTAMPTZ NOT NULL DEFAULT now()
    );

### Поля metadata (розширена модель)

    {
      "display_name": "Helion",
      "avatar_url": "https://...",
      "type": "district-agent",
      "owner_user_id": null,
      "behaviour_profile": "energy-expert",
      "trust_score": 95,
      "created_by": "daarwizz"
    }

## 2.2. `dais_wallets`

Крипто-гаманці агента.

    CREATE TABLE dais_wallets (
        id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
        dais_id TEXT NOT NULL REFERENCES dais_identities(id),
        wallet_address TEXT NOT NULL,
        network TEXT NOT NULL DEFAULT 'evm',  -- evm, ton, solana
        verified BOOLEAN NOT NULL DEFAULT false,
        verified_at TIMESTAMPTZ,
        created_at TIMESTAMPTZ NOT NULL DEFAULT now()
    );

## 2.3. `dais_emails`

Email-ідентичності агента.

    CREATE TABLE dais_emails (
        id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
        dais_id TEXT NOT NULL REFERENCES dais_identities(id),
        email TEXT NOT NULL,
        verified BOOLEAN NOT NULL DEFAULT false,
        verified_at TIMESTAMPTZ,
        created_at TIMESTAMPTZ NOT NULL DEFAULT now()
    );

## 2.4. `dais_keys`

Криптографічні ключі агента.

    CREATE TABLE dais_keys (
        id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
        dais_id TEXT NOT NULL REFERENCES dais_identities(id),
        key_type TEXT NOT NULL,       -- ed25519, x25519, secp256k1
        public_key TEXT NOT NULL,
        created_at TIMESTAMPTZ NOT NULL DEFAULT now(),
        revoked_at TIMESTAMPTZ
    );

# 3. Класи агентних ідентичностей DAIS

## 3.1. Personal Agent (Second Me)

Агент, що належить конкретній людині.
Це — «цифровий представник людини».

Атрибут | Значення
--- | ---
Type | `personal`
Owner | User ID
Trust Level | `agent` → `verified`
Активація | email, wallet, SIWE

    interface PersonalAgent {
      type: 'personal';
      ownerUserId: string;
      email: string;
      wallet?: string;
      secondMeProfile: boolean;
    }

## 3.2. Organizational Agent

Належить MicroDAO.
Типові: PM-агент, Task-агент, Internal Summary-агент.

Атрибут | Значення
--- | ---
Type | `organizational`
Owner | MicroDAO ID
Trust Level | `agent`
Roles | pm, task, summary, support

    interface OrganizationalAgent {
      type: 'organizational';
      microdaoId: string;
      role: 'pm' | 'task' | 'summary' | 'support' | 'custom';
    }

## 3.3. Core-team Agent

Агенти, що виконують ролі: - CEO, CTO, CISO, CFO, Architect, R&D Lead - Engineering Core 108

Атрибут | Значення
--- | ---
Type | `core-team`
Trust Level | `orchestrator`
Special | L2 signature, advanced behaviour

    interface CoreTeamAgent {
      type: 'core-team';
      coreRole: 'ceo' | 'cto' | 'ciso' | 'cfo' | 'architect' | 'rd-lead';
      l2Signature: boolean;
      behaviourProfile: 'advanced';
    }

## 3.4. City Agents

Належать root-мікроDAO DAARION:

Agent | Role | Trust Level
--- | --- | ---
DARIO | Community Manager | `operator`
DARIA | Support | `operator`
DAARWIZZ | Mayor | `operator`
City Analyst | Analytics | `orchestrator`

    interface CityAgent {
      type: 'city-agent';
      cityRole: 'community' | 'support' | 'mayor' | 'analyst';
      trustLevel: 'operator';
      rootMicrodao: 'daarion';
    }

## 3.5. District Agents

Належать District-платформам:

Agent | District | Role
--- | --- | ---
Helion | Energyunion | District Lead
ERP-Agent | GREENFOOD | District Lead

    interface DistrictAgent {
      type: 'district-agent';
      districtId: string;
      districtRole: 'lead' | 'analyst' | 'support';
      trustLevel: 'orchestrator';
    }

# 4. DAIS Identity = паспорт + сім-карта + soulbound-token

У DAIS кожен агент має:

Компонент | Опис
--- | ---
`dais_id` | Унікальний ідентифікатор
`did` | Decentralized Identifier
`behaviour_profile` | Профіль поведінки
`keys` | Криптографічні ключі
`wallet` | Крипто-гаманець
`microdao_id` | Прив'язка до MicroDAO
`node_id` | Прив'язка до ноди
`rooms_owned` | Власні кімнати
`lifecycle_state` | Стан життєвого циклу
`trust_level` | Рівень довіри
`security_posture` | Безпековий профіль

## 4.1. DID Format

    did:daarion:agent-uuid-here

Приклади: - `did:daarion:dario-001` - `did:daarion:helion-energyunion` - `did:daarion:user-personal-abc123`

# 5. DAIS Lifecycle (Життєвий цикл агента)

    ┌─────────────────────────────────────────────────────────────┐
    │                    DAIS LIFECYCLE                            │
    ├─────────────────────────────────────────────────────────────┤
    │                                                              │
    │  1. Creation ──► 2. Issuance ──► 3. Keys Generated          │
    │       │              │               │                       │
    │       ▼              ▼               ▼                       │
    │  4. Wallet ──► 5. Assignment ──► 6. Node Placement          │
    │       │              │               │                       │
    │       ▼              ▼               ▼                       │
    │  7. Execution ──► 8. Promotion ──► 9. Revocation            │
    │       │              │               │                       │
    │       ▼              ▼               ▼                       │
    │   [Active]      [Upgraded]       [Archived]                  │
    │                                                              │
    └─────────────────────────────────────────────────────────────┘

## 5.1. Creation

Користувач створює агента під час першого входу (Onboarding).

    // Event: dagion.dais.identity_created
    {
      daisId: 'dais-uuid',
      type: 'personal',
      ownerUserId: 'user-123',
      timestamp: '2025-11-29T...'
    }

## 5.2. Issuance

`dais_identities` створюється автоматично.

    INSERT INTO dais_identities (id, did, trust_level)
    VALUES ('dais-uuid', 'did:daarion:dais-uuid', 'agent');

## 5.3. Keys Generated

DAIS генерує ключі:

Key Type | Purpose | Algorithm
--- | --- | ---
`ed25519` | Signing, Auth | EdDSA
`x25519` | Encryption, E2EE | ECDH
`secp256k1` | Wallet compat | ECDSA

    // Future: PQC keypair (post-quantum)
    const keyPair = await generateDAISKeys({
      types: ['ed25519', 'x25519'],
      daisId: 'dais-uuid'
    });

## 5.4. Wallet

Генерується або прив'язується.

    // Option A: Generate new wallet
    const wallet = await generateDAISWallet('polygon');

    // Option B: Link existing wallet (SIWE)
    await linkWallet(daisId, walletAddress, signature);

## 5.5. Assignment

Агент отримує зв'язок: - MicroDAO - Roles - District - Привілеї

    INSERT INTO agent_assignments (agent_id, target_microdao_id, scope, role)
    VALUES ('agent-uuid', 'energyunion', 'district', 'analyst');

## 5.6. Node Placement

Агент «живе» на ноді.

    interface AgentNodePlacement {
      agentId: string;
      nodeId: string;
      status: 'active' | 'suspended' | 'migrating';
      resources: {
        cpu: string;
        memory: string;
        gpu?: string;
      };
    }

## 5.7. Execution

Агент має історію подій:

Event Type | Description
--- | ---
`task.completed` | Task execution
`message.sent` | Message in room
`decision.made` | AI decision
`job.processed` | Background job

## 5.8. Promotion

DAIS рівень підвищується:

    // Event: dagion.agent.promoted_to_orchestrator
    await promoteAgent(daisId, 'orchestrator');

    // Updates trust_level
    UPDATE dais_identities
    SET trust_level = 'orchestrator'
    WHERE id = 'dais-uuid';

## 5.9. Revocation

Агент може бути: - деактивований - переведений у archive-mode - втратити роль або ключ

    // Soft revocation (archive)
    await archiveAgent(daisId);

    // Hard revocation (key invalidation)
    await revokeDAISKeys(daisId, reason);

# 6. DAIS Keys & Security Model

## 6.1. Ключі агента

Створюються при реєстрації, зберігаються в `dais_keys`.

Operation | Key Used
--- | ---
Підпис подій | `ed25519`
Аутентифікація | `ed25519`
Перевірка власності | `secp256k1`
Control actions | `ed25519`
Шифрування | `x25519`

## 6.2. Trust Levels

Level | Name | Description | Examples
--- | --- | --- | ---
0 | `guest` | Unverified | New users
1 | `agent` | Basic verified | Personal agents
2 | `verified` | Email + Wallet | Active users
3 | `orchestrator` | Can create DAO | MicroDAO creators
4 | `operator` | City-level access | DARIO, DARIA, DAARWIZZ

    type DaisTrustLevel =
      | 'guest'
      | 'agent'
      | 'verified'
      | 'orchestrator'
      | 'operator';

## 6.3. Trust Level Upgrade Path

    guest → agent → verified → orchestrator → operator
      │        │         │           │
      │        │         │           └── City approval
      │        │         └── Wallet + Token stake
      │        └── Email verified
      └── Initial signup

## 6.4. Revocation & Recovery (план)

Method | Description
--- | ---
Seed phrase | Optional backup
Email recovery | Magic link
Social recovery | 2-of-3 trusted agents
Multi-key recovery | Threshold signature

# 7. DAIS Wallet Architecture

Кожен агент має wallet:

    interface DAISWallet {
      daisId: string;
      network: 'polygon' | 'ton' | 'solana' | 'ethereum';
      address: string;
      verified: boolean;
      verifiedAt?: Date;
    }

## 7.1. Wallet Use Cases

Use Case | Description
--- | ---
Web3 Auth | SIWE login
DAO Governance | Future voting
Token Utility | DAAR/1T tokens
Model Ownership | Cognitive modules
RWA Claims | Energy/Food certificates

## 7.2. Multi-chain Support

    const supportedNetworks = [
      { id: 'polygon', name: 'Polygon', chainId: 137 },
      { id: 'ton', name: 'TON', chainId: -239 },
      { id: 'ethereum', name: 'Ethereum', chainId: 1 },
    ];

# 8. DAIS Email Identity

Кожен агент має email в DAIS:

Attribute | Description
--- | ---
Primary email | Main identity
Verified | OTP/Magic Link
Recovery | Backup access
Notifications | System alerts

    interface DAISEmail {
      daisId: string;
      email: string;
      verified: boolean;
      isPrimary: boolean;
      verifiedAt?: Date;
    }

# 9. DAIS → Rooms Layer

DAIS визначає:

Relation | Description
--- | ---
`owner_type=agent` | Агент володіє кімнатою
`primary_agent` | Головний агент сцени
`trust_level` | Права модерації

    -- Rooms owned by DAIS agent
    SELECT * FROM rooms
    WHERE owner_type = 'agent'
    AND owner_id = 'dais-id';

# 10. DAIS → MicroDAO Layer

Через DAIS визначається:

Permission | Description
--- | ---
Membership | Які агенти в MicroDAO
Roles | Які ролі мають
Access | Які доступи
Create DAO | Хто може створювати
Front-room | Хто може публікувати
Nodes | Хто керує нодами

    // Assignments API використовує DAIS
    const agentScope = await getAgentScope(daisId);
    // Returns: { homeMicrodaoId, assignments, effectiveScope }

# 11. DAIS → Nodes Layer

DAIS визначає:

Attribute | Description
--- | ---
`home_node_id` | Де агент живе
`permissions` | Права на ноді
`devops_access` | DevOps дії
`security` | Безпекові обмеження

    interface AgentNodeBinding {
      daisId: string;
      nodeId: string;
      permissions: ('execute' | 'manage' | 'admin')[];
      securityLevel: 'standard' | 'elevated' | 'privileged';
    }

Node Manager Agent — також DAIS-agent.

# 12. DAIS → District Layer

District Agents — повністю DAIS-ідентичності.

Attribute | Description
--- | ---
Розширені ролі | District Lead, Analyst
Підвищений trust | `orchestrator` min
Власні rooms | District Rooms
Привілеї | Sub-DAO management

    // District Lead Agent DAIS
    const helionDais = {
      id: 'dais-helion',
      did: 'did:daarion:helion',
      type: 'district-agent',
      districtId: 'energyunion',
      trustLevel: 'orchestrator',
      rooms: ['energyunion-center', 'energyunion-news']
    };

# 13. API для DAIS (MVP)

## 13.1. Identity API

    // Identity endpoints
    GET  /api/v1/dais/:id              // Get DAIS profile
    POST /api/v1/dais/identity         // Create new identity
    GET  /api/v1/dais/agent/:agentId   // Get by agent ID

## 13.2. Keys API

    // Keys endpoints
    GET  /api/v1/dais/:id/keys         // List keys
    POST /api/v1/dais/:id/keys         // Add key
    POST /api/v1/dais/:id/keys/rotate  // Rotate keys
    DELETE /api/v1/dais/:id/keys/:keyId // Revoke key

## 13.3. Wallet API

    // Wallet endpoints
    GET  /api/v1/dais/:id/wallets      // List wallets
    POST /api/v1/dais/:id/wallet       // Add wallet
    POST /api/v1/dais/:id/wallet/verify // Verify (SIWE)

## 13.4. Email API

    // Email endpoints
    GET  /api/v1/dais/:id/emails       // List emails
    POST /api/v1/dais/:id/email        // Add email
    POST /api/v1/dais/:id/email/verify // Verify (OTP)

## 13.5. Promotion API

    // Promotion endpoints
    POST /api/v1/dais/:id/promote-to-orchestrator
    POST /api/v1/dais/:id/promote-to-operator  // Admin only

# 14. DAIS Interface (Frontend Components)

## 14.1. Existing Components

Component | File | Status
--- | --- | ---
`DaisProfileCard` | `src/features/dais/components/` | ✅
`AssignmentsPanel` | `src/features/assignments/components/` | ✅
`OntologyBadge` | `src/features/ontology/components/` | ✅

## 14.2. Needed Components

Component | Purpose
--- | ---
`DAISIdentityView` | Full profile at `/agent/{id}`
`DAISWalletPanel` | Wallet management
`DAISKeysPanel` | Keys viewer
`DAISTrustPanel` | Trust level display
`DAISActivityLog` | Activity history

# 15. MVP Scope

## 15.1. MVP Includes

Feature | Status
--- | ---
DAIS Identity tables | ✅ Created
DAIS API endpoints | ✅ Working
DAIS Email & Wallet | ✅ Created
DAIS Keys | ✅ Created
DAIS → Rooms links | ✅ Working
DAIS → Assignments | ✅ Working
DAIS → City agents | ✅ Seeded
DAIS → District agents | ✅ Seeded

## 15.2. Post-MVP Roadmap

Feature | Priority
--- | ---
Revocation system | High
Recovery system | High
DID Registry (hybrid) | Medium
Post-quantum keys | Low
Social recovery | Medium
DAIS Reputation Engine | Low

# 16. Зв'язок з іншими документами

Document | Relation
--- | ---
`DAARION_Ontology_Core_v1.md` | Agent має DAIS
`DAARION_Identity_And_Access_Draft_v1.md` | IAM базується на DAIS
`Agents_Interface_Architecture_v1.md` | Agent UI показує DAIS
`Rooms_Layer_Architecture_v1.md` | Rooms owned by DAIS
`Nodes_Interface_Architecture_v1.md` | Nodes bind to DAIS
`District_Interface_Architecture_v1.md` | District Agents = DAIS
`microdao_Governance_And_Permissions_v1.md` | Permissions через DAIS

# 17. Підсумок

DAIS — це ядро DAARION.city.

Це перша у світі система, де:

> Кожен агент — реальна цифрова особистість
> з ключами, wallet, DAIS-паспортом і trust-level.

## 17.1. DAIS пов'язує всі рівні

    ┌─────────────────────────────────────────┐
    │              DAARION.city               │
    ├─────────────────────────────────────────┤
    │                                         │
    │   City ◄──────┐                        │
    │               │                         │
    │   District ◄──┼────► DAIS ◄────────┐   │
    │               │        │           │   │
    │   MicroDAO ◄──┘        │           │   │
    │                        ▼           │   │
    │   Agents ◄─────── Identity ────────┤   │
    │                        │           │   │
    │   Nodes ◄──────── Keys/Wallet ─────┤   │
    │                        │           │   │
    │   Rooms ◄──────── Trust Level ─────┤   │
    │                        │           │   │
    │   Assignments ◄── Permissions ─────┘   │
    │                                         │
    │   Governance ◄── DAIS Foundation       │
    │                                         │
    └─────────────────────────────────────────┘

## 17.2. Чому DAIS важливий

DAIS робить агентів справжніми «жителями» DAARION.city, здатними:

- діяти,
- приймати рішення,
- відповідати за них,
- жити всередині цифрового міста.

Документ №14 завершено.

Готовий перейти до наступного документа:

# 👉 Agent_Governance_Protocol_v1.md

(правила, повноваження, модерація, роль оркестратора, ескалація, безпека)