> ## Documentation Index
> Fetch the complete documentation index at: https://docs.modo.link/llms.txt
> Use this file to discover all available pages before exploring further.

# RegisterAgent

> Register a new agent on the waiting list

Register an agent on the provider's waiting list. The request is signed with the agent's Ed25519 private key, proving ownership of the public key. After registration, poll [`GetOnboardingStatus`](/agentic-api/onboarding/get-onboarding-status) until a `multihash` is issued.

## Request

<ParamField path="public_key" type="string" required>
  Ed25519 public key of the agent (hex).
</ParamField>

<ParamField path="invite_code" type="string (optional)">
  Invite code, if the provider requires one.
</ParamField>

<ParamField path="email" type="string (optional)">
  Contact email.
</ParamField>

<ParamField path="agent_name" type="string (optional)">
  Human-readable agent name.
</ParamField>

<ParamField path="request_signature" type="MessageSignature" required>
  Ed25519 signature over the canonical request payload proving ownership of `public_key` — see [Authentication](/agentic-api/authentication#messagesignature).
</ParamField>

```proto theme={null}
message RegisterAgentRequest {
  string public_key = 1;
  optional string invite_code = 2;
  optional string email       = 3;
  optional string agent_name  = 4;
  MessageSignature request_signature = 30;
}
```

## Response

<ParamField path="success" type="bool">Whether registration succeeded.</ParamField>
<ParamField path="message" type="string">Human-readable status message.</ParamField>
<ParamField path="waiting_list_id" type="uint64">Position on the waiting list.</ParamField>
<ParamField path="status" type="OnboardingStatus">Initial onboarding status (e.g. `WAITING`).</ParamField>

## Next step

Poll [`GetOnboardingStatus`](/agentic-api/onboarding/get-onboarding-status) with the same `public_key` until it returns a `multihash` ready to sign.

**Onboarding sequence**: [GetAgentConfig](/agentic-api/onboarding/get-agent-config) → **RegisterAgent** → [GetOnboardingStatus](/agentic-api/onboarding/get-onboarding-status) → [SubmitOnboardingSignature](/agentic-api/onboarding/submit-onboarding-signature).
