Act·two-phase async
ᛃ
Sovereign Agent
CLI agent in a tx
Run Claude Code, ZeroClaw, OpenClaw, or Crush as one-shot CLI tasks.
0x000000000000000000000000000000000000080CExplorer
Job primitive. One-shot agent run with skills, tools, conversation memory, and artifact outputs. Settles via
onSovereignAgentResult.click 'auto' (capability = 0)
what the agent should do
empty = all
≤ 500
min escrow: 0.2000 RITUALyou have: — RITUAL
Connect your wallet to submit a real transaction.
to: 0x000000000000000000000000000000000000080CchainId 1979 · two-phase · 23 fields
Output
Click Validate to encode the 23-field sovereign agent request.
zeroclaw · max 30 turns · claude-sonnet-4-5-20250929
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.24;
import {PrecompileConsumer} from "./utils/PrecompileConsumer.sol";
contract SovereignAgentJob is PrecompileConsumer {
address constant SOVEREIGN_AGENT = address(0x80C);
address constant ASYNC_DELIVERY = 0x5A16214fF555848411544b005f7Ac063742f39F6;
event AgentDispatched(bytes32 indexed jobId, address indexed sender);
event AgentCompleted(bytes32 indexed jobId, bytes result);
event AgentFailed(bytes32 indexed jobId, string error);
struct StorageRef { string platform; string path; string credentialsKey; }
function dispatch(address executor) external {
// Build the 23-field encoded input — see /playground/sovereign-agent
// for the full encodeAbiParameters call (skills, convoHistory,
// output, systemPrompt all use StorageRef tuples).
bytes memory encoded = bytes("...23 fields...");
(bool ok,) = SOVEREIGN_AGENT.call(encoded);
require(ok, "sovereign agent call failed");
}
/// @notice Phase 2 callback — only AsyncDelivery may invoke.
function onSovereignAgentResult(bytes32 jobId, bytes calldata result) external {
require(msg.sender == ASYNC_DELIVERY, "unauth");
// Decode based on Sovereign Agent response ABI:
// (bool hasError, bytes finalOutputCid, string errorMsg, ...)
emit AgentCompleted(jobId, result);
}
}