# computer.haha.san.hub

> Published by [san.haha.computer](https://lexicon.garden/identity/did:plc:pyp36qey354yxslrcavwzqja)

✓ This is the authoritative definition for this NSID.

## Links

- [View on Lexicon Garden](https://lexicon.garden/lexicon/did:plc:pyp36qey354yxslrcavwzqja/computer.haha.san.hub)
- [Documentation](https://lexicon.garden/lexicon/did:plc:pyp36qey354yxslrcavwzqja/computer.haha.san.hub/docs)
- [Examples](https://lexicon.garden/lexicon/did:plc:pyp36qey354yxslrcavwzqja/computer.haha.san.hub/examples)

## Definitions

### `computer.haha.san.hub`

**Type**: `record`

Declares the author's hub: where it is, and which key speaks for it. One record does discovery, authentication and revocation — update or delete it and the old key is dead.

**Key**: `literal:self`

| Property | Type | Required | Description |
|----------|------|----------|-------------|
| `endpoint` | `string` (uri) | Yes | Base URL of the hub. Where other hubs send federated requests. |
| `createdAt` | `string` (datetime) | Yes |  |
| `publicKey` | `object` | Yes | Public half of the hub's federation signing key, as a JWK. |
| `updatedAt` | `string` (datetime) | Yes |  |

## Raw Schema

```json
{
  "id": "computer.haha.san.hub",
  "defs": {
    "main": {
      "key": "literal:self",
      "type": "record",
      "record": {
        "type": "object",
        "required": [
          "endpoint",
          "publicKey",
          "createdAt",
          "updatedAt"
        ],
        "properties": {
          "endpoint": {
            "type": "string",
            "format": "uri",
            "description": "Base URL of the hub. Where other hubs send federated requests."
          },
          "createdAt": {
            "type": "string",
            "format": "datetime"
          },
          "publicKey": {
            "type": "object",
            "required": [
              "kty",
              "crv",
              "x",
              "y",
              "kid",
              "alg",
              "use"
            ],
            "properties": {
              "x": {
                "type": "string"
              },
              "y": {
                "type": "string"
              },
              "alg": {
                "type": "string"
              },
              "crv": {
                "type": "string"
              },
              "kid": {
                "type": "string"
              },
              "kty": {
                "type": "string"
              },
              "use": {
                "type": "string"
              }
            },
            "description": "Public half of the hub's federation signing key, as a JWK."
          },
          "updatedAt": {
            "type": "string",
            "format": "datetime"
          }
        }
      },
      "description": "Declares the author's hub: where it is, and which key speaks for it. One record does discovery, authentication and revocation — update or delete it and the old key is dead."
    }
  },
  "$type": "com.atproto.lexicon.schema",
  "lexicon": 1
}
```
