## 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
24 KiB
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-001did:daarion:helion-energyuniondid: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
(правила, повноваження, модерація, роль оркестратора, ескалація, безпека)