Show JSON
{
"protocolVersion": "0.3.0",
"name": "eudr.dev",
"description": "Compiles EU Deforestation Regulation Annex II Due Diligence Statements from operator + supplier + plot geolocation. Built on emem.dev (content-addressed, ed25519-signed Earth observation). Receipts verifiable offline. Ingests scenarios from CSV and GS1 EPCIS 2.0; exports receipts to the official TRACES NT v2 XML / SOAP shape.",
"author": "Vortx · emem.dev",
"wellKnownURI": "https://eudr.dev/.well-known/agent-card.json",
"url": "https://eudr.dev/",
"version": "0.3.0",
"provider": {
"organization": "Vortx · emem.dev",
"url": "https://emem.dev/"
},
"documentationUrl": "https://eudr.dev/docs",
"iconUrl": "https://eudr.dev/console/assets/icon-192.png",
"supportsAuthenticatedExtendedCard": false,
"security": [
{
"oauth2": [
"eudr:read"
]
},
{
"apiKey": []
}
],
"securitySchemes": {
"apiKey": {
"type": "http",
"scheme": "bearer",
"description": "A bearer API key from the operator's dashboard. The honest instrument for a headless agent, which has no user-agent to redirect and for which a browser flow is not merely awkward but structurally uncompletable."
},
"oauth2": {
"type": "oauth2",
"flows": {
"authorizationCode": {
"scopes": {
"eudr:read": "Check plots, read reference data, verify receipts, read your own statements",
"eudr:write": "Compile and sign an Annex II Due Diligence Statement"
},
"tokenUrl": "https://eudr.dev/oauth/token",
"authorizationUrl": "https://eudr.dev/oauth/authorize"
}
},
"description": "OAuth 2.1 with PKCE against this service's own authorization server. No third-party identity provider is involved. `eudr:read` covers checks and reading your own records; `eudr:write` is needed to compile and sign a statement."
}
},
"capabilities": {
"streaming": true,
"pushNotifications": false,
"stateTransitionHistory": true,
"extensions": null
},
"defaultInputModes": [
"application/json"
],
"defaultOutputModes": [
"application/json",
"application/dds+json",
"text/event-stream"
],
"skills": [
{
"id": "dds-compile",
"name": "Compile a Due Diligence Statement",
"description": "Compile an Annex II Due Diligence Statement from a scenario (operator + supplier + product + plot geolocation). Runs the 7-stage pipeline: geo → forest → legality → tenure → risk → dds → settle. Forest stage is polygon-fully-sampled (max 51 200 cells per plot at ~91 m² per cell; smallholder plots get ~110 cells, 30-ha plots ~3 000) so the verdict is per-cell-counted, not area-projected. Returns a signed Annex-II-shaped document plus the chain of ed25519-signed source CIDs from emem.dev, four content-addressed manifest CIDs (algorithms_cid, bands_cid, schema_cid, registry_cid) for offline replay, and the upstream-signed statement_of_compliance attributing the operator block (Annex II §1). The printable report additionally surfaces nine emem-algorithm-backed forensics panels: foundation-encoder change consensus since 2020, cross-modal S1⨂S2 consistency, wildfire & burn history, wetland binary (Art. 2(13)), EO harvest-date detection, land-degradation trend, canopy chlorophyll (NDRE), soil moisture (SAR), soil organic carbon (S2+DEM).",
"tags": [
"eudr",
"compliance",
"annex_ii"
],
"examples": [
"Compile the Annex II statement for this cocoa consignment from Soubré.",
"I have the plot boundaries and the supplier details — produce the filing document.",
"Build a signed due diligence statement I can hand to my importer."
],
"inputModes": [
"application/json"
],
"outputModes": [
"application/json",
"application/dds+json"
]
},
{
"id": "plot-check",
"name": "Check a plot for deforestation since the cut-off",
"description": "Per-plot deforestation verdict via emem.dev /v1/eudr_dds — Hansen GFC + ESA WorldCover, optionally cross-checked against the JRC GFC2020 v3 baseline. Returns a per-cell verdict matrix with fact CIDs. Subset of `dds.compile` — runs only the forest stage.",
"tags": [
"eudr",
"deforestation"
],
"examples": [
"Was there forest loss on this polygon after 31 December 2020?",
"Check these four coffee plots in Ethiopia against the EUDR cut-off.",
"Is this land deforestation-free under Article 3(a)?"
],
"inputModes": [
"application/json"
],
"outputModes": [
"application/json"
]
},
{
"id": "legality",
"name": "Look up a country's EUDR risk tier",
"description": "Country-tier + supplier-identifier verification against Commission Implementing Regulation (EU) 2025/1093. Decides whether Article 13 simplified due diligence applies. The baseline module does not verify tenure, permits, or FPIC — plug a partner provider via the `LegalityProvider` trait for those.",
"tags": [
"eudr",
"legality"
],
"examples": [
"What risk tier is Côte d'Ivoire under the country benchmarking?",
"Does simplified due diligence apply to timber from Romania?",
"Which countries on my supplier list are classed high risk?"
],
"inputModes": [
"application/json"
],
"outputModes": [
"application/json"
]
},
{
"id": "verify-receipt",
"name": "Verify a signed statement offline",
"description": "Re-derive the CID and verify the ed25519 signature on a receipt issued by this agent. Runs offline; the only network call needed is a one-time fetch of the agent's pubkey.",
"tags": [
"eudr",
"audit"
],
"examples": [
"Check that this receipt CID really was signed by eudr.dev.",
"A supplier sent me a due diligence statement — is the signature genuine?",
"Verify this statement without trusting the party who gave it to me."
],
"inputModes": [
"application/json"
],
"outputModes": [
"application/json"
]
},
{
"id": "traces-export",
"name": "Export a statement as TRACES NT submission XML",
"description": "Convert a signed DDS receipt into the official TRACES NT v2 XML shape (namespace http://ec.europa.eu/tracesnt/certificate/eudr/submission/v2) or into a complete SOAP+WS-Security envelope ready to POST to the EU Information System. Accepts an activity type (IMPORT, EXPORT, DOMESTIC, TRADE). The CLI command `eudr export-traces` is the offline path.",
"tags": [
"eudr",
"submission",
"traces"
],
"examples": [
"Give me the TRACES NT XML for this statement.",
"Export the filing document in the official EU Information System format."
],
"inputModes": [
"application/json"
],
"outputModes": [
"application/xml"
]
},
{
"id": "monitor-subscribe",
"name": "Watch a plot for new forest loss",
"description": "Subscribe to continuous monitoring on a filed plot. The agent re-runs the deforestation check on a cadence (default monthly) and emits a SignedReceipt-shaped event when a new Hansen loss year appears on any sampled cell post-cut-off. Re-attestation under Art. 8(2). Pricing is per re-check; the first check after Hansen's annual update is free.",
"tags": [
"eudr",
"monitoring",
"art-8-2"
],
"examples": [
"Tell me if anything changes on this plot after I have filed.",
"Keep watching these plots and alert me on new loss."
],
"inputModes": [
"application/json"
],
"outputModes": [
"application/json"
]
}
],
"conformance": true,
"conformance_errors": null,
"homepage": null,
"repository": null,
"license": null,
"pricing": null,
"contact": null,
"id": "43355869-ed4f-4dd4-8ac3-c1773fc61823",
"category": "legal-compliance",
"category_secondary": null
}