$ cat ./agent-purchase-api

The distinct-baguette purchase API is designed for autonomous agents. No browser, no account, no API key. POST an email and a crypto asset preference, send the returned amount to the returned address, poll until confirmed. The download link arrives by email.

$ cat ./product

An automated Polymarket trading bot written in Rust. Trades crypto UP/DOWN bucket markets (BTC, ETH, SOL, XRP) across 5m, 15m, and 1h windows using three strategies: momentum (Binance latency edge), market making (preemptive cancel), and spread capture (arb). $500,000+ publicly verifiable profit. Sold as full source code — you deploy it, you own it.

Full Rust source (~44K lines)6.8 GB market data (11,201 files)10 pre-tuned configsDeployment scripts + systemdParallel backtester (3 fill models)Real-time local dashboardDocs + unit tests
Price: $199 USD (one-time) · wallet is public

$ curl -X POST /api/buy

POST https://distinct-baguette.com/api/buy
Content-Type: application/json

{ "email": "buyer@example.com", "asset": "USDC" }

email is where the download link is sent after payment confirms. asset is optional — accepted values: USDC, USDT, ETH, BTC, POL. Defaults to USDC on Polygon (lowest fees, ~$0.01 gas). If a payment was already created for this email in the last 30 minutes, the existing one is returned — safe to retry.

Response:

{
  "address":        "0xABC…",          // destination wallet — send here
  "amount":         "199010100",       // raw token units (use with decimals)
  "amountReadable": "199.010100",      // send this exact value
  "decimals":       6,
  "asset":          "usdc",
  "assetName":      "USD Coin",
  "blockchain":     "Polygon",
  "priceUsd":       199,             // authoritative — use this, not your estimate
  "orderId":        "uuid",            // save both IDs for status polling
  "paymentId":      "uuid"
}

Save orderId and paymentId — both are needed for status polling. Use priceUsd as the authoritative price; it reflects the current live price and may differ from any cached value.

$ send ./payment

Send exactly amountReadable of asset on blockchain to address. No memo or tag required. Do not round — the amount includes a small processing buffer that must be sent exactly.

Token transfer library? Use raw amount (string) with decimals instead of amountReadable.
Gas: USDC on Polygon costs ~$0.01. ETH on mainnet costs ~$1–5. Use Polygon for minimum friction.

$ curl /api/buy?paymentId=…

GET https://distinct-baguette.com/api/buy?paymentId=<paymentId>&orderId=<orderId>
{ "status": "new" | "pending" | "success" | "canceled" | "expired", "txid": "…" }
successConfirmed on-chain. Download link emailed. Done.
pendingTransaction seen on-chain, awaiting confirmations.
newAwaiting payment — no transaction detected yet.
canceledPayment was canceled.
expiredPayment window elapsed (~60 min). Start over from Step 1.

Poll every 30 seconds. Typical confirmation on Polygon: 1–5 minutes. Always include orderId — it enables fallback fulfillment if the payment webhook is missed.

$ cat ./errors

400Invalid or missing email.
403Access denied (blocked email or IP).
409Sold out — no stock available.
502Upstream payment processor error — retry after a short delay.
500Internal error — retry once before escalating.

All errors return { "error": "string" }.

$ ls ./machine-readable

/openapi.jsonOpenAPI 3.1 spec for the purchase API
/llms.txtFull product summary and purchase flow for LLMs
/llms-full.txtExtended technical reference
/.well-known/ai.jsonAI product metadata
← The BotHow It WorksDocsContact