Skip to main content

Cardano DevKit vs Yaci DevKit Comparison

This document highlights how Cardano DevKit improves upon Yaci DevKit.

Architecture Comparison

FeatureYaci DevKitCardano DevKit
LanguageJavaTypeScript (pure JS/TS ecosystem)
RuntimeJVM requiredNode.js only
API FormatCustom APIBlockfrost-compatible
Client SDKJava/Kotlin focusedJavaScript/TypeScript/React
ConfigurationJava propertiesJSON + Environment variables
Docker ProfilesBasicFull profiles (ogmios, kupo, explorer, metrics)

Key Improvements

1. Blockfrost-Compatible API

Cardano DevKit provides a Blockfrost-compatible REST API, meaning:

  • Use the same code for devnet and mainnet
  • Compatible with existing Blockfrost SDKs
  • No API translation layer needed
// Same code works on devnet and mainnet
const devKit = createDevKit({
network: 'LocalDevnet',
customProvider: { url: 'http://localhost:10080' }
});

// Switch to mainnet with one line
devKit.switchNetwork('Mainnet');

2. Native TypeScript SDK

Unlike Yaci's Java-centric approach, Cardano DevKit is built for the JS/TS ecosystem:

  • Full TypeScript types
  • React hooks and context providers
  • ES modules support
  • Zero Java dependencies
// React integration
import { CardanoProvider, useCardano } from 'cardano-devkit/react';

function App() {
const { lucid, network, wallet } = useCardano();
// Full TypeScript IntelliSense
}

3. Real-time WebSocket Subscriptions

Built-in WebSocket support for real-time updates:

const ws = new WebSocket('ws://localhost:10180');
ws.send(JSON.stringify({ subscribe: ['blocks', 'transactions'] }));
ws.onmessage = (e) => console.log(JSON.parse(e.data));

4. Sub-Second Block Times

Configurable block production from 100ms to 1000ms:

# 100ms blocks for rapid testing
BLOCK_TIME_MS=100 ./devnet.sh start

5. Modern Block Explorer

Beautiful, responsive web UI included:

  • Real-time block/transaction updates
  • Address lookup and UTxO viewer
  • Integrated faucet
  • Dark theme optimized for development

6. Complete Service Stack

All services available via Docker profiles:

# Core only
docker compose up -d

# With Ogmios (for Lucid Evolution)
docker compose --profile ogmios up -d

# With Kupo (for pattern matching)
docker compose --profile kupo up -d

# Everything including metrics
docker compose --profile all up -d

7. Simple CLI

Intuitive devnet management:

./devnet.sh init      # Generate genesis
./devnet.sh start # Start services
./devnet.sh status # Check status
./devnet.sh fund addr 1000 # Get test ADA
./devnet.sh reset # Fresh start

8. Transaction Debugging

Built-in transaction debugger with:

  • Step-by-step execution trace
  • Script cost analysis
  • Redeemer inspection
  • Human-readable error messages
const debugger = createTxDebugger(lucid);
const result = await debugger.trace(txBuilder);
console.log(result.costs, result.logs);

9. Smart Contract Templates

Pre-built, tested contract templates:

import { createEscrowTemplate, createVestingTemplate } from 'cardano-devkit';

const escrow = createEscrowTemplate({
arbiter: arbiterAddr,
beneficiary: buyerAddr,
deadline: futureSlot
});

10. Comprehensive Validation

Type-safe validation utilities:

import { validateAddress, validateTxHash, assertValidPolicyId } from 'cardano-devkit';

if (!validateAddress(input)) {
throw new ValidationError('Invalid address');
}

Feature Matrix

FeatureYaci DevKitCardano DevKit
TypeScript SDK
React Integration
Blockfrost-Compatible API
WebSocket SubscriptionsPartial✅ Full
Sub-100ms Blocks
Block Explorer
Transaction Debugger
Smart Contract Templates
Batch Transaction Builder
Transaction Chaining
Fee Estimation
Provider Caching
Governance Support✅ Conway Era
Multi-Signature
Ogmios Integration
Kupo Integration
Prometheus Metrics

Migration from Yaci DevKit

  1. Install Cardano DevKit

    pnpm add cardano-devkit
  2. Replace Java CLI with shell scripts

    # Old: java -jar yaci-devkit.jar start
    # New: ./devnet.sh start
  3. Update API endpoints

    // API is Blockfrost-compatible at same endpoints
    const utxos = await fetch('http://localhost:10080/addresses/{addr}/utxos');
  4. Use TypeScript SDK

    import { createDevKit } from 'cardano-devkit';

    const devKit = createDevKit({ network: 'LocalDevnet' });
    await devKit.init();
    const lucid = await devKit.getLucid();

Performance Comparison

MetricYaci DevKitCardano DevKit
Startup Time~10s~5s
Min Block Time1000ms100ms
Memory Usage~500MB (JVM)~100MB (Node)
Docker Images2-31 (node image)
API Latency~50ms~10ms

Conclusion

Cardano DevKit represents a significant improvement for JavaScript/TypeScript developers:

  • Native ecosystem: Built for JS/TS from the ground up
  • Modern tooling: React hooks, TypeScript types, WebSocket
  • Developer experience: Better docs, templates, debugging
  • Performance: Faster startup, lower memory, faster blocks
  • Compatibility: Blockfrost API means same code everywhere