wkdomains RFC / Draft / 2026-05-01

Account creation policy for web agents

The web has files for crawling, context, security contacts, OAuth metadata, sitemaps, and APIs. It still lacks a common place for a domain to say when an AI agent may create an account for a real human.

01

The current files do not answer this

robots.txt tells crawlers where they may fetch pages. llms.txt can explain context. Sitemaps enumerate URLs. OpenAPI and MCP can expose callable interfaces. Security files point to responsible contacts. None of these is the right standard place to say: an agent may create a trial account, only if it is acting for a verified human, using transparent identity, and stopping before payment or public posting.

That gap matters because account creation is not just browsing. It changes state, trips abuse systems, affects product metrics, and can bind a user to terms. In 2026, agents increasingly act as delegated user agents, but many websites can only see the same traffic pattern as spam automation.

02

wkdomains proposed convention

A domain SHOULD publish a broader experimental agent policy manifest at /.well-known/agent-policy.json. Account creation belongs inside a scoped account_creation section, not in a standalone file that will fragment when the next edge case appears. The manifest is not access control, legal permission by itself, or a way around anti-abuse checks. It is a machine-readable policy signal that lets agents choose between public exploration, declared automation, user-delegated signup, and stop.

Canonical/.well-known/agent-policy.json
Sectionsections.account_creation
Recommended links/llms.txt
Policy namewkdomains.agent-policy.v1
03

Draft JSON shape

The core idea is permission tiers, not a blanket yes/no. A site can allow public curiosity, point agents to official sandboxes or APIs, conditionally allow delegated signup, split routine terms checkboxes from material liability, and define hard stop conditions.

{
  "$schema": "https://wkdomains.com/schemas/agent-policy-v1.json",
  "policy": "wkdomains.agent-policy.v1",
  "domain": "example.com",
  "canonical": "https://example.com/.well-known/agent-policy.json",
  "sections": {
    "account_creation": {
      "default_mode": "public_exploration",
      "modes": {
        "public_exploration": {
          "allowed": true,
          "actions": [
            "read_public_pages",
            "follow_internal_links",
            "read_docs",
            "inspect_pricing",
            "identify_auth_wall"
          ]
        },
        "declared_automation": {
          "allowed_when": [
            "public_api",
            "sandbox",
            "test_mode",
            "mcp_server",
            "documented_agent_flow"
          ]
        },
        "user_delegated_signup": {
          "allowed": "conditional",
          "requires": [
            "verified_human_intent",
            "transparent_agent_identity",
            "attributable_email",
            "one_account_per_user_per_domain",
            "audit_log_available_to_user"
          ],
          "email_pattern_examples": [
            "user+agent-{domain}@example.org",
            "agent-{user}-{domain}@example.org"
          ],
          "optional_trust_signals": [
            "signed_capability_history",
            "refusal_history_endpoint",
            "prior_domain_interaction_receipts",
            "consistent_behavior_across_services"
          ],
          "admission_receipt": {
            "required": true,
            "fields": [
              "policy_url",
              "policy_version",
              "human_principal",
              "agent_id",
              "task_scope",
              "identity_fields_submitted",
              "stop_conditions_evaluated",
              "terms_surface",
              "result",
              "timestamp"
            ]
          }
        }
      },
      "terms_acceptance": {
        "routine_checkbox": {
          "allowed": "with_disclosure",
          "requires_log_event": true
        },
        "material_liability_or_business_terms": {
          "allowed": false,
          "requires_human_confirmation": true
        }
      },
      "audit_log": {
        "audiences": {
          "human": ["what_was_clicked", "terms_url", "account_identifier"],
          "platform": ["agent_id", "rate_limit_bucket", "policy_url"],
          "regulator": ["retention_policy", "delegation_record", "material_terms"]
        }
      },
      "stop_conditions": [
        "captcha",
        "bot_detection_challenge",
        "terms_prohibit_automated_accounts",
        "fake_personal_identity_required",
        "mailbox_access_required_without_delegation",
        "account_recovery_flow",
        "step_up_verification_after_signup",
        "payment_method_required",
        "phone_verification_required",
        "public_posting_or_messaging",
        "ongoing_obligation_without_human_acceptance",
        "material_liability_acceptance",
        "unknown_terms_impact"
      ]
    }
  },
  "contact": {
    "policy": "mailto:agents@example.com",
    "abuse": "mailto:abuse@example.com"
  },
  "expires": "2026-11-01"
}
04

Agent processing rules

No file

Default to public exploration. Read, summarize, and ask questions, but do not automate signup.

Explicit allow

Proceed only within the named section, mode, and limits. Record the manifest URL and acting human.

Routine checkbox

A low-risk site checkbox can be allowed with disclosure if the policy says so and the action is logged.

Material terms

Stop when terms create liability, payment, business authority, public posting, or other binding exposure.

05

Open questions for bots and humans

  1. Is /.well-known/agent-policy.json the right manifest name, or should this become a section inside an existing agent card?
  2. How should a site verify that an agent is acting for a real human without forcing every site to run OAuth?
  3. Which audit trail is required for each audience: human, platform, site owner, regulator, or payment network?
  4. Should CAPTCHAs always mean stop, or can a human complete the challenge and hand control back to the agent?
  5. How should account creation policy differ from account recovery, phone checks, mailbox access, and other step-up verification flows?
  6. How should sites express rate limits for delegated signup without making the file an abuse playbook?
  7. What exactly makes terms material enough that an agent must stop instead of accepting with disclosure?
06

Commentary and change notes

This RFC is meant to invite pushback from bots and humans. Substantive comments can be added here with attribution, links, and the concrete changes they caused.