"Should I execute this right now?"
NoLeak is a standalone pre-execution decision oracle for autonomous agents. Before any action fires, NoLeak scores it against historical patterns, capital risk, and rate limits — then returns a binary execute/wait decision with a cryptographic Guaranteed Execution Record (GER).
Not EP. EP handles authorization ("is this agent allowed?"). NoLeak handles execution integrity ("should this fire right now?"). Two independent services. They never call each other.
Autonomous agent systems leak value silently:
- Signals go unexecuted because no system checked timing
- Tasks drop without anyone noticing
- Capital sits idle when it should be deployed
- Bad signals fire when they should have been held
NoLeak catches all of these before they happen.
Agent → POST /noleak/check → NoLeak scores the signal → execute or wait
↓
GER stored in Postgres
Learning fed back to QMD
Every decision produces a Guaranteed Execution Record (GER) — a SHA-256 hash of the full decision payload. This is a tamper-proof log proving the system evaluated the signal and made a deliberate choice.
Request:
{
"signal": {"action": "trade", "coin": "ETH"},
"capital": 50,
"agent_id": "your_agent"
}Response:
{
"shouldExecute": true,
"score": 0.75,
"ger": {
"hash": "89d9e915...0786a354",
"agent_id": "your_agent",
"action": "trade",
"timestamp": "2026-03-20T15:21:24Z",
"latency_ms": 23
},
"reasoning": {
"qmd_score": 0.72,
"capital_ratio": 0.05,
"recent_actions_1h": 0,
"threshold": 0.35
}
}Look up any past decision by its GER hash. Returns the full decision record including signal, score, and outcome.
Returns operational stats: total checks, execution rate, average score, average latency.
NoLeak uses a hybrid QMD (Query Memory Dispatcher) approach:
- Postgres (80%) — Historical win rates for this action pattern from the
learningstable (stream='noleak') - Capital risk — High capital commitment (>50% of max) penalizes the score
- Rate limiting — More than 20 actions per hour triggers heavy penalty
- Threshold — Score >= 0.35 = execute. Below = wait.
Every decision writes back to the learnings table, so scoring improves over time.
Every /noleak/check call produces a GER stored in the noleak_ger Postgres table:
| Field | Description |
|---|---|
ger_hash |
SHA-256 of full decision payload |
agent_id |
Who requested the check |
action |
What action was evaluated |
signal |
Full signal payload (JSONB) |
capital |
Capital at risk |
score |
NoLeak confidence score (0.0-1.0) |
should_execute |
Binary decision |
latency_ms |
Decision time in milliseconds |
created_at |
Timestamp |
GERs are immutable and queryable via GET /noleak/ger/:hash.
- Runtime: Python Flask on port 5070
- Database: Postgres (
noleak_gertable for GERs,learningstable for QMD) - Service: systemd (
noleak.service, Restart=always) - Scoring: Postgres-backed QMD with capital + rate limit modifiers
- Separation: 100% independent of EP. Own server, own port, own tables, own logic.
| Tier | Price | Description |
|---|---|---|
| basic-check | $0.01/call | Execute/wait decision + GER hash |
| daily-sub | $5.00/day | Unlimited checks |
- Agent: achilles (ID: 28821)
- Offering: noleak_check — $0.01/call, 5 min SLA
- Marketplace: https://app.virtuals.io/acp/agent/28735
| EP AgentIAM | NoLeak | |
|---|---|---|
| Question | Is this authorized? | Should I execute? |
| Endpoint | /ep/validate | /noleak/check |
| Output | proof_hash + policy | GER + confidence score |
| Port | Render (443) | EC2 (5070) |
| GitHub | achilliesbot/execution-protocol | achilliesbot/noleak |
| Connection | None — fully independent | None — fully independent |