Contract enforcement, dispute resolution, and reputation for agent-to-agent economies. Agents transact via HTTP. The protocol handles the rest.
Autonomous agents increasingly purchase data feeds, license models, invoke APIs, and compose multi-agent workflows. But these interactions have no enforcement layer. An agent that pays for a data license has no recourse when the data is stale or fabricated. A provider that delivers a result has no guarantee the consumer won't repudiate the agreement.
Legal systems are too slow and too expensive for machine-speed transactions. On-chain smart contracts impose wallets, gas, and blockchain literacy on agents that are otherwise ordinary HTTP services. Giura provides the missing middle ground.
Agreements that are simultaneously human-readable and machine-executable. Structured verification predicates embedded in natural-language prose.
Parties post collateral that is forfeited upon verified breach. Skin in the game aligns incentives without requiring trust between counterparties.
Deterministic verification first. AI-assisted adjudication second. Human arbitration as last resort. Most disputes never leave Tier 1.
On-chain reputation scores computed from contract outcomes. Agents with strong history earn reduced bond requirements over time.
Use the hosted Global Jurisdiction to start in minutes, or deploy a Private Jurisdiction for full sovereignty over your agents' contracts and dispute resolution.
The fully managed Giura Service. Connect via API, start enforcing contracts immediately.
Self-host your own Giura Service instance. Same protocol, your infrastructure, your rules.
You don't need blockchain experience, a crypto wallet, or any dependencies beyond an HTTP client. The Giura Service handles everything else.
Browse templates via GET /templates. V1 ships with
data-license for agent-to-agent data licensing.
Templates are Ricardian: human-readable prose with machine-executable
verification predicates.
Submit a proposal via POST /contracts. The counterparty
accepts or rejects. Upon agreement, both sides post bond deposits
through the x402 payment flow — the API walks you through it.
Fulfill your obligations. Call POST /contracts/:id/complete.
The protocol verifies via Tier 1 predicates, releases bonds,
and updates on-chain reputation. If breached, file via POST /disputes.
import { GiuraClient } from "@giura/sdk";
const giura = new GiuraClient({ apiKey: process.env.GIURA_API_KEY });
// 1. List available contract templates
const templates = await giura.templates.list();
// 2. Propose a data-license contract
const contract = await giura.contracts.create({
template: "data-license",
provider: "agent://provider.example.com",
consumer: "agent://me.example.com",
params: {
dataset: "market-data-2025",
freshness: "5m",
schema: "https://schemas.example.com/market-v2.json",
},
});
// 3. Complete when obligations are fulfilled
await giura.contracts.complete(contract.id);
Most agents only interact with Layers 1–2 via JSON over HTTPS. Agents never manage wallets, sign transactions, or pay gas.
Consumer and provider agents. Any HTTP client or service.
REST API. Contract engine, dispute engine, reputation engine.
Bond deposits and settlement via HTTP 402 payment flow.
Story L1 blockchain. Contract hashes, dispute outcomes, reputation anchors.
Optional. Crypto-native agents bypass the service layer with equivalent semantics.
A contract exists in exactly one of nine states at any point in time. Every transition is cryptographically committed to the Story L1 blockchain — the protocol's immutable, trustless archival layer. No party can rewrite history.
Disputes start with deterministic machine verification and escalate only when necessary. Contracts should maximize Tier 1 coverage for instant, automatic resolution.
CLAIMANT_WINS, RESPONDENT_WINS, or INCONCLUSIVE.
The protocol is defined across a series of GIPs following RFC 2119 conventions. Anyone can propose a new GIP.
The specification, reference implementation, SDK, and on-chain contracts are all open source under the MIT License. The protocol belongs to the community.
Propose new contract templates, collateral adapters, or dispute resolution mechanisms.
The SDK is TypeScript-first, but the protocol is just HTTP. Any language works.
Deploy your own Giura Service. The service layer can't alter terms or forge outcomes.
Review the Solidity contracts on Story L1. Security is a community effort.