A set of open specifications for machine-readable governance discovery by APIs, AI agents, MCP servers, wallets, and autonomous software.
Traditional Terms of Service mechanisms assume a human user visiting a website. In agent-driven environments, that assumption increasingly fails:
Historically: Human → Browser → Website
Increasingly: Human → Agent → API
Services need a standardized way to communicate governance information — Terms of Service, Acceptable Use Policies, Privacy Policies, Compliance Policies, and abuse contacts — even when the human never directly interacts with the service.
AGD is not primarily a legal project. The legal benefits are a side effect. The primary goal is interoperability between autonomous systems.
Each specification is versioned independently.
| Specification | Status | Description |
|---|---|---|
| AGD Core | Draft 1.0 | Machine-readable governance discovery via /.well-known/api-governance |
| AGD Link Relations | Draft 1.0 | Standardized HTTP Link relations for governance documents |
| AGD Signed Acceptance | Draft 1.0 | Cryptographic acknowledgment of governance documents (ERC-191/712) |
Serve JSON at /.well-known/api-governance:
GET /.well-known/api-governance HTTP/1.1
Host: api.example.com{
"version": "1.0",
"operator": {
"name": "Example Corp",
"website": "https://example.com"
},
"termsOfService": "https://example.com/terms",
"acceptableUsePolicy": "https://example.com/aup",
"privacyPolicy": "https://example.com/privacy",
"compliancePolicy": "https://example.com/compliance",
"jurisdiction": "California, USA",
"contact": {
"abuse": "abuse@example.com",
"legal": "legal@example.com"
}
}See examples/api-governance.json and validate against schemas/api-governance.schema.json.
Link: <https://example.com/terms>; rel="terms-of-service"
Link: <https://example.com/aup>; rel="acceptable-use-policy"
Link: <https://example.com/privacy>; rel="privacy-policy"
Link: <https://example.com/compliance>; rel="compliance-policy"See examples/link-headers.http.
Clients cryptographically acknowledge governance versions using ERC-191 or ERC-712. See docs/agd-signed-acceptance.md and examples/erc712-acceptance.json.
| Platform | Location |
|---|---|
| Express.js middleware | reference/express-middleware/ |
| nginx | reference/nginx/ |
| Cloudflare Workers | reference/cloudflare-workers/ |
├── README.md
├── docs/
│ ├── agd-core.md
│ ├── agd-link-relations.md
│ ├── agd-signed-acceptance.md
│ └── roadmap.md
├── examples/
│ ├── api-governance.json
│ ├── link-headers.http
│ └── erc712-acceptance.json
├── schemas/
│ └── api-governance.schema.json
└── reference/
├── express-middleware/
├── nginx/
└── cloudflare-workers/
AGD follows the same philosophy as established discovery mechanisms:
- OpenID Discovery
- OAuth Authorization Server Metadata
- security.txt (RFC 9116)
- WebFinger (RFC 7033)
- robots.txt
Simple JSON. Human-readable URLs. Machine-readable metadata. Compatible with agents and APIs.
See docs/roadmap.md for the adoption strategy and path toward formal standardization.
This project welcomes feedback, implementations, and adoption stories. Open an issue or pull request on GitHub.