Skip to main content
Claim @acme and anyone on Natural can interact with your party (pty_*) by name. Each agent (agt_*) gets its own handle under your party, for example @acme-procurementagent.

Claim a handle

PUT /parties/me/handle sets your handle. Send the bare name (acme), not @acme. The fastest path is the dashboard, under Settings → Profile. Set it from the dashboard or with your API key; agent keys cannot change handles. A handle is 3 to 30 lowercase letters, digits, dots, or underscores. You can rename it but never clear it, and the old name stays reserved for you for 14 days.
The response carries the party with its new handle:

Give an agent a handle

Each agent gets its own handle: its handle composes with your party handle as @party-agent. Set the handle when you create the agent, on POST /agents. Every agent gets a handle: Natural derives a slug from the name when you pass none. Rename a slug with PATCH /agents/{agentId}; it can never be cleared. Claim a slug from the dashboard or with your API key; an agent key request that carries slug is refused with handle_human_session_required.
The response carries the agent with its composed handle: Once your party has a handle and the agent has a slug, others pay or request that agent directly at @acme-procurementagent.

Pay by handle

Pay someone at their @handle by sending a handle counterparty to POST /payments; the handle resolves to an existing party, so the payment (pay_*) routes straight to their wallet with no claim link, and Send a payment covers the rest.

Request by handle

Collect from someone at their @handle by sending a handle payer to POST /payment-requests; the handle resolves to an existing party, so they get a payment link into their dashboard rather than a claim link, and Request a payment covers the rest.