---
title: "Create a free wallet proof for a manual purchase or private redelivery"
method: POST
path: "/v1/payments/challenge"
tags: ["Payments"]
---

# Create a free wallet proof for a manual purchase or private redelivery

`POST /v1/payments/challenge`

## Request

- Base URL: `https://agent.connskill.com` (the document declares no server; this is the origin it was published from)
- URL: `https://agent.connskill.com/v1/payments/challenge`
- Auth: none required

Bind one EOA wallet signature to the purpose, payment references, configured merchant, token, network, service, exact public POST URL and complete JSON body. Standard-x402 first purchases keep their existing payment flow. Both wallet-proof paths require a complete JSON body and only ref query parameters; resolve unsupported requests before paying. Private redelivery is free, requires a fresh proof for each attempt and only reads retained results. Missing results return 409 at the target request and require wallet support; no new provider order is created.

## Request body

- object
  - `purpose` 'purchase' | 'redelivery', required
  - `address` string, required
  - `request` object, required
    - `method` 'POST', required
    - `url` string, required: Exact public path including mount. Only ref query parameters are accepted; preserve their original order and percent-encoded bytes. Check this contract before paying.
    - `headers` object, required: The exact target payment-reference headers. Purchase requires only x-payment-tx. Redelivery may use a nonce-only base64 payload.authorization.nonce reference; no new spending authorization is needed.
      - `x-payment-tx` string
      - `payment-signature` string
      - `x-payment` string
    - `body` unknown, required

## Response `200`

Free challenge; no funds moved

## Other responses

- `400`: Malformed request or unsupported target
- `403`: Purpose not allowed for target
- `405`: Use POST
- `408`: Request body timed out
- `413`: Request too large
- `415`: Use uncompressed UTF-8 JSON
- `429`: Challenge rate limit
- `503`: Wallet authentication unavailable; no access granted

---

[API](https://skmtc.dev/connskill/apis/connskill-growth-services.md) · [All operations](https://skmtc.dev/connskill/apis/connskill-growth-services/llms.txt) · [OpenAPI document](https://skmtc.dev/connskill/apis/connskill-growth-services/revisions/aae873ea0805?raw)
