Skip to main content

Fork V6 — Public chat memory + agentic AI mining

Fork V6 introduce două capacități noi pe lanț OmbraChain:

  1. Chat memory on-chain — orice mesaj este semnat și public, vizibil pe explorer
  2. Agentic AI mining distribuit — agenți autonomi rulează multi-step cu tool calling, mineri îi execută în schimbul OMBRA

Tx types

TypeScop
CHAT_TURNMesaj public semnat (user/assistant/system/tool)
AGENT_REQUESTCerere agent + escrow maxFee (de obicei 1 OMBRA)
AGENT_CLAIMMiner-ul revendică agent run-ul (first-wins)
AGENT_STEPPer-pas state: tool calls, output tokens, hash
AGENT_FINISHFinal: pay miner tokens × rate, refund excess

Billing

Toate sumele în micro-OMBRA (1 OMBRA = 1,000,000 micro):

AGENT_REWARD_PER_TOKEN = 1n // 0.000001 OMBRA / token output
AGENT_NETWORK_FEE_PER_STEP = 100n // 0.0001 OMBRA per AGENT_STEP tx
CHAT_TURN_FEE = 100n // 0.0001 OMBRA per public chat message

Lifecycle agent run

User wallet Mainnet Miner wallet
───────── ─────── ────────────
[Chat UI agent mode]

│ AGENT_REQUEST (prompt, tools, maxFee=1 OMBRA escrow)
├──────────────────────────────────────►│
├──── P2P propagation ─────────────►│
│ [Agent listener]
│ ├─ verify tools + hardware
│ ├─ AGENT_CLAIM (first-wins)
│ ├─ run agent loop:
│ │ ├─ LLM call cu tools
│ │ ├─ tool execute (chain query / web / ...)
│ │ ├─ AGENT_STEP cu (output, toolCalls, tokens)
│ │ └─ loop până final / max steps / budget
│ └─ AGENT_FINISH (final answer)
│◄─────────────────────────────────│
│ ── settle: pay miner, refund user

SDK examples

TypeScript

import {
OmbraClient, Wallet,
buildAgentRequestTx, computeAgentRunId, computeConversationId,
MICRO_OMBRA,
} from "@ombrachain/sdk";

const client = new OmbraClient({ endpoint: "https://api.ombra-net.com" });
const wallet = Wallet.fromMnemonic("...12 words...");

const { nonce } = await client.chain.getAccount(wallet.address);
const runId = computeAgentRunId(wallet.address, nonce, "Explain Bitcoin");
const convId = computeConversationId(wallet.address);

const tx = buildAgentRequestTx(wallet.address, {
agentRunId: runId,
conversationId: convId,
prompt: "Explain Bitcoin in 100 words",
toolsWhitelist: ["web_search", "chain_query"],
maxFee: BigInt(MICRO_OMBRA), // 1 OMBRA escrow
maxSteps: 100,
}, nonce, wallet.privateKey);

await client.tx.submit(tx);

Python

from ombrachain import (
OmbraClient, Wallet,
build_agent_request_tx, compute_agent_run_id, compute_conversation_id,
MICRO_OMBRA,
)

wallet = Wallet.from_mnemonic("...12 words...")
client = OmbraClient(endpoint="https://api.ombra-net.com")

acct = client.get_account(wallet.address)
run_id = compute_agent_run_id(wallet.address, acct["nonce"], "Explain Bitcoin")
conv_id = compute_conversation_id(wallet.address)

tx = build_agent_request_tx(wallet.address, {
"agentRunId": run_id,
"conversationId": conv_id,
"prompt": "Explain Bitcoin in 100 words",
"toolsWhitelist": ["web_search", "chain_query"],
"maxFee": MICRO_OMBRA,
"maxSteps": 100,
}, acct["nonce"], wallet.private_key)

client.submit_tx(tx)

API endpoints

GET /api/agent/v6/run/:agentRunId # full state + status
GET /api/agent/v6/run/:agentRunId/steps # all AGENT_STEPs cronologic
GET /api/chat/conversation/:conversationId # all chat turns in thread
POST /api/tx # submit any signed tx
GET /api/stream/events # SSE live chain events

Tools whitelist disponibile (referință wallet desktop)

  • chain_query — read-only chain ops (balance, blocks, tx)
  • web_search — Google search + fetch URL (rate-limited)
  • chain_write — submit_tx (with user confirmation)
  • code_exec — sandboxed JS via vm2
  • file_io — local file read/write (per-call permission popup)
  • media_gen — generate_image (SD) / generate_audio (Piper)
  • sub_agent — spawn nested agent
  • wallet_ops — sign_message, get_contacts, send_dm
  • time_math — now, date_diff, math_eval
  • rag — local embeddings + vector_search

Miner-ul filtrează în MiningView tools acceptate. User-ul alege whitelist per AGENT_REQUEST.