SECURITY OVERVIEW - NOT A CERTIFICATION
Security at Zambo
Last updated: September 14, 2026. This page states the controls Zambo currently operates. It does not claim SOC 2, ISO 27001, penetration-test certification, or a guarantee of absolute security.
Transport and access
Public service traffic is served over HTTPS in production. The free MCP endpoint does not require an account or API key. Paid access uses a server-issued capability key or a verified payment flow; access should not be inferred from an email address alone. Rate limits and abuse controls are applied to protect shared infrastructure.
No stored credentials
Zambo does not ask for or store user passwords, private keys, or seed phrases. Users remain responsible for reviewing requests and confirming wallet transactions. Do not submit credentials or secrets in a job.
Receipts and integrity
Tool executions return receipts keyed by a UUID with timestamps, status, and a SHA-256 hash. The hash helps detect changes to the recorded receipt payload; it is not independent proof that an external fact, payment, or tool result is true. Payment activation requires verification of the relevant transaction before access is enabled.
Abuse controls
Zambo uses quota enforcement, rate limits, request validation, provider timeouts, and monitoring to reduce abuse and cascading failures. External-provider results can be unavailable; the service should return an unavailable or failed status instead of inventing a result.
Data handling
Requests and operational records are processed only as needed to execute requested features, return receipts, secure the service, and handle payments or support. See the draft DPA for the current data-processing description. Public URLs, repositories, and blockchain transactions may be visible to third parties independently of Zambo.
Report a concern
Send a security report to brennanzambo@zambo.dev. Do not include secrets in a report. Please provide the affected URL or behavior, reproduction steps, impact, and a safe way to follow up.
Security and evidence boundaries in practice
Security review should ask what a receipt exposes, what it protects, and which authority can correct or revoke a record. The useful unit is not a confident sentence from an assistant. It is a bounded claim that names what happened, when it happened, and which evidence another person can retrieve. That framing makes the page useful to an operator who is reviewing a real run rather than reading a product slogan.
Build the evidence boundary first
Write down the question before collecting records. Is the question whether a call was attempted, whether a service accepted it, whether bytes were returned, or whether an outside system now shows the desired state? Those are different questions. A receipt should answer the execution question it was designed to answer, while a source system, approval record, or human check answers the questions beyond that boundary.
Keep the record narrow enough to share safely. A stable identifier, timestamp, tool name and scope, provenance class, exact committed bytes, output hash, and verification status are often more useful than a complete prompt transcript. When private inputs matter, retain a reference or commitment and keep the underlying material under the access rules of the system that owns it.
Use a repeatable review loop
- State the expected action and the acceptance condition in plain language.
- Locate the receipt created by the execution layer and match its identity, time, tool, scope, and status.
- Check the exact bytes or output commitment using the published verification procedure.
- Read back the important result from the system that owns the state, without treating a receipt as that read-back.
- Record supported, pending, contradicted, and unobserved claims separately.
Review identity, canonical bytes, disclosure, replay, correction, and operational ownership. This makes a short review reproducible: a second reviewer can see which artifact supported each conclusion and which uncertainty remains open. It also gives an agent a safe stopping rule. If a required record is missing, the agent should report that boundary instead of filling it with an invented success.
Failure handling and retention
Preserve failed calls, retries, rejected permissions, timeouts, and partial writes. They explain why a later state differs from the requested state and prevent a clean-looking final summary from erasing the path that led there. Attach the capture time and source URL to any external read-back, because a changing system can make yesterday's confirmation impossible to reproduce.
Integrity of a receipt does not remove access-control, privacy, retention, or incident-response obligations. For high-impact work, add a human approval or a second-system confirmation before sending a message, changing durable data, spending funds, or publishing a result. For low-risk reads, a receipt plus a spot check may be enough. The standard should follow the cost of being wrong, not the agent's confidence.
Finally, describe the result with precise language. Say that a call was recorded, that bytes matched, or that a source system displayed a state at a given time. Do not silently upgrade those observations into a claim that a model was correct, a transaction settled, a customer received a message, or a legal requirement was satisfied. Honest limits are part of a useful verification record.
For a live demonstration, make one low-risk tool call through the Zambo demo, then inspect its receipt through the verification page. Keep the example separate from private production data, and use the same evidence vocabulary when you document the workflow.
What a good review record contains
A useful review note is short but specific. Record the question being answered, the receipt identifier, the capture time, the verifier result, the system queried for confirmation, and the reviewer decision. If the evidence is incomplete, name the missing artifact instead of adding a confidence score that has no defined source. This format lets a later reviewer repeat the check without reading an entire conversation.
For example, a reviewer might write that a tool call was recorded with the expected scope, that its committed bytes matched the receipt hash, and that the destination system did not yet show the requested change at the time of read-back. That is a useful finding. It is more precise than saying the agent failed, because the available evidence distinguishes execution from the external outcome.
When this method is not enough
Receipts are one layer in a control process. They do not replace access control, approval policy, backups, monitoring, incident response, or domain review. They also cannot recover data that was never observed or prove that a third-party response was truthful. If the workflow involves regulated records, money, safety, or an irreversible publication, add the controls required by the organization that owns that risk.
The best implementation makes uncertainty visible at the same place it reports success. Keep pending and rejected states queryable, make corrections append-only when possible, and preserve the original bytes used for verification. That discipline gives operators a durable explanation for what happened without asking them to trust a generated narrative.
Before closing the review, ask whether another person could reach the same conclusion from the retained evidence. If not, identify the missing link, assign its owner, and leave the result pending. A transparent incomplete record is safer and more useful than a complete-looking record that quietly joins assumptions to facts.