---
title: SDK Dart de KryptoOS
description: Librería Dart para emitir y verificar identidades SSI/DID del ecosistema Empoorio.
---
El SDK Dart de KryptoOS permite crear identidades SSI/DID y emitir/verificar Verifiable Credentials (VCs) en el ecosistema Empoorio.

Código fuente: `projects/KryptoOS/sdks/dart/` (paquete `kryptoos_ssi_dart`)

## Instalación

```yaml
dependencies:
  kryptoos_ssi_dart:
    path: ../KryptoOS/sdks/dart
```

## Crear un DID

```dart
import 'package:kryptoos_ssi_dart/kryptoos_ssi_dart.dart';

final ssi = KryptoosOuranoosSsi();

// Generar o importar keypair Sr25519
final keypair = await Sr25519Keypair.generate();

// Crear DID
final did = ssi.createDid(keypair.publicKey);
// Resultado: did:kryptoos:empoorio:sr25519:<base58-public-key>
print(did);
```

## Emitir credencial de usuario Ouranoos

```dart
final vc = await ssi.issueUserCredential(
  subject: did,
  keypair: keypair,
);

// VC contiene:
// - didCommitment (hash del DID + salt)
// - devicePossessionProofHash
// - revocationStatus: "active"
// - proof: Sr25519Signature2026

print(vc.type); // OuranoosUserCredential
```

## Emitir credencial de proveedor Ouranoos

```dart
final providerVc = await ssi.issueProviderDeviceCredential(
  subject: did,
  deviceClass: 'Desktop',
  maxCapacityGb: 500,
  keypair: keypair,
);

// VC contiene:
// - didCommitment
// - deviceIdHash (hash del device ID — nunca en claro)
// - deviceClass: "Desktop"
// - maxCapacityGb: 500
// - offeredCapacityGb: (configurable)
// - revocationStatus: "active"
```

## Verificar una credencial

```dart
final isValid = await ssi.verifyCredential(vc);
print('Credencial válida: $isValid');
```

## Credenciales del ecosistema

| Tipo | Descripción | Quién la usa |
|------|-------------|--------------|
| `OuranoosUserCredential` | Identidad de usuario en Ouranoos | Ouranoos App |
| Provider Device Credential | Identidad de nodo proveedor | Ouranoos provider verification |
| `EooniaWalletCredential` | Identidad de usuario en Eoonia | Eoonia Wallet |

## Privacidad — lo que nunca se expone

- El DID del usuario no se almacena on-chain en claro
- Solo el `didCommitment` (hash) va a EmpoorioChain
- El `deviceId` real nunca sale del dispositivo — solo su hash
- Las VCs se verifican localmente antes de cualquier operación

## Integración con EmpoorioChain

EmpoorioChain acepta el commitment público de la credencial de proveedor para anclar reputación sin exponer PII.

```bash
emp-cli chain submit-extrinsic \
  --pallet storageMarket \
  --call linkProviderIdentity \
  --args '{"commitment": "<did_commitment>"}' \
  --signer <keyfile>
```
