<!-- Log entry 2 · testnet -->
*Markdown view of <https://support.xe.network/log/2>. The page is the record; this is the same page for reading.*

Log entry

# 2 · user.created

When
:   2026-10-29 01:21 UTC (1793236910095046365 ns)

Actor
:   cli

Public
:   yes

Hash
:   29929a0588137da77745c3856b6c165d6c5674119aecc30290437e28ee8e581e

Previous
:   [68b4be880e240385e517bbb94fdedea3ec1dee295765ced70c9c91dd0c54f5be](https://support.xe.network/log/1)

Signer
:   d1cff073d96d417df2887b5eb777443f028b305b84a9b199678b3852ac5e8092

Signature
:   57a344891c44ec76013344943faea717931548ea84055e01c41cf41776455dc5ef5f7e9588c2cf526e4dfd4b6173839e8eb4d000479c62b3b207e4de4a18900d

### Payload

```
{
  "email": "cto@xe.network",
  "roles": [
    "admin",
    "reviewer",
    "tier",
    "treasurer"
  ],
  "user": 1
}
```

To verify: `sha256("xe-desk/event/v1\0" ‖ canonical_json({index, ts, kind, actor, payload, prev_hash}))` must equal the hash, and the signature must verify over the hash bytes under the signer's Ed25519 key. [JSON](https://support.xe.network/v1/log/2) · [next](https://support.xe.network/log/3)
