# social.coves.actor.signup

> Published by [coves.social](https://lexicon.garden/identity/did:web:coves.social)

✓ This is the authoritative definition for this NSID.

## Links

- [View on Lexicon Garden](https://lexicon.garden/lexicon/did:web:coves.social/social.coves.actor.signup)
- [Documentation](https://lexicon.garden/lexicon/did:web:coves.social/social.coves.actor.signup/docs)
- [Examples](https://lexicon.garden/lexicon/did:web:coves.social/social.coves.actor.signup/examples)

## Definitions

### `social.coves.actor.signup`

**Type**: `procedure`

Register a new account on the Coves instance. Creates account on PDS and indexes in AppView.

#### Input

**Encoding**: `application/json`

| Property | Type | Required | Description |
|----------|------|----------|-------------|
| `email` | `string` | Yes | Email address for account recovery and notifications |
| `handle` | `string` (handle) | Yes | Requested handle for the account (e.g., alice.coves.dev) |
| `password` | `string` | Yes | Account password (must meet strength requirements) |
| `inviteCode` | `string` | No | Invite code (required if instance has invite-only registration) |

#### Output

**Encoding**: `application/json`

| Property | Type | Required | Description |
|----------|------|----------|-------------|
| `did` | `string` (did) | Yes | The DID of the newly created account |
| `handle` | `string` (handle) | Yes | The handle of the newly created account |
| `accessJwt` | `string` | Yes | Access token for authenticated requests |
| `refreshJwt` | `string` | Yes | Refresh token for obtaining new access tokens |

#### Errors

- **InvalidHandle**: Handle does not meet format requirements
- **HandleNotAvailable**: The requested handle is already taken
- **InvalidInviteCode**: The provided invite code is invalid or expired
- **InvalidEmail**: The email address is invalid
- **WeakPassword**: Password does not meet strength requirements

## Raw Schema

```json
{
  "id": "social.coves.actor.signup",
  "defs": {
    "main": {
      "type": "procedure",
      "input": {
        "schema": {
          "type": "object",
          "required": [
            "handle",
            "email",
            "password"
          ],
          "properties": {
            "email": {
              "type": "string",
              "maxLength": 320,
              "description": "Email address for account recovery and notifications"
            },
            "handle": {
              "type": "string",
              "format": "handle",
              "description": "Requested handle for the account (e.g., alice.coves.dev)"
            },
            "password": {
              "type": "string",
              "maxLength": 512,
              "description": "Account password (must meet strength requirements)"
            },
            "inviteCode": {
              "type": "string",
              "maxLength": 128,
              "description": "Invite code (required if instance has invite-only registration)"
            }
          }
        },
        "encoding": "application/json"
      },
      "errors": [
        {
          "name": "InvalidHandle",
          "description": "Handle does not meet format requirements"
        },
        {
          "name": "HandleNotAvailable",
          "description": "The requested handle is already taken"
        },
        {
          "name": "InvalidInviteCode",
          "description": "The provided invite code is invalid or expired"
        },
        {
          "name": "InvalidEmail",
          "description": "The email address is invalid"
        },
        {
          "name": "WeakPassword",
          "description": "Password does not meet strength requirements"
        }
      ],
      "output": {
        "schema": {
          "type": "object",
          "required": [
            "did",
            "handle",
            "accessJwt",
            "refreshJwt"
          ],
          "properties": {
            "did": {
              "type": "string",
              "format": "did",
              "description": "The DID of the newly created account"
            },
            "handle": {
              "type": "string",
              "format": "handle",
              "description": "The handle of the newly created account"
            },
            "accessJwt": {
              "type": "string",
              "maxLength": 8192,
              "description": "Access token for authenticated requests"
            },
            "refreshJwt": {
              "type": "string",
              "maxLength": 8192,
              "description": "Refresh token for obtaining new access tokens"
            }
          }
        },
        "encoding": "application/json"
      },
      "description": "Register a new account on the Coves instance. Creates account on PDS and indexes in AppView."
    }
  },
  "$type": "com.atproto.lexicon.schema",
  "lexicon": 1
}
```
