---
title: "Initiate a credit purchase (sender_wallet binding required)"
method: POST
path: "/api/payment/buy-credits"
tags: ["Payment"]
---

# Initiate a credit purchase (sender_wallet binding required)

`POST /api/payment/buy-credits`

Issues a 30-minute payment quote bound to the EVM address that
will sign the on-chain USDC transfer. Required body fields:
`amount_usd` (0.5 to 10000) and `sender_wallet` (0x-prefixed
40-char EVM address). The `/api/payment/confirm` endpoint will
reject any tx whose on-chain `from` does not match the
sender_wallet bound here, which closes the public-mempool tx
sniping vector.

## Request body

- object
  - `amount_usd` number, required
  - `sender_wallet` string, required

## Response `200`

Quote with credits, instructions to send USDC on Base, and the bound sender_wallet.

- object

## Other responses

- `400` — Returned if amount_usd is out of range or sender_wallet is missing/malformed.

---

[API](https://skmtc.net/tensorfeed/apis/tensorfeed-api.md) · [All operations](https://skmtc.net/tensorfeed/apis/tensorfeed-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/tensorfeed/tensorfeed-api/versions/017e10130065/schema)
