SOLVING
Paid endpoints
Two routes are paid, in USDC on Solana, with the x402 exact scheme. Everything else is free: reading targets, reading the wall, checking a molecule and submitting one.
How a payment works
Call the route without a payment and it answers 402 with the accepted scheme, the asset, the amount and the account to pay. Sign a USDC transfer of that amount to that account, put the serialised transaction in an X-PAYMENT header, and call again. The server checks the instruction, sends it, waits for confirmation, and serves. The signature of your payment comes back in the body and in the x-payment-response header.
RoutePrice
POST /api/v1/dock0.05 USDC: one molecule docked against any published pocket, with the full filter table and the pose, no bounty
GET /api/v1/wall/export0.01 USDC: every pocket, every target file, every record and every solver, as one JSON document
# 1. ask, get the 402 and its terms
curl -s -X POST https://medfrontier.xyz/api/v1/dock -d '{"id":"ACHE-4EY7","smiles":"CCO"}'
# 2. pay and retry
curl -s -X POST https://medfrontier.xyz/api/v1/dock \
-H "X-PAYMENT: $(base64 -w0 payment.json)" \
-H 'content-type: application/json' \
-d '{"id":"ACHE-4EY7","smiles":"CCO"}'A docking run costs real CPU time, which is what the price covers; the free check exists so that nobody has to pay to find out whether their molecule parses.