# Net Protocol Subdomain Claim

> Net Protocol Subdomain Claim is a paid API for AI agents from netprotocol.app, paid per call via x402, $0.24/call, status unknown (last checked 2026-09-14).

Claims and registers a leased subdomain under .hostedon.net, pointing it to a specified target for a configurable duration.

## Facts

- Endpoint: POST https://netprotocol.app/api/subdomains/v1/claim
- Price: $0.24/call
- Payment: x402
- Status: unknown
- Last checked: 2026-09-14
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/net-protocol-subdomain-claim-b4524329
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_3plXPlGfZDuWvehvkW5ex

Status and success rate cover calls made through Zero and Zero's own probes. Third-party monitors may report differently.

## How to call it through Zero

Zero handles the 402 payment challenge and records the run. With the Zero CLI installed (`npm i -g @zeroxyz/cli`):

```sh
zero fetch --capability net-protocol-subdomain-claim-b4524329 -d '<json body>'
```

Example prompt: Claim the subdomain 'myproject' under hostedon.net and point it to https://myproject.example.com for 48 hours.

## When to prefer this

Choose this endpoint when you need a quick, cheap, temporary subdomain under hostedon.net without going through traditional DNS registrars or long-term commitments. It is ideal for ephemeral infrastructure (staging, demos, hackathons), onchain-native apps that want a human-readable hostname, or agents that need to programmatically provision and expire subdomains on demand. Prefer alternatives if you need a permanent domain registration, a TLD other than .hostedon.net, or DNSSEC/advanced DNS record types.

## Known failure modes

- Subdomain name already taken or not available — conflict error returned
- Invalid or missing required fields (name or target) — validation error
- Lease duration exceeds maximum of 1,209,600 seconds (2 weeks) — rejected
- Insufficient payment / payment not settled via x402 — authorization failure
- Target URL malformed or unparseable — input validation error

## How this service works

The onchain data layer

## Output

Returns the fully qualified hostname (e.g. myproject.hostedon.net) and a registration object containing the subdomain name, owner wallet address (lowercased 0x), the target it points to, the unix timestamp when the lease was registered, and the unix timestamp when the lease expires (paidUntil).

## Request schema (JSON Schema)

```json
{
 "type": "object",
 "required": [
  "name",
  "target"
 ],
 "properties": {
  "name": {
   "type": "string",
   "description": "subdomain label; resolves at <name>.hostedon.net"
  },
  "target": {
   "type": "string",
   "description": "where the subdomain points"
  },
  "durationSeconds": {
   "type": "integer",
   "description": "lease length in seconds; defaults to 86400 (24h), max 1209600 (2 weeks). Price is $0.01/hour."
  }
 }
}
```

## Response schema (JSON Schema)

```json
{
 "type": "object",
 "required": [
  "hostname",
  "registration"
 ],
 "properties": {
  "hostname": {
   "type": "string",
   "description": "<name>.hostedon.net"
  },
  "registration": {
   "type": "object",
   "required": [
    "name",
    "owner",
    "paidUntil",
    "target"
   ],
   "properties": {
    "name": {
     "type": "string"
    },
    "epoch": {
     "type": "integer"
    },
    "owner": {
     "type": "string",
     "description": "owner wallet, lowercased 0x"
    },
    "target": {
     "type": "object"
    },
    "paidUntil": {
     "type": "integer",
     "description": "unix seconds the lease expires"
    },
    "registeredAt": {
     "type": "integer"
    }
   }
  }
 }
}
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/net-protocol-subdomain-claim-b4524329/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from netprotocol.app](https://www.zero.xyz/host/netprotocol.app/llms.txt)
