ARD catalog
The ARD catalog (Agentic Resource Discovery, ai-catalog.json) is a signed index of your store’s agent-facing endpoints: your agent card and your MCP server. Agents that support ARD read it to find those endpoints and confirm they belong to your domain. Sill publishes one for every verified site; there is nothing to configure.
Find your catalog
Section titled “Find your catalog”GET https://edge.sill.so/v1/catalog/{site_key}.jsonCopy the exact URL from Settings → Install → Endpoint → Catalog URL, or click View catalog to open it. Your agent card links to it in catalog_endpoint, and the script tag adds a <link rel="ai-catalog"> tag to your pages.
Your signed catalog URL, ready to copy or open.
A Cloudflare Worker or WordPress plugin install also answers /.well-known/ai-catalog.json on your own domain, so an agent that only looks at the standard path still finds your signed catalog. /ai-catalog.json answers at the same place for older clients, and /.well-known/api-catalog carries an RFC 9727 linkset that points to the catalog, your agent card and your MCP server. The embed script alone cannot serve files on your domain, so a script-tag-only site is read through the version on edge.sill.so. See What each install covers.
What the catalog contains
Section titled “What the catalog contains”{ "specVersion": "1.0", "host": { "displayName": "Northwind Coffee Co.", "identifier": "did:web:northwind-coffee.example", "trustManifest": { "identity": "did:web:northwind-coffee.example", "identityType": "did", "signature": "eyJhbGciOiJFZERTQSIs…..…" } }, "entries": [ { "identifier": "urn:ai:northwind-coffee.example:agent:storefront", "displayName": "Northwind Coffee Co. storefront agent", "type": "application/a2a-agent-card+json", "url": "https://edge.sill.so/v1/agent-card/SITE_KEY.json", "capabilities": ["browse_catalog", "check_availability", "order_status"], "updatedAt": "2026-10-01T15:00:00.000Z", "trustManifest": { "identity": "did:web:northwind-coffee.example", "identityType": "did", "provenance": [ { "relation": "publishedFrom", "sourceId": "urn:ai:sill.so:platform:catalog-publisher" } ], "signature": "eyJhbGciOiJFZERTQSIs…..…" } }, { "identifier": "urn:ai:northwind-coffee.example:server:skills", "displayName": "Northwind Coffee Co. MCP server", "type": "application/mcp-server+json", "url": "https://edge.sill.so/v1/mcp/SITE_KEY", "capabilities": ["browse_catalog", "check_availability", "order_status"], "updatedAt": "2026-10-01T15:00:00.000Z", "trustManifest": { "…": "same shape as above" } } ]}host.identifieris your verified domain as adid:webidentifier.entries[]has two entries: your agent card and your MCP server, each with the skill ids it offers incapabilities. These are the same skills your agent card and MCPtools/listlist; a site with no live skills has an emptycapabilitieslist.Cache-Control: public, max-age=60. A site whose domain is not verified yet returns404.
What the signature covers
Section titled “What the signature covers”Each trustManifest (the host’s and each entry’s) carries its own signature: a detached JWS in compact form (header..signature, empty middle part), made with ed25519 over the JCS-canonical (RFC 8785) bytes of that trust manifest without its signature field. The JWS header carries alg: EdDSA, typ: ard-catalog+jcs and a kid that resolves in Sill’s public JWKS:
GET https://edge.sill.so/.well-known/jwks.jsonIt is the same key that signs your agent card. The signature covers identity, identityType and provenance. The other entry fields (url, capabilities, displayName, description, updatedAt) are not inside the signature. To check the endpoints’ content itself, verify the signed agent card the catalog points to.
For the step-by-step check, see Verify a signature.