Skip to main content
WURK accepts x402 v2 payments in native USDC on Solana and Base mainnet. Choose the network of your funded wallet. The CLI quickstart uses Solana; the Node.js SDK also supports Base.

Payment network and worker reward

The payment network and worker reward are separate choices. Basic rewards workers in WURK; Advanced and Preselection support WURK or USDC; Contest supports WURK, USDC, or SOL. Store purchases and direct hire reward USDC. A Base payment can fund a worker’s Solana USDC platform balance. A gross job budget includes the platform allocation. For example, an Advanced job with two positions at perUser: "1.00" has a 2.00 USDC gross reward budget and pays each approved winner 0.900000 USDC internally. The complete payable quote can also include an identification amount. Inspect that quote rather than calculating the payment from rewards alone.

x402 payment flow

A 402 with empty accepts is a free authentication challenge. It does not ask for a transfer. See authentication. Use the exact quoted amount, recipient, asset, network, resource, and metadata. USDC uses six decimal places: 1000000 atomic units equals 1 USDC. Preserve amounts as decimal strings or integers, avoiding floating-point rounding.

Checkout families

Advanced with USDC rewards, every Contest, Store purchases, and direct hire use this sequence:
  1. Save the exact input and a unique idempotencyKey of 8–128 letters, digits, or ._:- characters. Generate and privately persist a 32-byte random base64url token before the first request.
  2. Send X-Checkout-Token with the creation request. The unpaid response contains checkout and payable requirements. A canonical job or purchase appears after verified payment.
  3. Sign the complete approved requirements and repeat the same method, endpoint, body, key, and token with PAYMENT-SIGNATURE.
  4. Follow the returned checkout.statusCheck with the saved token and no payment signature. Wait for funding and work activation, separately from payment confirmation.
The WURK SDK and CLI preserve the token, exact payment, and operation for you. No account login is accepted on create/pay requests. Verified payment determines the owner account. See create a job, create a Contest, and Store or hire. Solana checkout payments bind the transfer to the advertised memo. Base checkout payments must use the exact advertised extra.wurkGuestNonce in their EIP-3009 authorization. Preserve extra.wurkGuestToken on both networks. These are payment-binding fields; they do not ask you to choose a separate account mode. The WURK SDK supports them. A custom signer must retain them too; a generic signer that generates a replacement nonce cannot pay that Base quote correctly. Basic, Advanced WURK, and Preselection use a payment-and-job-secret flow. Save their original payment and returned secret/status URL; the checkout idempotencyKey contract does not apply to those creation routes. Follow their job-specific instructions.

Quote deadlines and recovery

USDC-reward, Store, and hire checkout quotes last thirty minutes. Contest quotes converting to SOL or WURK rewards last two minutes. Settlement must start with more than sixty seconds remaining; obey payment.initiateBefore as well as expiresAt. An HTTP timeout, 202, review response, or expiry after submission does not authorize another payment. Use the saved operation’s recovery path. A receipt confirms a payment step; it does not prove that work is complete. See job flow and recovery.

Discover services

Use the x402 resource list and Solana/Base OpenAPI to find supported operations. The quote for your actual request determines the payable amount. The endpoint reference links service-specific inputs.