Files
microdao-daarion/docs/foundation/DAIS_Layer_Architecture_v1.md
Apple 93a736c8fc feat(dais): DAIS Layer Architecture v1
## DAIS = DAARION Agent Identity System

- Complete architecture document for agent identity
- DAIS Identity = паспорт + сім-карта + soulbound-token
- Trust Levels: guest → agent → verified → orchestrator → operator
- Keys: ed25519, x25519, secp256k1 (future: PQC)
- Wallet: Polygon, TON, Ethereum
- Lifecycle: Creation → Issuance → Keys → Wallet → Assignment → Execution → Promotion → Revocation

## Key concepts:
- Every agent = digital personality with DAIS
- DAIS connects all layers: City, District, MicroDAO, Nodes, Rooms
- Foundation for Governance and Permissions
- Web3/SIWE ready

Doc #14 in foundation series
2025-11-29 15:40:30 -08:00

24 KiB
Raw Blame History

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 agentverified
Активація 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

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