10 minutes
Attesto in 10 minutes
This is the shortest safe path from a clean tenant to a verified event. Use it to learn the shape of Attesto before you wire a full production integration.
1. Login
Open dashboard.attesto.eu and sign in as a tenant user. The tenant dashboard is where external users manage systems, streams, exports, webhooks, connectors, and billing.
2. Create a system key
Create one system for the backend service that will send events. Copy the generated key exactly once and store it in your server-side secret manager. Do not place it in browser code or public configuration.
3. Log one event
Python:
import os
from attesto import AttestoClient
client = AttestoClient(api_key=os.environ["ATTESTO_API_KEY"])
ack = client.log_event(
type="ai.decision",
status="verified",
payload={
"model": "risk-classifier-v4",
"decision": "manual_review",
"policy_id": "policy-2026-01"
},
)
print(ack.id)
TypeScript:
import { AttestoClient } from "@attesto/sdk";
const client = new AttestoClient({
apiKey: process.env.ATTESTO_API_KEY!,
});
const ack = await client.logEvent({
type: "ai.decision",
status: "verified",
payload: {
model: "risk-classifier-v4",
decision: "manual_review",
policy_id: "policy-2026-01",
},
});
console.log(ack.id);
4. Verify the evidence
For v1, retrieve the proof for the event and submit it to
POST /v1/public/verify. For v2 Proofstream, use
POST /v2/verify with receipt, stream, checkpoint, anchor,
IVC, or bundle objects.
curl -X POST https://verify.attesto.eu/v2/verify \
-H "Content-Type: application/json" \
--data-binary @attesto-proofstream-object.json
5. Export a verifier bundle
When stream policy requirements are satisfied, create a bundle from the tenant dashboard or API. A recipient can verify the bundle without an Attesto login.
attesto verify bundle ./attesto-bundle.json
