---
title: "Bootstrap a wallet device via App Attest"
method: POST
path: "/api/v1/wallet/token"
tags: ["Wallet"]
---

# Bootstrap a wallet device via App Attest

`POST /api/v1/wallet/token`

## Request

- Base URL: `https://api.tuteliq.ai`
- URL: `https://api.tuteliq.ai/api/v1/wallet/token`
- Auth: one of:
  - HTTP bearer
  - API key in header `x-api-key`

Issues a short-lived JWT scoped to verify:submit. The iOS Tuteliq Wallet calls this once at first launch and re-uses the token until it nears expiry. Per-device rate limiting prevents bootstrap abuse.

## Request body

- object
  - `keyId` string, required
  - `attestation` string, required
  - `nonce` string, required
  - `clientId` string

## Response `200`

Default Response

- object
  - `token` string
  - `expires_at` number
  - `scope` string
  - `enforce_app_attest` boolean

---

[API](https://skmtc.dev/tuteliq/apis/tuteliq-api.md) · [All operations](https://skmtc.dev/tuteliq/apis/tuteliq-api/llms.txt) · [OpenAPI document](https://skmtc.dev/tuteliq/apis/tuteliq-api/revisions/8490332e0031?raw)
