> For the complete documentation index, see [llms.txt](https://docs.nulth.xyz/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.nulth.xyz/guides/send-a-payment.md).

# Send a proof-authorized payment

A payment from a Nulth account is authorized by a proof, not a signature. Here's the flow and what happens underneath.

## Steps

1. Open **Send payment**.
2. Choose a **destination** — one of your allowlisted addresses — and an **amount** at or below your cap.
3. Click **Generate proof & pay**.

The app reads the destination's `dest_field`, builds the transaction's authorization payload, and generates a Groth16 proof in your browser (\~1s). The proof becomes the account's authorization on a `token.transfer`; a fee-payer relays the transaction and pays the XLM fee. When it settles you'll see the transaction hash, the balance change, and the decoded verify cost.

## What actually authorized it

The proof attests — in zero knowledge — that the amount is within your committed cap and the destination is in your committed allowlist, and it is bound to this exact transfer so it can't be lifted or replayed. `__check_auth` runs its full gate order (see [The account & `__check_auth`](/how-nulth-works/account-and-check-auth.md)) and only then executes the transfer.

## The refusal

Try paying a destination that isn't in your allowlist, or an amount over your cap. The circuit is unsatisfiable, so the prover **cannot produce a proof** — the app reports the refusal and **no transaction is formed**. Nothing hits the chain; there is no failed transfer to clean up, because there was never a valid authorization to submit.

This is the difference between "a payment that gets rejected" and "a payment that cannot be constructed." Nulth is the latter.

## Notes

* **Amount + destination are public** on-chain, like any Stellar payment. The cap and the rest of your allowlist stay private.
* The fee-payer can pay gas but cannot authorize a spend — see [Proving](/how-nulth-works/proving.md#who-submits).


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.nulth.xyz/guides/send-a-payment.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
