EU AI Act Article 50 live 2 Aug 2026 — C2PA passport ready | Get yours →

🔧 Technical Integration Guide

REST API, WebSocket events, Python SDK, A2A Agent Card, MCP protocol. Everything a developer needs to integrate DEFONEOS into existing defence systems.

300+

MCP Tools

Full JSON-RPC tool surface. Every DEFONEOS capability is an MCP tool.

JSON-RPC

Protocol

Standard MCP over HTTP/SSE. Compatible with Claude, GPT, Gemini, any MCP client.

Ed25519

SIGIL Signing

Every API call is hash-chained and Ed25519-signed. Immutable audit trail.

🌐 REST API
📡 WebSocket
🐍 Python SDK
🤖 A2A Protocol
📋 API Reference

🌐 REST API — JSON-RPC over HTTP

The DEFONEOS API uses JSON-RPC 2.0 over HTTP POST. The endpoint is /mcp on the sovereign substrate (default port 3101).

Health Check

curl -X POST http://localhost:3101/mcp \ -H "Content-Type: application/json" \ -d '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{}}' → {"jsonrpc":"2.0","id":1,"result":{"protocolVersion":"2025-06-18", "serverInfo":{"name":"defoneos","version":"1.0.0"}}}

List Available Tools

curl -X POST http://localhost:3101/mcp \ -H "Content-Type: application/json" \ -d '{"jsonrpc":"2.0","id":2,"method":"tools/list","params":{}}' → {"tools":[{"name":"sigil_emit","description":"Emit SIGIL to audit chain"}, {"name":"bft_vote","description":"Cast BFT council vote"}, {"name":"swarm_launch","description":"Launch drone swarm"}, ... 300+ tools]

Call a Tool — Emit SIGIL

curl -X POST http://localhost:3101/mcp \ -H "Content-Type: application/json" \ -d '{"jsonrpc":"2.0","id":3,"method":"tools/call", "params":{"name":"sigil_emit", "arguments":{"line":"C|defoneos|test|Integration test"}}}' → {"digest":"a3f7b2e1...","signature":"Ed25519:...","prev_hash":"8c4f..."}

Authentication

API key passed via X-API-Key header. Keys issued via dorado_api_auth tool. Tier-based rate limits:

TierRate LimitTools AvailableCost
Free100 req/dayRead-only tools£0
Pro10K req/dayAll tools + BFT£499/mo
GovernanceUnlimitedAll + council + audit£2,499/mo
EnterpriseUnlimited + SLAAll + multi-region + PQC£9,999+/mo

📡 WebSocket Events — Real-time Stream

DEFONEOS pushes real-time events over WebSocket. Subscribe to channels for live updates: SIGIL emissions, BFT votes, swarm status, sensor alerts, ISR detections.

Connect & Subscribe

wscat -c ws://localhost:3101/ws # Subscribe to channels > {"action":"subscribe","channel":"sigil"} > {"action":"subscribe","channel":"bft"} > {"action":"subscribe","channel":"swarm"} > {"action":"subscribe","channel":"sensor"} > {"action":"subscribe","channel":"isr"} # Live events stream in: < {"channel":"sigil","digest":"a3f7...","line":"C|swarm|launch|dragonfly-8"} < {"channel":"bft","proposal":"engage-Alpha-7","vote":"for","agent":"agent-14"} < {"channel":"swarm","mission":"msn-001","coverage":47,"drones_active":6} < {"channel":"sensor","node":"bat-03","detection":"drone","bearing":142}

Available Channels

ChannelEventsUse Case
sigilAll SIGIL emissionsAudit trail monitoring
bftBFT proposals, votes, consensusGovernance dashboard
swarmDrone launches, status, recallsC2 real-time map
sensorBatear detections, satellite passes, AISSensor fusion feed
isrYOLOv8 detections, target geolocationISR analyst terminal
councilCouncil proposals, deliberationsDecision tracking
auditCompliance assertions, chain verificationRegulator view

🐍 Python SDK

The defoneos Python package provides a typed wrapper around the MCP API. Install via pip.

Installation

pip install defoneos

Quick Start

from defoneos import DEFONEOS # Connect to sovereign substrate df = DEFONEOS(host="localhost", port=3101, api_key="dk_...") # Emit a SIGIL result = df.sigil_emit("C|test|hello|Hello from Python SDK") print(f"Digest: {result.digest}") print(f"Signature: {result.signature}") # Launch swarm mission = df.swarm_launch(pattern="dragonfly", n_drones=6, area="SE-1444") print(f"Mission ID: {mission.mission_id}") # Monitor import time while True: status = df.swarm_status(mission_id=mission.mission_id) print(f"Active: {status.active}, Coverage: {status.coverage}%") if status.coverage >= 95: df.swarm_recall(mission_id=mission.mission_id) break time.sleep(10) # BFT vote vote = df.bft_vote(proposal="recall-swarm", choice="for") print(f"Consensus: {vote.consensus}, Votes: {vote.votes_for}/33")

Async Support

import asyncio from defoneos import AsyncDEFONEOS async def main(): df = AsyncDEFONEOS(host="localhost", port=3101) # Subscribe to WebSocket events async for event in df.subscribe("swarm"): print(f"Swarm event: {event}") if event.type == "mission_complete": break asyncio.run(main())

🤖 A2A (Agent-to-Agent) Protocol

DEFONEOS supports Google's A2A protocol for inter-agent communication. Other AI agents can discover DEFONEOS capabilities, submit tasks, and receive results asynchronously.

Agent Card Discovery

# Get DEFONEOS Agent Card (JSON-LD) curl http://localhost:3101/.well-known/agent.json → { "@context": "https://www.w3.org/ns/did/v1", "id": "did:csoai:defoneos", "name": "DEFONEOS Sovereign Defence OS", "description": "UK sovereign defence AI operating system", "capabilities": ["sigil_emit","bft_vote","swarm_launch",...], "skills": [ {"id":"eu-ai-act-compliance","name":"EU AI Act Compliance"}, {"id":"jsp936-audit","name":"JSP 936 Audit Generator"}, {"id":"isr-pipeline","name":"ISR Pipeline (YOLOv8+OpenAthena)"}, {"id":"swarm-coordination","name":"Drone Swarm Coordinator"} ], "authentication": {"type":"api-key","header":"X-API-Key"} }

Submit Task to DEFONEOS

# From another AI agent (e.g., Claude, GPT) POST http://localhost:3101/a2a/tasks { "message": "Launch ISR mission over grid SE-1444-NW, report detections", "skill_id": "isr-pipeline", "arguments": {"area": "SE-1444-NW", "duration": 300} } → {"task_id":"task-2026-0705-001","status":"submitted"} # Poll for result GET http://localhost:3101/a2a/tasks/task-2026-0705-001 → {"status":"completed","result":{"detections":3,"targets":[...]}}

Federation Topology

ProtocolUseStatus
A2A (Google)Agent-to-agent task delegation✅ Live
MCP (Anthropic)Tool calling✅ Live
SIGILSigned inter-agent messaging✅ Live
x402 (Coinbase)Per-outcome payment✅ Live
DID (W3C)Sovereign identity✅ Live
JWTSession auth✅ Live
WebSocketReal-time events✅ Live
gRPCHigh-perf internal comms🔧 Planned

📋 Full API Reference — Key Endpoints

EndpointMethodDescription
/mcpPOSTMCP JSON-RPC endpoint (all tools)
/wsWSWebSocket event stream
/.well-known/agent.jsonGETA2A Agent Card
/a2a/tasksPOSTSubmit A2A task
/a2a/tasks/:idGETGet A2A task status
/v1/sigil/eventsGETQuery SIGIL chain
/v1/sigil/statsGETSIGIL chain statistics
/v1/sigil/exportGETExport SIGIL chain (CSV/JSON)
/v1/dorado/cust-reportGETCustomer audit report
/v1/dorado/replayGETAudit trail replay for regulators

Rate Limiting

Rate limits applied per API key. Headers return quota:

X-RateLimit-Limit: 10000 X-RateLimit-Remaining: 9847 X-RateLimit-Reset: 1720195200

Error Codes

CodeMeaning
200Success
400Bad request (invalid params)
401Unauthorized (missing/invalid API key)
403Forbidden (tier insufficient for tool)
429Rate limited
500Internal error (SIGIL logged)
DEFONEOS Technical Integration Guide · REST · WebSocket · Python SDK · A2A · MCP · UK Sovereign · CSOAI Certified · SIGIL-signed
🜏 SOV33 Hub 🜏 Sovereign Hub 📜 Article 50 Passport 📋 OWEM RFQ CSOAI Ltd · UK 16939677 · Care Floor 0.95 · Charter-anchored
🜏 Sovereign Hub 📜 Article 50 Passport 📋 OWEM RFQ CSOAI Ltd · UK 16939677 · Care Floor 0.95 · Charter-anchored
🜏 Sovereign Hub 📜 Article 50 Passport 📋 OWEM RFQ CSOAI Ltd · UK 16939677 · Care Floor 0.95 · Charter-anchored
🜏 Sovereign Hub 📜 Article 50 Passport 📋 OWEM RFQ CSOAI Ltd · UK 16939677 · Care Floor 0.95 · Charter-anchored
🜏 Sovereign Hub 📜 Article 50 Passport 📋 OWEM RFQ CSOAI Ltd · UK 16939677 · Care Floor 0.95 · Charter-anchored
🜏 Sovereign Hub 📜 Article 50 Passport 📋 OWEM RFQ CSOAI Ltd · UK 16939677 · Care Floor 0.95 · Charter-anchored