Skip to main content
POST
Fund a proxy wallet
POST /user/transfer-to-proxy moves tokens from your EOA into your proxy wallet. You authorise it with an EIP-2612 permit — a signature over (owner, spender, value, nonce, deadline). Funding walks the whole deposit end to end.
A 200 means recorded, not completed. This is an asynchronous endpoint. Poll GET /user/transfer-to-proxy/status with the returned sessionId until status is SUCCESS or FAILED.

Authorizations

x-sx-api-key
string
header
required

API key, sent as the x-sx-api-key header. Generate one from the API keys section of your account page on sx.bet.

Body

application/json
owner
string
required

Your EOA. Must equal the address you authenticated as, or the request is a 401 OWNER_MISMATCH.

spender
string
required

The environment's transfer-to-proxy executor — not the token contract, and not your proxy. The per-environment address is listed on the References page. It is part of the signed payload, so a wrong value returns ERC20_PERMIT_BAD_SPENDER and has to be re-signed.

tokenAddress
string
required

The ERC-20 being moved.

value
string
required

Base units, as a positive big-number string.

deadline
string
required

Unix seconds, as a string rather than a number. Must be at least one hour in the future: a permit expiring in fifty-nine minutes is refused even though it is valid ERC-20, so sign with a margin of several hours.

signature
string
required

The EIP-2612 permit signature, 65 bytes hex. Recovery is checked last, so a ERC20_PERMIT_SIGNATURE_MISMATCH means the deadline, spender and token were all accepted and the fault is in the signing — a wrong nonce, a wrong token name in the domain, or a chain-id mismatch.

proxyAddress
string

Optional destination proxy, defaulting to your own. A named proxy is checked only for being deployed and having an owner — not for being yours — so a stale or copy-pasted value sends your deposit to a proxy you cannot bet from, and the call still returns 200. Omit it unless you mean it.

Response

Recorded, not settled.

status
string

success or failure if the request succeeded or not

data
object
Last modified on August 11, 2026