Record the deposit of a prize from FoxLeague
const url = 'https://foxleague.ai/api/tournaments/1/prize/deposit';const options = { method: 'POST', headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'}, body: '{"tx_hash":"example"}'};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request POST \ --url https://foxleague.ai/api/tournaments/1/prize/deposit \ --header 'Authorization: Bearer <token>' \ --header 'Content-Type: application/json' \ --data '{ "tx_hash": "example" }'Records the deposit transaction of a League + Knockout prize. The sponsor’s wallet signs the deposit itself: a FOXSY transfer of the prize to the tournaments contract that names the tournament and its 8 recipients. This route then checks that transaction and the prize the contract holds. It answers the prize as the contract shows it. Sending the same hash again answers the same. A failure on our side answers with code: "tx_pending" as well: nothing was decided, so send the same hash again.
Who: the signed-in sponsor wallet of the prize.
Refusals:
This tournament has no prize from FoxLeague.Only the wallet that set this prize can record its deposit.Your deposit is not confirmed on chain yet. Please retry in a moment.: the transaction is not final yet; send the same hash again.This deposit did not go through on chain: nothing was deposited.: the transaction failed.This transaction is not a deposit of this tournament's prize.: another wallet, another tournament, another recipient count or another call.The contract does not show the deposit yet. Please retry in a moment.: send the same hash again.
Authorizations
Section titled “Authorizations ”Parameters
Section titled “ Parameters ”Path Parameters
Section titled “Path Parameters ”The tournament id.
Request Body required
Section titled “Request Body required ”The deposit transaction of a prize from FoxLeague.
object
The hash of the deposit transaction the sponsor’s wallet signed.
Example generated
{ "tx_hash": "example"}Responses
Section titled “ Responses ”Success or a refusal: read success (the refusals are in the description).
object
A machine-readable reason next to error, set only where the caller must act differently. tx_pending: the payment was not refused but could not be verified yet; keep the transaction hash and confirm again with the same hash, never pay twice.
The answer. Present when success is true.
object
The total deposited in the contract, in atomic FOXSY (18 decimals). It stays after the payout or the refund. 0 before a deposit.
true for the sponsor’s own wallet while the tournament is open, the terms are set and the contract, read just now for this answer, holds nothing deposited yet.
The hash of the deposit transaction. null before it is recorded.
true when the state and the amount are a reading of the contract from the last 20 seconds. false when the stored reading answers: the caller has no session or the contract could not be read just now.
The hash of the payout transaction. null before the payout.
The prize the admin set at create, in whole FOXSY.
When the state and the amount were read from the contract.
The number of teams that share it: the 8 quarter-finalists.
The hash of the refund transaction of a cancelled tournament. null otherwise.
Once paid: what each quarter-finalist received, in atomic FOXSY. null before.
The prize as the tournaments contract holds it: none (not deposited), held (locked in the contract), paid (paid to the quarter-finalists), refunded (the tournament was cancelled and the prize went back to its depositor) or reclaimed (returned by the owner 30 days after the completion, never paid).
true once the contract names the sponsor wallet and the 8 recipients: a deposit is possible from then on.
The tournament id.
Why the request was refused, in plain words. Present when success is false.
true when the request did what it asked. false is a refusal: read error.
Example
{ "data": { "amount_atomic": "100000000000000000000000", "can_deposit": false, "deposit_tx": "6f2c90b1aa3e4d17b2a1c0f5e9d8c7b6a5f4e3d2c1b0a9f8e7d6c5b4a3f2e1d0", "from_chain": true, "payout_tx": null, "planned_foxsy": 100000, "read_at": "2026-11-02T10:00:00Z", "recipients": 8, "refund_tx": null, "share_atomic": null, "state": "held", "terms_set": true, "tournament_id": 602 }, "success": true}No valid session. The body is plain text: Missing Authorization header, Invalid Authorization format, Invalid session token or Session expired or invalid. Sign in again.
Example
Session expired or invalid