---
title: "Request a wallet challenge for a free key"
method: POST
path: "/v1/subscribe/free/challenge"
tags: ["Onboarding"]
---

# Request a wallet challenge for a free key

`POST /v1/subscribe/free/challenge`

## Request

- Base URL: `https://api.m2msentinel.com`
- URL: `https://api.m2msentinel.com/v1/subscribe/free/challenge`
- Auth: none required

## Request body

- object
  - `userWallet` string, required

## Response `200`

Challenge issued

- IntentEnvelope
  - `status` string
  - `intent` object
    - `id` string
    - `tier` string
    - `userWallet` string
    - `durationDays` 31 | 90 | 365: Present on paid purchase intents.
    - `renewExistingKey` boolean: Present on paid purchase intents; true when the payment extends the presented key.
    - `expiresAt` string, date-time
    - `messageToSign` string
  - `next` string[]

## Other responses

- `400`: Malformed input
- `429`: A plan burst limit or bounded public/intent retry limit was exceeded
- `503`: A required dependency is unavailable; the request failed closed

---

[API](https://skmtc.dev/m2msentinel/apis/m2m-sentinel-base-contract-capability-checks-before-you-sign.md) · [All operations](https://skmtc.dev/m2msentinel/apis/m2m-sentinel-base-contract-capability-checks-before-you-sign/llms.txt) · [OpenAPI document](https://skmtc.dev/m2msentinel/apis/m2m-sentinel-base-contract-capability-checks-before-you-sign/revisions/2dadd4e704fd?raw)
