Skip to content

kawacukennedy/kuberna-labs

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

255 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Kuberna Labs - The Operating System for Agentic Web3 Enterprises

Version License Build NPM Discord Twitter

Ecosystem TEE Chains

Kuberna Labs

The Operating System for Agentic Web3 Enterprises

Deploy TEE-shielded AI agents to Solana, NEAR, and Ethereum in less than 60 seconds.


πŸ—οΈ System Architecture

  <!-- Filters -->
  <filter id="shadow" x="-20%" y="-20%" width="140%" height="140%">
    <feDropShadow dx="0" dy="4" stdDeviation="8" flood-color="#000" flood-opacity="0.25"/>
  </filter>
  <filter id="glow" x="-50%" y="-50%" width="200%" height="200%">
    <feGaussianBlur stdDeviation="4" result="blur"/>
    <feMerge>
      <feMergeNode in="blur"/>
      <feMergeNode in="SourceGraphic"/>
    </feMerge>
  </filter>
  
  <!-- Arrows -->
  <marker id="arrowPrimary" markerWidth="10" markerHeight="10" refX="9" refY="3" orient="auto" markerUnits="strokeWidth">
    <path d="M0,0 L0,6 L9,3 z" fill="#6366F1"/>
  </marker>
  <marker id="arrowSecondary" markerWidth="10" markerHeight="10" refX="9" refY="3" orient="auto" markerUnits="strokeWidth">
    <path d="M0,0 L0,6 L9,3 z" fill="#10B981"/>
  </marker>
  <marker id="arrowAccent" markerWidth="10" markerHeight="10" refX="9" refY="3" orient="auto" markerUnits="strokeWidth">
    <path d="M0,0 L0,6 L9,3 z" fill="#F59E0B"/>
  </marker>
</defs>

<!-- Background Grid -->
<pattern id="grid" width="40" height="40" patternUnits="userSpaceOnUse">
  <path d="M 40 0 L 0 0 0 40" fill="none" stroke="#1F2937" stroke-width="0.5" opacity="0.3"/>
</pattern>
<rect width="1200" height="800" fill="#0F172A"/>
<rect width="1200" height="800" fill="url(#grid)"/>

<!-- ═══════════════════════════════════════════════════════════════════════
     LAYER 1: BROWSER IDE
     ═══════════════════════════════════════════════════════════════════════ -->
<g filter="url(#shadow)">
  <!-- IDE Container -->
  <rect x="40" y="40" width="360" height="340" rx="16" fill="url(#ideGrad)" stroke="#334155" stroke-width="1"/>
  
  <!-- IDE Header -->
  <rect x="40" y="40" width="360" height="48" rx="16" fill="#1E293B"/>
  <rect x="40" y="72" width="360" height="16" fill="#1E293B"/>
  
  <!-- Window Controls -->
  <circle cx="64" cy="64" r="6" fill="#EF4444"/>
  <circle cx="84" cy="64" r="6" fill="#F59E0B"/>
  <circle cx="104" cy="64" r="6" fill="#10B981"/>
  
  <!-- Tabs -->
  <rect x="130" y="54" width="80" height="20" rx="4" fill="#334155"/>
  <text x="170" y="68" fill="#94A3B8" font-size="11" text-anchor="middle" font-family="monospace">agent.ts</text>
  <rect x="220" y="54" width="80" height="20" rx="4" fill="#6366F1" fill-opacity="0.3"/>
  <text x="260" y="68" fill="#A5B4FC" font-size="11" text-anchor="middle" font-family="monospace">config.json</text>
  
  <!-- Code Editor Content -->
  <text x="60" y="110" fill="#A5B4FC" font-size="12" font-family="monospace">1</text>
  <text x="76" y="110" fill="#F472B6" font-family="monospace" font-size="12">import</text>
  <text x="120" y="110" fill="#10B981" font-family="monospace" font-size="12"> { KubernaSDK }</text>
  <text x="196" y="110" fill="#F472B6" font-family="monospace" font-size="12"> from</text>
  <text x="236" y="110" fill="#FBBF24" font-family="monospace" font-size="12"> '@kuberna/sdk'</text>
  
  <text x="60" y="135" fill="#94A3B8" font-family="monospace" font-size="12">2</text>
  <text x="76" y="135" fill="#F472B6" font-family="monospace" font-size="12">import</text>
  <text x="120" y="135" fill="#10B981" font-family="monospace" font-size="12"> { ElizaOS }</text>
  <text x="168" y="135" fill="#F472B6" font-family="monospace" font-size="12"> from</text>
  <text x="208" y="135" fill="#FBBF24" font-family="monospace" font-size="12"> '@elizaos/core'</text>
  
  <text x="60" y="160" fill="#94A3B8" font-family="monospace" font-size="12">3</text>
  
  <text x="60" y="185" fill="#94A3B8" font-family="monospace" font-size="12">4</text>
  <text x="76" y="185" fill="#F472B6" font-family="monospace" font-size="12">const</text>
  <text x="116" y="185" fill="#38BDF8" font-family="monospace" font-size="12"> agent</text>
  <text x="156" y="185" fill="#E2E8F0" font-family="monospace" font-size="12"> =</text>
  <text x="172" y="185" fill="#F472B6" font-family="monospace" font-size="12"> await</text>
  <text x="216" y="185" fill="#38BDF8" font-family="monospace" font-size="12"> KubernaSDK</text>
  <text x="284" y="185" fill="#E2E8F0" font-family="monospace" font-size="12">.</text>
  
  <text x="60" y="210" fill="#94A3B8" font-family="monospace" font-size="12">5</text>
  <text x="100" y="210" fill="#38BDF8" font-family="monospace" font-size="12">createAgent</text>
  <text x="168" y="210" fill="#E2E8F0" font-family="monospace" font-size="12">({</text>
  
  <text x="60" y="235" fill="#94A3B8" font-family="monospace" font-size="12">6</text>
  <text x="100" y="235" fill="#38BDF8" font-family="monospace" font-size="12">  name</text>
  <text x="148" y="235" fill="#E2E8F0" font-family="monospace" font-size="12">:</text>
  <text x="164" y="235" fill="#FBBF24" font-family="monospace" font-size="12"> 'YieldOptimizer'</text>
  <text x="276" y="235" fill="#E2E8F0" font-family="monospace" font-size="12">,</text>
  
  <text x="60" y="260" fill="#94A3B8" font-family="monospace" font-size="12">7</text>
  <text x="100" y="260" fill="#38BDF8" font-family="monospace" font-size="12">  framework</text>
  <text x="168" y="260" fill="#E2E8F0" font-family="monospace" font-size="12">:</text>
  <text x="184" y="260" fill="#10B981" font-family="monospace" font-size="12"> 'ElizaOS'</text>
  <text x="256" y="260" fill="#E2E8F0" font-family="monospace" font-size="12">,</text>
  
  <text x="60" y="285" fill="#94A3B8" font-family="monospace" font-size="12">8</text>
  <text x="100" y="285" fill="#38BDF8" font-family="monospace" font-size="12">  secureExecution</text>
  <text x="212" y="285" fill="#E2E8F0" font-family="monospace" font-size="12">:</text>
  <text x="228" y="285" fill="#10B981" font-family="monospace" font-size="12"> 'TEE'</text>
  <text x="264" y="285" fill="#F59E0B" font-family="monospace" font-size="12">⚑</text>
  
  <text x="60" y="310" fill="#94A3B8" font-family="monospace" font-size="12">9</text>
  <text x="100" y="310" fill="#E2E8F0" font-family="monospace" font-size="12">});</text>
  
  <!-- Terminal Panel -->
  <rect x="40" y="330" width="360" height="50" rx="0" fill="#0F172A" stroke="#334155" stroke-width="1"/>
  <text x="55" y="350" fill="#10B981" font-family="monospace" font-size="10">$</text>
  <text x="65" y="350" fill="#E2E8F0" font-family="monospace" font-size="10"> kuberna deploy --tee</text>
  <text x="55" y="368" fill="#10B981" font-family="monospace" font-size="10">β†’</text>
  <text x="70" y="368" fill="#6366F1" font-family="monospace" font-size="10"> Deploying to Phala TEE...</text>
  
  <!-- IDE Label -->
  <rect x="40" y="16" width="120" height="24" rx="6" fill="url(#primaryGrad)"/>
  <text x="100" y="32" fill="white" font-size="10" font-weight="600" text-anchor="middle">πŸ–₯️ BROWSER IDE</text>
</g>

<!-- ═══════════════════════════════════════════════════════════════════════
     LAYER 2: TEE ENCLAVES
     ═══════════════════════════════════════════════════════════════════════ -->
<g filter="url(#shadow)">
  <!-- TEE Container -->
  <rect x="440" y="120" width="320" height="180" rx="16" fill="url(#glassGrad)" stroke="rgba(245,158,11,0.3)" stroke-width="2"/>
  
  <!-- Phala TEE Node -->
  <rect x="460" y="150" width="130" height="100" rx="12" fill="#1E293B" stroke="#F59E0B" stroke-width="1"/>
  <rect x="460" y="150" width="130" height="28" rx="12" fill="#F59E0B" fill-opacity="0.2"/>
  <text x="525" y="168" fill="#F59E0B" font-size="10" font-weight="600" text-anchor="middle">βš™οΈ Phala Network</text>
  <text x="525" y="195" fill="#94A3B8" font-size="9" text-anchor="middle">Intel TDX</text>
  <text x="525" y="215" fill="#10B981" font-size="9" text-anchor="middle">● Attested</text>
  <rect x="480" y="230" width="90" height="12" rx="6" fill="#F59E0B" fill-opacity="0.2"/>
  <text x="525" y="239" fill="#F59E0B" font-size="8" text-anchor="middle">MRENCLAVE Verified</text>
  
  <!-- Marlin TEE Node -->
  <rect x="610" y="150" width="130" height="100" rx="12" fill="#1E293B" stroke="#F59E0B" stroke-width="1"/>
  <rect x="610" y="150" width="130" height="28" rx="12" fill="#F59E0B" fill-opacity="0.2"/>
  <text x="675" y="168" fill="#F59E0B" font-size="10" font-weight="600" text-anchor="middle">πŸ” Marlin Oyster</text>
  <text x="675" y="195" fill="#94A3B8" font-size="9" text-anchor="middle">AMD SEV-SNP</text>
  <text x="675" y="215" fill="#10B981" font-size="9" text-anchor="middle">● Attested</text>
  <rect x="630" y="230" width="90" height="12" rx="6" fill="#F59E0B" fill-opacity="0.2"/>
  <text x="675" y="239" fill="#F59E0B" font-size="8" text-anchor="middle">Remote Attestation</text>
  
  <!-- TEE Label -->
  <rect x="440" y="96" width="140" height="24" rx="6" fill="url(#accentGrad)"/>
  <text x="510" y="112" fill="white" font-size="10" font-weight="600" text-anchor="middle">πŸ”’ TEE ENCLAVES</text>
</g>

<!-- ═══════════════════════════════════════════════════════════════════════
     LAYER 3: SOLVER MARKETPLACE
     ═══════════════════════════════════════════════════════════════════════ -->
<g filter="url(#shadow)">
  <!-- Marketplace Container -->
  <rect x="440" y="340" width="320" height="200" rx="16" fill="url(#glassGrad)" stroke="rgba(16,185,129,0.3)" stroke-width="2"/>
  
  <!-- Intent Board -->
  <rect x="460" y="360" width="280" height="40" rx="8" fill="#1E293B"/>
  <text x="480" y="375" fill="#10B981" font-size="9" font-weight="600">INTENT</text>
  <text x="480" y="390" fill="#E2E8F0" font-size="10">Swap 1 ETH β†’ USDC on Uniswap</text>
  <rect x="680" y="370" width="50" height="18" rx="9" fill="#6366F1"/>
  <text x="705" y="382" fill="white" font-size="9" text-anchor="middle">$5</text>
  
  <!-- Solver Agents -->
  <rect x="460" y="410" width="85" height="60" rx="8" fill="#1E293B" stroke="#10B981" stroke-width="1"/>
  <text x="502" y="430" fill="#10B981" font-size="8" text-anchor="middle">πŸ€– Solver A</text>
  <text x="502" y="445" fill="#94A3B8" font-size="7" text-anchor="middle">Rep: 4.8β˜…</text>
  <rect x="472" y="452" width="60" height="10" rx="5" fill="#10B981" fill-opacity="0.2"/>
  <text x="502" y="460" fill="#10B981" font-size="7" text-anchor="middle">Bid: $4.50</text>
  
  <rect x="555" y="410" width="85" height="60" rx="8" fill="#1E293B" stroke="#6366F1" stroke-width="1"/>
  <text x="597" y="430" fill="#6366F1" font-size="8" text-anchor="middle">πŸ€– Solver B</text>
  <text x="597" y="445" fill="#94A3B8" font-size="7" text-anchor="middle">Rep: 4.9β˜…</text>
  <rect x="567" y="452" width="60" height="10" rx="5" fill="#6366F1" fill-opacity="0.2"/>
  <text x="597" y="460" fill="#6366F1" font-size="7" text-anchor="middle">Bid: $4.75</text>
  
  <rect x="650" y="410" width="85" height="60" rx="8" fill="#1E293B" stroke="#F59E0B" stroke-width="1"/>
  <text x="692" y="430" fill="#F59E0B" font-size="8" text-anchor="middle">πŸ€– Solver C</text>
  <text x="692" y="445" fill="#94A3B8" font-size="7" text-anchor="middle">Rep: 4.7β˜…</text>
  <rect x="662" y="452" width="60" height="10" rx="5" fill="#F59E0B" fill-opacity="0.2"/>
  <text x="692" y="460" fill="#F59E0B" font-size="7" text-anchor="middle">Bid: $4.25</text>
  
  <!-- Escrow -->
  <rect x="460" y="480" width="280" height="50" rx="8" fill="#1E293B" stroke="#F59E0B" stroke-width="1" stroke-dasharray="4,2"/>
  <text x="600" y="500" fill="#F59E0B" font-size="10" font-weight="600" text-anchor="middle">πŸ”’ ESCROW</text>
  <text x="600" y="520" fill="#94A3B8" font-size="9" text-anchor="middle">Funds secured until task completion</text>
  
  <!-- Marketplace Label -->
  <rect x="440" y="316" width="160" height="24" rx="6" fill="url(#secondaryGrad)"/>
  <text x="520" y="332" fill="white" font-size="10" font-weight="600" text-anchor="middle">🌐 SOLVER MARKETPLACE</text>
</g>

<!-- ═══════════════════════════════════════════════════════════════════════
     LAYER 4: BLOCKCHAIN NETWORKS
     ═══════════════════════════════════════════════════════════════════════ -->
<g filter="url(#shadow)">
  <!-- Blockchain Container -->
  <rect x="800" y="160" width="360" height="320" rx="16" fill="url(#glassGrad)" stroke="rgba(99,102,241,0.3)" stroke-width="2"/>
  
  <!-- Ethereum -->
  <g transform="translate(820, 180)">
    <rect width="100" height="80" rx="12" fill="#1E293B" stroke="#627EEA" stroke-width="2"/>
    <text x="50" y="30" fill="#627EEA" font-size="20" text-anchor="middle">Ξ</text>
    <text x="50" y="52" fill="#E2E8F0" font-size="11" font-weight="600" text-anchor="middle">Ethereum</text>
    <text x="50" y="68" fill="#94A3B8" font-size="8" text-anchor="middle">ERC-20, Uniswap</text>
  </g>
  
  <!-- Solana -->
  <g transform="translate(940, 180)">
    <rect width="100" height="80" rx="12" fill="#1E293B" stroke="#9945FF" stroke-width="2"/>
    <text x="50" y="30" fill="#9945FF" font-size="20" text-anchor="middle">β—Ž</text>
    <text x="50" y="52" fill="#E2E8F0" font-size="11" font-weight="600" text-anchor="middle">Solana</text>
    <text x="50" y="68" fill="#94A3B8" font-size="8" text-anchor="middle">SPL, Raydium</text>
  </g>
  
  <!-- NEAR -->
  <g transform="translate(1060, 180)">
    <rect width="100" height="80" rx="12" fill="#1E293B" stroke="#00C08B" stroke-width="2"/>
    <text x="50" y="30" fill="#00C08B" font-size="20" text-anchor="middle">∿</text>
    <text x="50" y="52" fill="#E2E8F0" font-size="11" font-weight="600" text-anchor="middle">NEAR</text>
    <text x="50" y="68" fill="#94A3B8" font-size="8" text-anchor="middle">NEP-141, Ref</text>
  </g>
  
  <!-- Polygon & Arbitrum -->
  <g transform="translate(820, 280)">
    <rect width="100" height="80" rx="12" fill="#1E293B" stroke="#8247E5" stroke-width="2"/>
    <text x="50" y="30" fill="#8247E5" font-size="20" text-anchor="middle">⬑</text>
    <text x="50" y="52" fill="#E2E8F0" font-size="11" font-weight="600" text-anchor="middle">Polygon</text>
    <text x="50" y="68" fill="#94A3B8" font-size="8" text-anchor="middle">ERC-20, Aave</text>
  </g>
  
  <g transform="translate(940, 280)">
    <rect width="100" height="80" rx="12" fill="#1E293B" stroke="#28A0F0" stroke-width="2"/>
    <text x="50" y="30" fill="#28A0F0" font-size="20" text-anchor="middle">β—ˆ</text>
    <text x="50" y="52" fill="#E2E8F0" font-size="11" font-weight="600" text-anchor="middle">Arbitrum</text>
    <text x="50" y="68" fill="#94A3B8" font-size="8" text-anchor="middle">ERC-20, GMX</text>
  </g>
  
  <!-- ERC-7683 Router -->
  <g transform="translate(1060, 280)">
    <rect width="100" height="80" rx="12" fill="#1E293B" stroke="#6366F1" stroke-width="2"/>
    <text x="50" y="30" fill="#6366F1" font-size="20" text-anchor="middle">⇄</text>
    <text x="50" y="52" fill="#E2E8F0" font-size="11" font-weight="600" text-anchor="middle">ERC-7683</text>
    <text x="50" y="68" fill="#94A3B8" font-size="8" text-anchor="middle">Cross-Chain</text>
  </g>
  
  <!-- Blockchain Label -->
  <rect x="800" y="136" width="160" height="24" rx="6" fill="url(#primaryGrad)"/>
  <text x="880" y="152" fill="white" font-size="10" font-weight="600" text-anchor="middle">⛓️ BLOCKCHAINS</text>
</g>

<!-- ═══════════════════════════════════════════════════════════════════════
     CONNECTION LINES
     ═══════════════════════════════════════════════════════════════════════ -->
<!-- IDE β†’ TEE -->
<path d="M 400 180 L 440 180" stroke="#6366F1" stroke-width="2" marker-end="url(#arrowPrimary)" stroke-dasharray="4,2"/>

<!-- TEE β†’ Marketplace -->
<path d="M 600 300 L 600 340" stroke="#F59E0B" stroke-width="2" marker-end="url(#arrowAccent)" stroke-dasharray="4,2"/>

<!-- Marketplace β†’ Blockchains -->
<path d="M 760 440 L 800 320" stroke="#10B981" stroke-width="2" marker-end="url(#arrowSecondary)" stroke-dasharray="4,2"/>

<!-- Bidirectional TEE ↔ Blockchain -->
<path d="M 440 220 Q 400 280 440 340" stroke="#F59E0B" stroke-width="1" fill="none" opacity="0.5"/>

<!-- Flow Numbers -->
<text x="420" y="170" fill="#6366F1" font-size="8" font-weight="600">β‘  Code</text>
<text x="610" y="325" fill="#F59E0B" font-size="8" font-weight="600">β‘‘ Attest</text>
<text x="770" y="380" fill="#10B981" font-size="8" font-weight="600">β‘’ Execute</text>

<!-- Flow Legend -->
<g transform="translate(40, 400)">
  <rect width="360" height="120" rx="12" fill="url(#glassGrad)" stroke="#334155" stroke-width="1"/>
  <text x="20" y="28" fill="#E2E8F0" font-size="12" font-weight="600">Flow Legend</text>
  
  <line x1="20" y1="50" x2="60" y2="50" stroke="#6366F1" stroke-width="2" marker-end="url(#arrowPrimary)"/>
  <text x="70" y="54" fill="#94A3B8" font-size="10">Agent Code Deployment</text>
  
  <line x1="20" y1="75" x2="60" y2="75" stroke="#F59E0B" stroke-width="2" marker-end="url(#arrowAccent)"/>
  <text x="70" y="79" fill="#94A3B8" font-size="10">TEE Attestation</text>
  
  <line x1="20" y1="100" x2="60" y2="100" stroke="#10B981" stroke-width="2" marker-end="url(#arrowSecondary)"/>
  <text x="70" y="104" fill="#94A3B8" font-size="10">Intent Execution</text>
</g>


🎬 See It In Action

# Install the SDK
npm install @kuberna/sdk

# Create your first agent
npx kuberna create yield-optimizer

# Deploy to TEE in < 60 seconds
cd yield-optimizer && kuberna deploy --tee --chain solana

asciicast

Interactive terminal recording coming soon. Run the commands above to experience the magic.


⚑ Quickstart

Get your first TEE-shielded agent running in under 60 seconds.

1. Install the SDK

npm install @kuberna/sdk

2. Initialize Your Agent

import { KubernaSDK } from '@kuberna/sdk';

async function main() {
  const sdk = new KubernaSDK({ apiKey: process.env.KUBERNA_API_KEY });

  const agent = await sdk.createAgent({
    name: 'YieldOptimizer',
    framework: 'ElizaOS',
    secureExecution: 'TEE', // ⚑ TEE-shielded
    chains: ['ethereum', 'solana', 'near'],
  });

  console.log(`Agent ${agent.id} deployed to TEE!`);
  console.log(`Attestation: ${agent.attestation.report}`);
}

main();

3. Deploy

npx kuberna deploy --tee --chain solana

✨ Core Features

πŸ”’ Trusted Execution (TEE)

Deploy agents inside Intel TDX or AMD SEV enclaves with cryptographic attestation. Your proprietary logic remains tamper-proof and verifiable on-chain.

Supported Providers:

  • Phala Network (Intel TDX)
  • Marlin Oyster (AMD SEV-SNP)

🌐 Cross-Chain Intents (ERC-7683)

Post intents in natural language. Solvers compete to fulfill them. Funds secured in escrow until completion verified.

Supported Chains:

  • Ethereum, Polygon, Arbitrum
  • Solana, NEAR

πŸ” zkTLS Privacy

Fetch verified Web2 data (bank balances, KYC) using zero-knowledge proofs. Only the required data is revealed.

Supported Sources:

  • Gmail, Twitter, LinkedIn
  • Bank of America, Coinbase

πŸ’» Browser IDE

Write, debug, and deploy agents directly in your browser. Built-in AI assistance, real-time logs, and one-click TEE deployment.

πŸ“Š Intent Marketplace

Decentralized solver network where agents compete to fulfill tasks. Best price guaranteed.

πŸ—οΈ SDK & Templates

TypeScript, Python, Rust SDKs. Pre-built templates for trading bots, governance monitors, and more.


πŸ†š The Difference

Before: Manual Chaos

// Traditional: 100+ lines of complexity
const provider = new ethers.JsonRpcProvider(RPC_URL);
const wallet = new ethers.Wallet(PRIVATE_KEY, provider);
const gasEstimate = await bridgeContract.estimateGas.swapAndBridge(
  sourceToken,
  targetChain,
  amount
);
const tx = await bridgeContract.swapAndBridge(sourceToken, targetChain, amount, {
  gasLimit: gasEstimate.mul(120).div(100),
  maxFeePerGas: (await provider.getFeeData()).maxFeePerGas,
  maxPriorityFeePerGas: (await provider.getFeeData()).maxPriorityFeePerGas,
});
// + 50 more lines for retries, error handling, cross-chain settlement

After: Kuberna Elegance

import { KubernaSDK } from '@kuberna/sdk';

const agent = await KubernaSDK.initialize({
  wallet: process.env.WALLET_KEY,
});

await agent.deploy({
  task: 'Swap 1 ETH to USDC on Uniswap',
  secureExecution: 'TEE', // Cryptographically verified
});

πŸ“ Project Structure

kuberna-labs/
β”œβ”€β”€ contracts/           # Solidity smart contracts (Hardhat)
β”‚   β”œβ”€β”€ Escrow.sol       # Secure fund management
β”‚   β”œβ”€β”€ Intent.sol       # ERC-7683 cross-chain intents
β”‚   β”œβ”€β”€ Attestation.sol  # TEE verification
β”‚   β”œβ”€β”€ ReputationNFT.sol # Agent trust scores
β”‚   └── ...
β”œβ”€β”€ backend/             # Node.js API server
β”‚   β”œβ”€β”€ src/
β”‚   β”‚   β”œβ”€β”€ routes/     # REST API endpoints
β”‚   β”‚   β”œβ”€β”€ services/   # TEE, Payment, Blockchain
β”‚   β”‚   └── middleware/  # Auth, rate limiting
β”‚   └── prisma/         # Database schema
β”œβ”€β”€ sdk/                 # @kuberna/sdk
β”œβ”€β”€ frontend/           # Next.js dashboard
β”œβ”€β”€ examples/           # Template agents
└── test/               # Smart contract tests

πŸ›‘οΈ Security & Trust

Feature Implementation
Non-Custodial You always control your keys
TEE Attestation On-chain verified via Phala/Marlin
Escrow Smart contracts secure funds
Audited OpenZeppelin v5 standards
GDPR Data residency compliant

πŸ“š Resources


Built with ❀️ in Kigali, Rwanda by the Kuberna Labs Team

Twitter Discord GitHub

About

Decentralized execution rails for AI agents. Enables autonomous cross-chain transactions using intents and zkTLS.

Topics

Resources

License

Code of conduct

Contributing

Security policy

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors