Wait for confirmations before you call a deposit final
Zero-confirmation deposits can be reversed. A confirmations table with a per-coin threshold makes the wait explicit and the crediting safe.
8 entries
Zero-confirmation deposits can be reversed. A confirmations table with a per-coin threshold makes the wait explicit and the crediting safe.
Give every user their own address while the private keys stay offline. The watch-only pattern, and why the gap limit matters.
HMAC-SHA256 of the raw body against the X-CC-Webhook-Signature header, and the event types that actually mean money arrived.
An API key on the way out, a signed and key-sorted JSON payload on the way back. The sorting requirement is the part that trips people.
The HMAC is over the raw POST body, not the parsed array. Rebuilding it from $_POST is why so many handlers reject every callback.
A unique index on your own reference turns duplicate callbacks, browser refreshes and manual replays into no-ops instead of free balance.
An auto-submitting form POST with your own reference in the custom field — the field that makes the deposit traceable when it comes back.
The callback from FaucetPay's merchant checkout is not proof of payment. Here is the server-side verify call, including the endpoint shape that quietly 404s if you get it wrong.