# PasskeyChallenge

> The PasskeyChallenge object in the Guv API.

## Fields

| Field | Type | Description |
| --- | --- | --- |
| `challenge_id` * | string |  |
| `expires_at` * | string (date-time) |  |
| `public_key_creation` | [WebAuthnCreationOptions](/docs/api/objects/web-authn-creation-options/) |  |
| `public_key_request` | [WebAuthnRequestOptions](/docs/api/objects/web-authn-request-options/) |  |

\* always present

## Example

```json
{
  "challenge_id": "string",
  "expires_at": "2026-10-22T13:05:00Z",
  "public_key_creation": {
    "challenge": "string",
    "rp": {
      "id": "guv.dev",
      "name": "Guv"
    },
    "user": {
      "id": "string",
      "name": "string",
      "displayName": "string"
    },
    "pubKeyCredParams": [
      {}
    ],
    "timeout": 1,
    "authenticatorSelection": {},
    "attestation": "string",
    "excludeCredentials": [
      {}
    ]
  },
  "public_key_request": {
    "challenge": "string",
    "rpId": "string",
    "timeout": 1,
    "userVerification": "required",
    "allowCredentials": [
      {}
    ]
  }
}
```

## Used by

- [Start registering a passkey (sign-up, or add a passkey when signed in)](/docs/api/auth/#start-registering-a-passkey-sign-up-or-add-a-passkey-when-signed-in)
- [Start signing in with a passkey](/docs/api/auth/#start-signing-in-with-a-passkey)
- [Start a passkey assertion for a sensitive action](/docs/api/auth/#start-a-passkey-assertion-for-a-sensitive-action)
