The Operating System for Agentic Web3 Enterprises
Deploy TEE-shielded AI agents to Solana, NEAR, and Ethereum in less than 60 seconds.
<!-- 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>
# 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 solanaInteractive terminal recording coming soon. Run the commands above to experience the magic.
Get your first TEE-shielded agent running in under 60 seconds.
npm install @kuberna/sdkimport { 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();npx kuberna deploy --tee --chain solanaDeploy 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)
Post intents in natural language. Solvers compete to fulfill them. Funds secured in escrow until completion verified.
Supported Chains:
- Ethereum, Polygon, Arbitrum
- Solana, NEAR
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
Write, debug, and deploy agents directly in your browser. Built-in AI assistance, real-time logs, and one-click TEE deployment.
Decentralized solver network where agents compete to fulfill tasks. Best price guaranteed.
TypeScript, Python, Rust SDKs. Pre-built templates for trading bots, governance monitors, and more.
// 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 settlementimport { 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
});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
| 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 |
- π Documentation
- π¬ Discord Community
- π¦ Twitter
- π¦ NPM Package
- π Report Bug