---
title: "Claim a subscription key after on-chain payment"
method: POST
path: "/v1/subscribe/crypto"
tags: ["Onboarding"]
---

# Claim a subscription key after on-chain payment

`POST /v1/subscribe/crypto`

## Request

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

Requires 3 block confirmations and a credentialed RPC. The signer of the intent, the transaction sender and the payment sender must be the same wallet. A transaction hash can be redeemed exactly once.

## Request body

- object
  - `intentId` string, required
  - `signature` string, required
  - `txHash` string, required

## Response `200`

Payment verified and key provisioned

- IssuedKey
  - `status` string
  - `message` string
  - `apiKey` string: Returned exactly once for a new or recovered key. Storage uses a server-keyed HMAC-SHA-256 lookup index plus a separate randomly salted SHA-256 verifier; the plaintext key is not persisted. Paid keys can later be wallet-rotated; renewal keeps the current raw secret and omits this field.
  - `tier` string
  - `plan` Plan
    - `id` string
    - `label` string
    - `priceUsd` number, nullable
    - `monthlyCredits` integer, nullable: Hard cap per issuance-anchored 31-day access cycle. Never null for a purchasable plan.
    - `dailyCredits` integer, nullable
    - `burstPerMinute` integer, nullable
    - `sla` string, nullable
    - `purchasable` boolean
    - `description` string
    - `usdcBaseUnits` string, nullable
  - `expiresAt` string, date-time
  - `txHash` string
  - `renewed` boolean
  - `durationDays` 31 | 90 | 365

## Other responses

- `400`: Intent, amount, sender or finality check failed
- `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)
