{
  "_description": "POST /api/hoster/claim — a hoster claims attribution for a model. Server verifies the Ed25519 attestation_signature over the canonical string 'host:' || model_id before inserting. On success returns hoster_claim_id. Verification status begins as NULL (unverified) until the creator counter-signs or OMLA compliance approves.",
  "_auth": "public (no Supabase session required); signature is the auth",
  "_rate_limit": "3 claims per hour per IP, 1 per hour per ed25519_pubkey",

  "request": {
    "model_id": "11111111-1111-4111-8111-111111111111",
    "ed25519_pubkey": "base64-32-bytes",
    "display_name": "ExampleHost",
    "contact_email": "hoster@example.com",
    "region": "US",
    "endpoint_hint": "https://examplehost.com/models/examplelm-7b",
    "attestation_signature": "base64-64-bytes-over-host:<model_id>"
  },

  "response_201": {
    "hoster_claim_id": "aaaaaaaa-aaaa-4aaa-8aaa-aaaaaaaaaaaa",
    "verified": false,
    "verification_required_by": ["creator_countersign", "or", "omla_review"],
    "next_steps": {
      "report_volume": "POST /api/hoster/report with this hoster_claim_id at quarter end",
      "check_status":  "GET /api/hoster/balance?hoster_claim_id=..."
    }
  },

  "response_400_bad_signature": {
    "error": "attestation_signature did not verify against provided ed25519_pubkey over 'host:<model_id>'",
    "code": "HOSTER_BAD_SIGNATURE"
  },

  "response_409_duplicate": {
    "error": "this ed25519_pubkey has already claimed this model_id",
    "code": "HOSTER_DUPLICATE_CLAIM",
    "existing_claim_id": "aaaaaaaa-aaaa-4aaa-8aaa-aaaaaaaaaaaa"
  }
}
