{"openapi":"3.1.0","info":{"title":"WURK","version":"1.0.0","description":"WURK API lets agents hire real humans for microtasks, feedback, app testing, social growth, and community engagement with Solana Machine Payments Protocol.","guidance":"# WURK Solana MPP Discovery Guidance\n\nThis document is the canonical discovery source for Solana MPP endpoints.\n\n## Endpoint semantics\n- Use this OpenAPI document for routes, query/path parameters, examples, alias behavior, and expected headers.\n- Use the live `402 Payment Required` challenge as the source of truth for payment details.\n\n## Solana payment flow\n1. Call a protected `/mpp-solana/*` operation without `Authorization: Payment ...`.\n2. Expect HTTP 402 with `WWW-Authenticate: Payment ...` and an `application/problem+json` body.\n3. Use the official `@solana/mpp/client` flow to create the payment credential from that live challenge.\n4. Retry the exact same URL with `Authorization: Payment ...`.\n5. Receive HTTP 200 with business payload and a `Payment-Receipt` header.\n\n## Runtime challenge fields\n- Always read `amount`, `feePayer`, `feePayerKey`, `recentBlockhash`, `network`, `currency`, `recipient` from the live challenge, not from hardcoded OpenAPI assumptions.\n\n## Notes\n- This OpenAPI surface is intentionally lean and POST-focused for discovery efficiency.\n- Some runtime aliases and GET variants remain supported even when only the canonical POST route is advertised.\n- Shared non-rail secret-auth support endpoints are also included under `/api/agent-support/*`.\n- Shared advanced creator winner-selection endpoint is included as `POST /api/agenttohumanadvanced/choose-winners`.","x-guidance":"Use this OpenAPI document to discover WURK payable Solana MPP operations.\nEach payable operation exposes `x-payment-info.price`, structured MPP protocol metadata, and a `402` response.\nProbe an operation without `Authorization: Payment ...`, sign the live Solana MPP challenge, then retry the same URL.","contact":{"email":"info@wurk.fun"}},"servers":[{"url":"https://wurkapi.fun"}],"x-discovery":{"ownershipProofs":["0xe8e9b12bbf40a587e236d275687719e68634ae0110abf78f3aff42fbba311b0c5c85949842dd49b41a8d01280689a417f10c011677d7b41f55483d8d632883621b","0xf8e9853ffeaffd8f2c669db4af10bf420220dec32fb252b910c0ea30b857aa059f7a52c1e1adc34e71ec7fcd0721ba369414e82a3c2d80a2b2b1356fd0d7ad05"]},"tags":[{"name":"Agent Help"},{"name":"Dex / Votes"},{"name":"hey.lol"},{"name":"Instagram"},{"name":"Support"},{"name":"Telegram / Discord"},{"name":"Test"},{"name":"X / Twitter"},{"name":"YouTube"}],"paths":{"/mpp-solana/xlikes":{"post":{"operationId":"solana_post_L21wcC94bGlrZXM","tags":["X / Twitter"],"summary":"X likes (POST)","description":"Buy X likes.\n\nMPP flow:\n- Call without `Authorization: Payment ...` to receive `402 Payment Required`.\n- Read challenge details from `WWW-Authenticate: Payment ...` and problem+json body.\n- Retry same endpoint with `Authorization: Payment ...`.\n- On success, response includes `Payment-Receipt` header.\n\nSolana MPP specifics:\n- Make the first call without `Authorization: Payment ...`.\n- Expect `402 Payment Required` and read the live `WWW-Authenticate` challenge.\n- Use the official `@solana/mpp/client` flow to build the payment credential.\n- Treat the runtime challenge as the source of truth for `amount`, `feePayer`, `feePayerKey`, `recentBlockhash`, `network`, `currency`, `recipient`.\n- Retry the exact same URL after signing.\n- On success, read and store the `Payment-Receipt` header.\n\nAlias behavior:\n- Count-style runtime aliases such as `/mpp-solana/xlikes/{winners}` and `/mpp-solana/xlikes-{winners}` may also be available even when only the canonical route is advertised here.\n\nExample flow:\n- First probe: `POST /mpp-solana/xlikes?url=https%3A%2F%2Fx.com%2Fexample%2Fstatus%2F1&amount=5&winners=3` without `Authorization`.\n- Paid retry: `POST /mpp-solana/xlikes?url=https%3A%2F%2Fx.com%2Fexample%2Fstatus%2F1&amount=5&winners=3` with `Authorization: Payment <credential>`.","x-payment-info":{"protocols":["mpp",{"mpp":{"method":"solana","intent":"pay-per-request","currency":"runtime-challenge"}}],"pricingMode":"quote","price":{"mode":"dynamic","currency":"USD"},"rail":"solana-mpp","challengeSource":"runtime","runtimeChallengeFields":["amount","feePayer","feePayerKey","recentBlockhash","network","currency","recipient"]},"parameters":[{"name":"Authorization","in":"header","required":false,"schema":{"type":"string"},"description":"MPP payment credential, typically in the shape `Payment <serialized-credential>`. Omit on first call to receive a challenge."},{"name":"url","in":"query","schema":{"type":"string","format":"uri"},"description":"Target URL."},{"name":"amount","in":"query","schema":{"type":"integer","minimum":1},"description":"Requested amount/slots."},{"name":"winners","in":"query","schema":{"type":"integer","minimum":1},"description":"Alias amount parameter for winner count."}],"requestBody":{"required":false,"description":"Optional JSON body mirror of the query inputs for agent invocation. Query/path parameters remain the canonical runtime contract.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"properties":{"url":{"type":"string","format":"uri","description":"Target URL."},"amount":{"type":"integer","minimum":1,"description":"Requested amount/slots."},"winners":{"type":"integer","minimum":1,"description":"Alias amount parameter for winner count."}}}}}},"responses":{"200":{"$ref":"#/components/responses/PaidSuccess"},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"409":{"$ref":"#/components/responses/Conflict"},"500":{"$ref":"#/components/responses/ServerError"}},"x-solana-mpp-guidance":{"firstCallWithoutAuthorization":true,"expectedInitialStatus":402,"officialClient":"@solana/mpp/client","retrySameUrl":true,"readPaymentReceiptHeader":true,"runtimeChallengeFields":["amount","feePayer","feePayerKey","recentBlockhash","network","currency","recipient"]}}},"/mpp-solana/xviews":{"post":{"operationId":"solana_post_L21wcC94dmlld3M","tags":["X / Twitter"],"summary":"X views (POST)","description":"Buy X views.\n\nMPP flow:\n- Call without `Authorization: Payment ...` to receive `402 Payment Required`.\n- Read challenge details from `WWW-Authenticate: Payment ...` and problem+json body.\n- Retry same endpoint with `Authorization: Payment ...`.\n- On success, response includes `Payment-Receipt` header.\n\nSolana MPP specifics:\n- Make the first call without `Authorization: Payment ...`.\n- Expect `402 Payment Required` and read the live `WWW-Authenticate` challenge.\n- Use the official `@solana/mpp/client` flow to build the payment credential.\n- Treat the runtime challenge as the source of truth for `amount`, `feePayer`, `feePayerKey`, `recentBlockhash`, `network`, `currency`, `recipient`.\n- Retry the exact same URL after signing.\n- On success, read and store the `Payment-Receipt` header.\n\nAlias behavior:\n- Count-style runtime aliases such as `/mpp-solana/xviews/{winners}` and `/mpp-solana/xviews-{winners}` may also be available even when only the canonical route is advertised here.\n\nExample flow:\n- First probe: `POST /mpp-solana/xviews?url=https%3A%2F%2Fx.com%2Fexample%2Fstatus%2F1&amount=5&winners=3` without `Authorization`.\n- Paid retry: `POST /mpp-solana/xviews?url=https%3A%2F%2Fx.com%2Fexample%2Fstatus%2F1&amount=5&winners=3` with `Authorization: Payment <credential>`.","x-payment-info":{"protocols":["mpp",{"mpp":{"method":"solana","intent":"pay-per-request","currency":"runtime-challenge"}}],"pricingMode":"quote","price":{"mode":"dynamic","currency":"USD"},"rail":"solana-mpp","challengeSource":"runtime","runtimeChallengeFields":["amount","feePayer","feePayerKey","recentBlockhash","network","currency","recipient"]},"parameters":[{"name":"Authorization","in":"header","required":false,"schema":{"type":"string"},"description":"MPP payment credential, typically in the shape `Payment <serialized-credential>`. Omit on first call to receive a challenge."},{"name":"url","in":"query","schema":{"type":"string","format":"uri"},"description":"Target URL."},{"name":"amount","in":"query","schema":{"type":"integer","minimum":1},"description":"Requested amount/slots."},{"name":"winners","in":"query","schema":{"type":"integer","minimum":1},"description":"Alias amount parameter for winner count."}],"requestBody":{"required":false,"description":"Optional JSON body mirror of the query inputs for agent invocation. Query/path parameters remain the canonical runtime contract.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"properties":{"url":{"type":"string","format":"uri","description":"Target URL."},"amount":{"type":"integer","minimum":1,"description":"Requested amount/slots."},"winners":{"type":"integer","minimum":1,"description":"Alias amount parameter for winner count."}}}}}},"responses":{"200":{"$ref":"#/components/responses/PaidSuccess"},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"409":{"$ref":"#/components/responses/Conflict"},"500":{"$ref":"#/components/responses/ServerError"}},"x-solana-mpp-guidance":{"firstCallWithoutAuthorization":true,"expectedInitialStatus":402,"officialClient":"@solana/mpp/client","retrySameUrl":true,"readPaymentReceiptHeader":true,"runtimeChallengeFields":["amount","feePayer","feePayerKey","recentBlockhash","network","currency","recipient"]}}},"/mpp-solana/xreposts":{"post":{"operationId":"solana_post_L21wcC94cmVwb3N0cw","tags":["X / Twitter"],"summary":"X reposts (POST)","description":"Buy X reposts.\n\nMPP flow:\n- Call without `Authorization: Payment ...` to receive `402 Payment Required`.\n- Read challenge details from `WWW-Authenticate: Payment ...` and problem+json body.\n- Retry same endpoint with `Authorization: Payment ...`.\n- On success, response includes `Payment-Receipt` header.\n\nSolana MPP specifics:\n- Make the first call without `Authorization: Payment ...`.\n- Expect `402 Payment Required` and read the live `WWW-Authenticate` challenge.\n- Use the official `@solana/mpp/client` flow to build the payment credential.\n- Treat the runtime challenge as the source of truth for `amount`, `feePayer`, `feePayerKey`, `recentBlockhash`, `network`, `currency`, `recipient`.\n- Retry the exact same URL after signing.\n- On success, read and store the `Payment-Receipt` header.\n\nAlias behavior:\n- Count-style runtime aliases such as `/mpp-solana/xreposts/{winners}` and `/mpp-solana/xreposts-{winners}` may also be available even when only the canonical route is advertised here.\n\nExample flow:\n- First probe: `POST /mpp-solana/xreposts?url=https%3A%2F%2Fx.com%2Fexample%2Fstatus%2F1&amount=5&winners=3` without `Authorization`.\n- Paid retry: `POST /mpp-solana/xreposts?url=https%3A%2F%2Fx.com%2Fexample%2Fstatus%2F1&amount=5&winners=3` with `Authorization: Payment <credential>`.","x-payment-info":{"protocols":["mpp",{"mpp":{"method":"solana","intent":"pay-per-request","currency":"runtime-challenge"}}],"pricingMode":"quote","price":{"mode":"dynamic","currency":"USD"},"rail":"solana-mpp","challengeSource":"runtime","runtimeChallengeFields":["amount","feePayer","feePayerKey","recentBlockhash","network","currency","recipient"]},"parameters":[{"name":"Authorization","in":"header","required":false,"schema":{"type":"string"},"description":"MPP payment credential, typically in the shape `Payment <serialized-credential>`. Omit on first call to receive a challenge."},{"name":"url","in":"query","schema":{"type":"string","format":"uri"},"description":"Target URL."},{"name":"amount","in":"query","schema":{"type":"integer","minimum":1},"description":"Requested amount/slots."},{"name":"winners","in":"query","schema":{"type":"integer","minimum":1},"description":"Alias amount parameter for winner count."}],"requestBody":{"required":false,"description":"Optional JSON body mirror of the query inputs for agent invocation. Query/path parameters remain the canonical runtime contract.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"properties":{"url":{"type":"string","format":"uri","description":"Target URL."},"amount":{"type":"integer","minimum":1,"description":"Requested amount/slots."},"winners":{"type":"integer","minimum":1,"description":"Alias amount parameter for winner count."}}}}}},"responses":{"200":{"$ref":"#/components/responses/PaidSuccess"},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"409":{"$ref":"#/components/responses/Conflict"},"500":{"$ref":"#/components/responses/ServerError"}},"x-solana-mpp-guidance":{"firstCallWithoutAuthorization":true,"expectedInitialStatus":402,"officialClient":"@solana/mpp/client","retrySameUrl":true,"readPaymentReceiptHeader":true,"runtimeChallengeFields":["amount","feePayer","feePayerKey","recentBlockhash","network","currency","recipient"]}}},"/mpp-solana/xcomments":{"post":{"operationId":"solana_post_L21wcC94Y29tbWVudHM","tags":["X / Twitter"],"summary":"X comments (POST)","description":"Buy X comments.\n\nMPP flow:\n- Call without `Authorization: Payment ...` to receive `402 Payment Required`.\n- Read challenge details from `WWW-Authenticate: Payment ...` and problem+json body.\n- Retry same endpoint with `Authorization: Payment ...`.\n- On success, response includes `Payment-Receipt` header.\n\nSolana MPP specifics:\n- Make the first call without `Authorization: Payment ...`.\n- Expect `402 Payment Required` and read the live `WWW-Authenticate` challenge.\n- Use the official `@solana/mpp/client` flow to build the payment credential.\n- Treat the runtime challenge as the source of truth for `amount`, `feePayer`, `feePayerKey`, `recentBlockhash`, `network`, `currency`, `recipient`.\n- Retry the exact same URL after signing.\n- On success, read and store the `Payment-Receipt` header.\n\nAlias behavior:\n- Count-style runtime aliases such as `/mpp-solana/xcomments/{winners}` and `/mpp-solana/xcomments-{winners}` may also be available even when only the canonical route is advertised here.\n\nExample flow:\n- First probe: `POST /mpp-solana/xcomments?url=https%3A%2F%2Fx.com%2Fexample%2Fstatus%2F1&amount=5&winners=3` without `Authorization`.\n- Paid retry: `POST /mpp-solana/xcomments?url=https%3A%2F%2Fx.com%2Fexample%2Fstatus%2F1&amount=5&winners=3` with `Authorization: Payment <credential>`.","x-payment-info":{"protocols":["mpp",{"mpp":{"method":"solana","intent":"pay-per-request","currency":"runtime-challenge"}}],"pricingMode":"quote","price":{"mode":"dynamic","currency":"USD"},"rail":"solana-mpp","challengeSource":"runtime","runtimeChallengeFields":["amount","feePayer","feePayerKey","recentBlockhash","network","currency","recipient"]},"parameters":[{"name":"Authorization","in":"header","required":false,"schema":{"type":"string"},"description":"MPP payment credential, typically in the shape `Payment <serialized-credential>`. Omit on first call to receive a challenge."},{"name":"url","in":"query","schema":{"type":"string","format":"uri"},"description":"Target URL."},{"name":"amount","in":"query","schema":{"type":"integer","minimum":1},"description":"Requested amount/slots."},{"name":"winners","in":"query","schema":{"type":"integer","minimum":1},"description":"Alias amount parameter for winner count."}],"requestBody":{"required":false,"description":"Optional JSON body mirror of the query inputs for agent invocation. Query/path parameters remain the canonical runtime contract.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"properties":{"url":{"type":"string","format":"uri","description":"Target URL."},"amount":{"type":"integer","minimum":1,"description":"Requested amount/slots."},"winners":{"type":"integer","minimum":1,"description":"Alias amount parameter for winner count."}}}}}},"responses":{"200":{"$ref":"#/components/responses/PaidSuccess"},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"409":{"$ref":"#/components/responses/Conflict"},"500":{"$ref":"#/components/responses/ServerError"}},"x-solana-mpp-guidance":{"firstCallWithoutAuthorization":true,"expectedInitialStatus":402,"officialClient":"@solana/mpp/client","retrySameUrl":true,"readPaymentReceiptHeader":true,"runtimeChallengeFields":["amount","feePayer","feePayerKey","recentBlockhash","network","currency","recipient"]}}},"/mpp-solana/xbookmarks":{"post":{"operationId":"solana_post_L21wcC94Ym9va21hcmtz","tags":["X / Twitter"],"summary":"X bookmarks (POST)","description":"Buy X bookmarks.\n\nMPP flow:\n- Call without `Authorization: Payment ...` to receive `402 Payment Required`.\n- Read challenge details from `WWW-Authenticate: Payment ...` and problem+json body.\n- Retry same endpoint with `Authorization: Payment ...`.\n- On success, response includes `Payment-Receipt` header.\n\nSolana MPP specifics:\n- Make the first call without `Authorization: Payment ...`.\n- Expect `402 Payment Required` and read the live `WWW-Authenticate` challenge.\n- Use the official `@solana/mpp/client` flow to build the payment credential.\n- Treat the runtime challenge as the source of truth for `amount`, `feePayer`, `feePayerKey`, `recentBlockhash`, `network`, `currency`, `recipient`.\n- Retry the exact same URL after signing.\n- On success, read and store the `Payment-Receipt` header.\n\nAlias behavior:\n- Count-style runtime aliases such as `/mpp-solana/xbookmarks/{winners}` and `/mpp-solana/xbookmarks-{winners}` may also be available even when only the canonical route is advertised here.\n\nExample flow:\n- First probe: `POST /mpp-solana/xbookmarks?url=https%3A%2F%2Fx.com%2Fexample%2Fstatus%2F1&amount=5&winners=3` without `Authorization`.\n- Paid retry: `POST /mpp-solana/xbookmarks?url=https%3A%2F%2Fx.com%2Fexample%2Fstatus%2F1&amount=5&winners=3` with `Authorization: Payment <credential>`.","x-payment-info":{"protocols":["mpp",{"mpp":{"method":"solana","intent":"pay-per-request","currency":"runtime-challenge"}}],"pricingMode":"quote","price":{"mode":"dynamic","currency":"USD"},"rail":"solana-mpp","challengeSource":"runtime","runtimeChallengeFields":["amount","feePayer","feePayerKey","recentBlockhash","network","currency","recipient"]},"parameters":[{"name":"Authorization","in":"header","required":false,"schema":{"type":"string"},"description":"MPP payment credential, typically in the shape `Payment <serialized-credential>`. Omit on first call to receive a challenge."},{"name":"url","in":"query","schema":{"type":"string","format":"uri"},"description":"Target URL."},{"name":"amount","in":"query","schema":{"type":"integer","minimum":1},"description":"Requested amount/slots."},{"name":"winners","in":"query","schema":{"type":"integer","minimum":1},"description":"Alias amount parameter for winner count."}],"requestBody":{"required":false,"description":"Optional JSON body mirror of the query inputs for agent invocation. Query/path parameters remain the canonical runtime contract.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"properties":{"url":{"type":"string","format":"uri","description":"Target URL."},"amount":{"type":"integer","minimum":1,"description":"Requested amount/slots."},"winners":{"type":"integer","minimum":1,"description":"Alias amount parameter for winner count."}}}}}},"responses":{"200":{"$ref":"#/components/responses/PaidSuccess"},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"409":{"$ref":"#/components/responses/Conflict"},"500":{"$ref":"#/components/responses/ServerError"}},"x-solana-mpp-guidance":{"firstCallWithoutAuthorization":true,"expectedInitialStatus":402,"officialClient":"@solana/mpp/client","retrySameUrl":true,"readPaymentReceiptHeader":true,"runtimeChallengeFields":["amount","feePayer","feePayerKey","recentBlockhash","network","currency","recipient"]}}},"/mpp-solana/xfollowers":{"post":{"operationId":"solana_post_L21wcC94Zm9sbG93ZXJz","tags":["X / Twitter"],"summary":"X followers (POST)","description":"Buy X followers/community members.\n\nMPP flow:\n- Call without `Authorization: Payment ...` to receive `402 Payment Required`.\n- Read challenge details from `WWW-Authenticate: Payment ...` and problem+json body.\n- Retry same endpoint with `Authorization: Payment ...`.\n- On success, response includes `Payment-Receipt` header.\n\nSolana MPP specifics:\n- Make the first call without `Authorization: Payment ...`.\n- Expect `402 Payment Required` and read the live `WWW-Authenticate` challenge.\n- Use the official `@solana/mpp/client` flow to build the payment credential.\n- Treat the runtime challenge as the source of truth for `amount`, `feePayer`, `feePayerKey`, `recentBlockhash`, `network`, `currency`, `recipient`.\n- Retry the exact same URL after signing.\n- On success, read and store the `Payment-Receipt` header.\n\nAlias behavior:\n- Count-style runtime aliases such as `/mpp-solana/xfollowers/{winners}` and `/mpp-solana/xfollowers-{winners}` may also be available even when only the canonical route is advertised here.\n\nExample flow:\n- First probe: `POST /mpp-solana/xfollowers?handle=statikheadz&url=https%3A%2F%2Fx.com%2Fexample%2Fstatus%2F1&amount=5&winners=3` without `Authorization`.\n- Paid retry: `POST /mpp-solana/xfollowers?handle=statikheadz&url=https%3A%2F%2Fx.com%2Fexample%2Fstatus%2F1&amount=5&winners=3` with `Authorization: Payment <credential>`.","x-payment-info":{"protocols":["mpp",{"mpp":{"method":"solana","intent":"pay-per-request","currency":"runtime-challenge"}}],"pricingMode":"quote","price":{"mode":"dynamic","currency":"USD"},"rail":"solana-mpp","challengeSource":"runtime","runtimeChallengeFields":["amount","feePayer","feePayerKey","recentBlockhash","network","currency","recipient"]},"parameters":[{"name":"Authorization","in":"header","required":false,"schema":{"type":"string"},"description":"MPP payment credential, typically in the shape `Payment <serialized-credential>`. Omit on first call to receive a challenge."},{"name":"handle","in":"query","schema":{"type":"string"},"description":"Target handle/username."},{"name":"url","in":"query","schema":{"type":"string","format":"uri"},"description":"Target URL."},{"name":"amount","in":"query","schema":{"type":"integer","minimum":1},"description":"Requested amount/slots."},{"name":"winners","in":"query","schema":{"type":"integer","minimum":1},"description":"Alias amount parameter for winner count."}],"requestBody":{"required":false,"description":"Optional JSON body mirror of the query inputs for agent invocation. Query/path parameters remain the canonical runtime contract.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"properties":{"handle":{"type":"string","description":"Target handle/username."},"url":{"type":"string","format":"uri","description":"Target URL."},"amount":{"type":"integer","minimum":1,"description":"Requested amount/slots."},"winners":{"type":"integer","minimum":1,"description":"Alias amount parameter for winner count."}}}}}},"responses":{"200":{"$ref":"#/components/responses/PaidSuccess"},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"409":{"$ref":"#/components/responses/Conflict"},"500":{"$ref":"#/components/responses/ServerError"}},"x-solana-mpp-guidance":{"firstCallWithoutAuthorization":true,"expectedInitialStatus":402,"officialClient":"@solana/mpp/client","retrySameUrl":true,"readPaymentReceiptHeader":true,"runtimeChallengeFields":["amount","feePayer","feePayerKey","recentBlockhash","network","currency","recipient"]}}},"/mpp-solana/xfollowers/xverified":{"post":{"operationId":"solana_post_L21wcC94Zm9sbG93ZXJzL3h2ZXJpZmllZA","tags":["X / Twitter"],"summary":"X followers xverified (POST)","description":"Buy X followers/community members from X blue-verified workers only (`x_blue_verified = true`).\n\nMPP flow:\n- Call without `Authorization: Payment ...` to receive `402 Payment Required`.\n- Read challenge details from `WWW-Authenticate: Payment ...` and problem+json body.\n- Retry same endpoint with `Authorization: Payment ...`.\n- On success, response includes `Payment-Receipt` header.\n\nSolana MPP specifics:\n- Make the first call without `Authorization: Payment ...`.\n- Expect `402 Payment Required` and read the live `WWW-Authenticate` challenge.\n- Use the official `@solana/mpp/client` flow to build the payment credential.\n- Treat the runtime challenge as the source of truth for `amount`, `feePayer`, `feePayerKey`, `recentBlockhash`, `network`, `currency`, `recipient`.\n- Retry the exact same URL after signing.\n- On success, read and store the `Payment-Receipt` header.\n\nAlias behavior:\n- Count-style runtime aliases such as `/mpp-solana/xfollowers/xverified/{winners}` and `/mpp-solana/xfollowers/xverified-{winners}` may also be available even when only the canonical route is advertised here.\n- Path variants `/mpp-solana/xfollowers/xverified/{winners}` and `/mpp-solana/xfollowers/xverified-{winners}` remain supported at runtime.\n- X-verified followers use `x_blue_verified = true` worker requirements at runtime.\n- Pricing is `0.07 USDC` per slot with amount limits `5..100`.\n\nExample flow:\n- First probe: `POST /mpp-solana/xfollowers/xverified?handle=statikheadz&url=https%3A%2F%2Fx.com%2Fexample%2Fstatus%2F1&amount=5&winners=3` without `Authorization`.\n- Paid retry: `POST /mpp-solana/xfollowers/xverified?handle=statikheadz&url=https%3A%2F%2Fx.com%2Fexample%2Fstatus%2F1&amount=5&winners=3` with `Authorization: Payment <credential>`.","x-payment-info":{"protocols":["mpp",{"mpp":{"method":"solana","intent":"pay-per-request","currency":"runtime-challenge"}}],"pricingMode":"quote","price":{"mode":"dynamic","currency":"USD"},"rail":"solana-mpp","challengeSource":"runtime","runtimeChallengeFields":["amount","feePayer","feePayerKey","recentBlockhash","network","currency","recipient"]},"parameters":[{"name":"Authorization","in":"header","required":false,"schema":{"type":"string"},"description":"MPP payment credential, typically in the shape `Payment <serialized-credential>`. Omit on first call to receive a challenge."},{"name":"handle","in":"query","schema":{"type":"string"},"description":"Target handle/username."},{"name":"url","in":"query","schema":{"type":"string","format":"uri"},"description":"Target URL."},{"name":"amount","in":"query","schema":{"type":"integer","minimum":1},"description":"Requested amount/slots."},{"name":"winners","in":"query","schema":{"type":"integer","minimum":1},"description":"Alias amount parameter for winner count."}],"requestBody":{"required":false,"description":"Optional JSON body mirror of the query inputs for agent invocation. Query/path parameters remain the canonical runtime contract.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"properties":{"handle":{"type":"string","description":"Target handle/username."},"url":{"type":"string","format":"uri","description":"Target URL."},"amount":{"type":"integer","minimum":1,"description":"Requested amount/slots."},"winners":{"type":"integer","minimum":1,"description":"Alias amount parameter for winner count."}}}}}},"responses":{"200":{"$ref":"#/components/responses/PaidSuccess"},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"409":{"$ref":"#/components/responses/Conflict"},"500":{"$ref":"#/components/responses/ServerError"}},"x-solana-mpp-guidance":{"firstCallWithoutAuthorization":true,"expectedInitialStatus":402,"officialClient":"@solana/mpp/client","retrySameUrl":true,"readPaymentReceiptHeader":true,"runtimeChallengeFields":["amount","feePayer","feePayerKey","recentBlockhash","network","currency","recipient"]}}},"/mpp-solana/instalikes":{"post":{"operationId":"solana_post_L21wcC9pbnN0YWxpa2Vz","tags":["Instagram"],"summary":"Instagram likes (POST)","description":"Buy Instagram likes.\n\nMPP flow:\n- Call without `Authorization: Payment ...` to receive `402 Payment Required`.\n- Read challenge details from `WWW-Authenticate: Payment ...` and problem+json body.\n- Retry same endpoint with `Authorization: Payment ...`.\n- On success, response includes `Payment-Receipt` header.\n\nSolana MPP specifics:\n- Make the first call without `Authorization: Payment ...`.\n- Expect `402 Payment Required` and read the live `WWW-Authenticate` challenge.\n- Use the official `@solana/mpp/client` flow to build the payment credential.\n- Treat the runtime challenge as the source of truth for `amount`, `feePayer`, `feePayerKey`, `recentBlockhash`, `network`, `currency`, `recipient`.\n- Retry the exact same URL after signing.\n- On success, read and store the `Payment-Receipt` header.\n\nAlias behavior:\n- Count-style runtime aliases such as `/mpp-solana/instalikes/{winners}` and `/mpp-solana/instalikes-{winners}` may also be available even when only the canonical route is advertised here.\n\nExample flow:\n- First probe: `POST /mpp-solana/instalikes?url=https%3A%2F%2Fx.com%2Fexample%2Fstatus%2F1&amount=5&winners=3` without `Authorization`.\n- Paid retry: `POST /mpp-solana/instalikes?url=https%3A%2F%2Fx.com%2Fexample%2Fstatus%2F1&amount=5&winners=3` with `Authorization: Payment <credential>`.","x-payment-info":{"protocols":["mpp",{"mpp":{"method":"solana","intent":"pay-per-request","currency":"runtime-challenge"}}],"pricingMode":"quote","price":{"mode":"dynamic","currency":"USD"},"rail":"solana-mpp","challengeSource":"runtime","runtimeChallengeFields":["amount","feePayer","feePayerKey","recentBlockhash","network","currency","recipient"]},"parameters":[{"name":"Authorization","in":"header","required":false,"schema":{"type":"string"},"description":"MPP payment credential, typically in the shape `Payment <serialized-credential>`. Omit on first call to receive a challenge."},{"name":"url","in":"query","schema":{"type":"string","format":"uri"},"description":"Target URL."},{"name":"amount","in":"query","schema":{"type":"integer","minimum":1},"description":"Requested amount/slots."},{"name":"winners","in":"query","schema":{"type":"integer","minimum":1},"description":"Alias amount parameter for winner count."}],"requestBody":{"required":false,"description":"Optional JSON body mirror of the query inputs for agent invocation. Query/path parameters remain the canonical runtime contract.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"properties":{"url":{"type":"string","format":"uri","description":"Target URL."},"amount":{"type":"integer","minimum":1,"description":"Requested amount/slots."},"winners":{"type":"integer","minimum":1,"description":"Alias amount parameter for winner count."}}}}}},"responses":{"200":{"$ref":"#/components/responses/PaidSuccess"},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"409":{"$ref":"#/components/responses/Conflict"},"500":{"$ref":"#/components/responses/ServerError"}},"x-solana-mpp-guidance":{"firstCallWithoutAuthorization":true,"expectedInitialStatus":402,"officialClient":"@solana/mpp/client","retrySameUrl":true,"readPaymentReceiptHeader":true,"runtimeChallengeFields":["amount","feePayer","feePayerKey","recentBlockhash","network","currency","recipient"]}}},"/mpp-solana/instacomments":{"post":{"operationId":"solana_post_L21wcC9pbnN0YWNvbW1lbnRz","tags":["Instagram"],"summary":"Instagram comments (POST)","description":"Buy Instagram comments.\n\nMPP flow:\n- Call without `Authorization: Payment ...` to receive `402 Payment Required`.\n- Read challenge details from `WWW-Authenticate: Payment ...` and problem+json body.\n- Retry same endpoint with `Authorization: Payment ...`.\n- On success, response includes `Payment-Receipt` header.\n\nSolana MPP specifics:\n- Make the first call without `Authorization: Payment ...`.\n- Expect `402 Payment Required` and read the live `WWW-Authenticate` challenge.\n- Use the official `@solana/mpp/client` flow to build the payment credential.\n- Treat the runtime challenge as the source of truth for `amount`, `feePayer`, `feePayerKey`, `recentBlockhash`, `network`, `currency`, `recipient`.\n- Retry the exact same URL after signing.\n- On success, read and store the `Payment-Receipt` header.\n\nAlias behavior:\n- Count-style runtime aliases such as `/mpp-solana/instacomments/{winners}` and `/mpp-solana/instacomments-{winners}` may also be available even when only the canonical route is advertised here.\n\nExample flow:\n- First probe: `POST /mpp-solana/instacomments?url=https%3A%2F%2Fx.com%2Fexample%2Fstatus%2F1&amount=5&winners=3&instructions=Focus%20on%20realistic%20comments` without `Authorization`.\n- Paid retry: `POST /mpp-solana/instacomments?url=https%3A%2F%2Fx.com%2Fexample%2Fstatus%2F1&amount=5&winners=3&instructions=Focus%20on%20realistic%20comments` with `Authorization: Payment <credential>`.","x-payment-info":{"protocols":["mpp",{"mpp":{"method":"solana","intent":"pay-per-request","currency":"runtime-challenge"}}],"pricingMode":"quote","price":{"mode":"dynamic","currency":"USD"},"rail":"solana-mpp","challengeSource":"runtime","runtimeChallengeFields":["amount","feePayer","feePayerKey","recentBlockhash","network","currency","recipient"]},"parameters":[{"name":"Authorization","in":"header","required":false,"schema":{"type":"string"},"description":"MPP payment credential, typically in the shape `Payment <serialized-credential>`. Omit on first call to receive a challenge."},{"name":"url","in":"query","schema":{"type":"string","format":"uri"},"description":"Target URL."},{"name":"amount","in":"query","schema":{"type":"integer","minimum":1},"description":"Requested amount/slots."},{"name":"winners","in":"query","schema":{"type":"integer","minimum":1},"description":"Alias amount parameter for winner count."},{"name":"instructions","in":"query","schema":{"type":"string","maxLength":800},"description":"Optional custom worker instructions."}],"requestBody":{"required":false,"description":"Optional JSON body mirror of the query inputs for agent invocation. Query/path parameters remain the canonical runtime contract.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"properties":{"url":{"type":"string","format":"uri","description":"Target URL."},"amount":{"type":"integer","minimum":1,"description":"Requested amount/slots."},"winners":{"type":"integer","minimum":1,"description":"Alias amount parameter for winner count."},"instructions":{"type":"string","maxLength":800,"description":"Optional custom worker instructions."}}}}}},"responses":{"200":{"$ref":"#/components/responses/PaidSuccess"},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"409":{"$ref":"#/components/responses/Conflict"},"500":{"$ref":"#/components/responses/ServerError"}},"x-solana-mpp-guidance":{"firstCallWithoutAuthorization":true,"expectedInitialStatus":402,"officialClient":"@solana/mpp/client","retrySameUrl":true,"readPaymentReceiptHeader":true,"runtimeChallengeFields":["amount","feePayer","feePayerKey","recentBlockhash","network","currency","recipient"]}}},"/mpp-solana/instafollowers":{"post":{"operationId":"solana_post_L21wcC9pbnN0YWZvbGxvd2Vycw","tags":["Instagram"],"summary":"Instagram followers (POST)","description":"Buy Instagram followers.\n\nMPP flow:\n- Call without `Authorization: Payment ...` to receive `402 Payment Required`.\n- Read challenge details from `WWW-Authenticate: Payment ...` and problem+json body.\n- Retry same endpoint with `Authorization: Payment ...`.\n- On success, response includes `Payment-Receipt` header.\n\nSolana MPP specifics:\n- Make the first call without `Authorization: Payment ...`.\n- Expect `402 Payment Required` and read the live `WWW-Authenticate` challenge.\n- Use the official `@solana/mpp/client` flow to build the payment credential.\n- Treat the runtime challenge as the source of truth for `amount`, `feePayer`, `feePayerKey`, `recentBlockhash`, `network`, `currency`, `recipient`.\n- Retry the exact same URL after signing.\n- On success, read and store the `Payment-Receipt` header.\n\nAlias behavior:\n- Count-style runtime aliases such as `/mpp-solana/instafollowers/{winners}` and `/mpp-solana/instafollowers-{winners}` may also be available even when only the canonical route is advertised here.\n\nExample flow:\n- First probe: `POST /mpp-solana/instafollowers?handle=statikheadz&url=https%3A%2F%2Fx.com%2Fexample%2Fstatus%2F1&amount=5&winners=3` without `Authorization`.\n- Paid retry: `POST /mpp-solana/instafollowers?handle=statikheadz&url=https%3A%2F%2Fx.com%2Fexample%2Fstatus%2F1&amount=5&winners=3` with `Authorization: Payment <credential>`.","x-payment-info":{"protocols":["mpp",{"mpp":{"method":"solana","intent":"pay-per-request","currency":"runtime-challenge"}}],"pricingMode":"quote","price":{"mode":"dynamic","currency":"USD"},"rail":"solana-mpp","challengeSource":"runtime","runtimeChallengeFields":["amount","feePayer","feePayerKey","recentBlockhash","network","currency","recipient"]},"parameters":[{"name":"Authorization","in":"header","required":false,"schema":{"type":"string"},"description":"MPP payment credential, typically in the shape `Payment <serialized-credential>`. Omit on first call to receive a challenge."},{"name":"handle","in":"query","schema":{"type":"string"},"description":"Target handle/username."},{"name":"url","in":"query","schema":{"type":"string","format":"uri"},"description":"Target URL."},{"name":"amount","in":"query","schema":{"type":"integer","minimum":1},"description":"Requested amount/slots."},{"name":"winners","in":"query","schema":{"type":"integer","minimum":1},"description":"Alias amount parameter for winner count."}],"requestBody":{"required":false,"description":"Optional JSON body mirror of the query inputs for agent invocation. Query/path parameters remain the canonical runtime contract.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"properties":{"handle":{"type":"string","description":"Target handle/username."},"url":{"type":"string","format":"uri","description":"Target URL."},"amount":{"type":"integer","minimum":1,"description":"Requested amount/slots."},"winners":{"type":"integer","minimum":1,"description":"Alias amount parameter for winner count."}}}}}},"responses":{"200":{"$ref":"#/components/responses/PaidSuccess"},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"409":{"$ref":"#/components/responses/Conflict"},"500":{"$ref":"#/components/responses/ServerError"}},"x-solana-mpp-guidance":{"firstCallWithoutAuthorization":true,"expectedInitialStatus":402,"officialClient":"@solana/mpp/client","retrySameUrl":true,"readPaymentReceiptHeader":true,"runtimeChallengeFields":["amount","feePayer","feePayerKey","recentBlockhash","network","currency","recipient"]}}},"/mpp-solana/heylollikes":{"post":{"operationId":"solana_post_L21wcC9oZXlsb2xsaWtlcw","tags":["hey.lol"],"summary":"hey.lol likes (POST)","description":"Buy hey.lol likes.\n\nMPP flow:\n- Call without `Authorization: Payment ...` to receive `402 Payment Required`.\n- Read challenge details from `WWW-Authenticate: Payment ...` and problem+json body.\n- Retry same endpoint with `Authorization: Payment ...`.\n- On success, response includes `Payment-Receipt` header.\n\nSolana MPP specifics:\n- Make the first call without `Authorization: Payment ...`.\n- Expect `402 Payment Required` and read the live `WWW-Authenticate` challenge.\n- Use the official `@solana/mpp/client` flow to build the payment credential.\n- Treat the runtime challenge as the source of truth for `amount`, `feePayer`, `feePayerKey`, `recentBlockhash`, `network`, `currency`, `recipient`.\n- Retry the exact same URL after signing.\n- On success, read and store the `Payment-Receipt` header.\n\nAlias behavior:\n- Count-style runtime aliases such as `/mpp-solana/heylollikes/{winners}` and `/mpp-solana/heylollikes-{winners}` may also be available even when only the canonical route is advertised here.\n\nExample flow:\n- First probe: `POST /mpp-solana/heylollikes?url=https%3A%2F%2Fx.com%2Fexample%2Fstatus%2F1&amount=5&winners=3` without `Authorization`.\n- Paid retry: `POST /mpp-solana/heylollikes?url=https%3A%2F%2Fx.com%2Fexample%2Fstatus%2F1&amount=5&winners=3` with `Authorization: Payment <credential>`.","x-payment-info":{"protocols":["mpp",{"mpp":{"method":"solana","intent":"pay-per-request","currency":"runtime-challenge"}}],"pricingMode":"quote","price":{"mode":"dynamic","currency":"USD"},"rail":"solana-mpp","challengeSource":"runtime","runtimeChallengeFields":["amount","feePayer","feePayerKey","recentBlockhash","network","currency","recipient"]},"parameters":[{"name":"Authorization","in":"header","required":false,"schema":{"type":"string"},"description":"MPP payment credential, typically in the shape `Payment <serialized-credential>`. Omit on first call to receive a challenge."},{"name":"url","in":"query","schema":{"type":"string","format":"uri"},"description":"Target URL."},{"name":"amount","in":"query","schema":{"type":"integer","minimum":1},"description":"Requested amount/slots."},{"name":"winners","in":"query","schema":{"type":"integer","minimum":1},"description":"Alias amount parameter for winner count."}],"requestBody":{"required":false,"description":"Optional JSON body mirror of the query inputs for agent invocation. Query/path parameters remain the canonical runtime contract.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"properties":{"url":{"type":"string","format":"uri","description":"Target URL."},"amount":{"type":"integer","minimum":1,"description":"Requested amount/slots."},"winners":{"type":"integer","minimum":1,"description":"Alias amount parameter for winner count."}}}}}},"responses":{"200":{"$ref":"#/components/responses/PaidSuccess"},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"409":{"$ref":"#/components/responses/Conflict"},"500":{"$ref":"#/components/responses/ServerError"}},"x-solana-mpp-guidance":{"firstCallWithoutAuthorization":true,"expectedInitialStatus":402,"officialClient":"@solana/mpp/client","retrySameUrl":true,"readPaymentReceiptHeader":true,"runtimeChallengeFields":["amount","feePayer","feePayerKey","recentBlockhash","network","currency","recipient"]}}},"/mpp-solana/heylolreposts":{"post":{"operationId":"solana_post_L21wcC9oZXlsb2xyZXBvc3Rz","tags":["hey.lol"],"summary":"hey.lol reposts (POST)","description":"Buy hey.lol reposts.\n\nMPP flow:\n- Call without `Authorization: Payment ...` to receive `402 Payment Required`.\n- Read challenge details from `WWW-Authenticate: Payment ...` and problem+json body.\n- Retry same endpoint with `Authorization: Payment ...`.\n- On success, response includes `Payment-Receipt` header.\n\nSolana MPP specifics:\n- Make the first call without `Authorization: Payment ...`.\n- Expect `402 Payment Required` and read the live `WWW-Authenticate` challenge.\n- Use the official `@solana/mpp/client` flow to build the payment credential.\n- Treat the runtime challenge as the source of truth for `amount`, `feePayer`, `feePayerKey`, `recentBlockhash`, `network`, `currency`, `recipient`.\n- Retry the exact same URL after signing.\n- On success, read and store the `Payment-Receipt` header.\n\nAlias behavior:\n- Count-style runtime aliases such as `/mpp-solana/heylolreposts/{winners}` and `/mpp-solana/heylolreposts-{winners}` may also be available even when only the canonical route is advertised here.\n\nExample flow:\n- First probe: `POST /mpp-solana/heylolreposts?url=https%3A%2F%2Fx.com%2Fexample%2Fstatus%2F1&amount=5&winners=3` without `Authorization`.\n- Paid retry: `POST /mpp-solana/heylolreposts?url=https%3A%2F%2Fx.com%2Fexample%2Fstatus%2F1&amount=5&winners=3` with `Authorization: Payment <credential>`.","x-payment-info":{"protocols":["mpp",{"mpp":{"method":"solana","intent":"pay-per-request","currency":"runtime-challenge"}}],"pricingMode":"quote","price":{"mode":"dynamic","currency":"USD"},"rail":"solana-mpp","challengeSource":"runtime","runtimeChallengeFields":["amount","feePayer","feePayerKey","recentBlockhash","network","currency","recipient"]},"parameters":[{"name":"Authorization","in":"header","required":false,"schema":{"type":"string"},"description":"MPP payment credential, typically in the shape `Payment <serialized-credential>`. Omit on first call to receive a challenge."},{"name":"url","in":"query","schema":{"type":"string","format":"uri"},"description":"Target URL."},{"name":"amount","in":"query","schema":{"type":"integer","minimum":1},"description":"Requested amount/slots."},{"name":"winners","in":"query","schema":{"type":"integer","minimum":1},"description":"Alias amount parameter for winner count."}],"requestBody":{"required":false,"description":"Optional JSON body mirror of the query inputs for agent invocation. Query/path parameters remain the canonical runtime contract.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"properties":{"url":{"type":"string","format":"uri","description":"Target URL."},"amount":{"type":"integer","minimum":1,"description":"Requested amount/slots."},"winners":{"type":"integer","minimum":1,"description":"Alias amount parameter for winner count."}}}}}},"responses":{"200":{"$ref":"#/components/responses/PaidSuccess"},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"409":{"$ref":"#/components/responses/Conflict"},"500":{"$ref":"#/components/responses/ServerError"}},"x-solana-mpp-guidance":{"firstCallWithoutAuthorization":true,"expectedInitialStatus":402,"officialClient":"@solana/mpp/client","retrySameUrl":true,"readPaymentReceiptHeader":true,"runtimeChallengeFields":["amount","feePayer","feePayerKey","recentBlockhash","network","currency","recipient"]}}},"/mpp-solana/heylolcomments":{"post":{"operationId":"solana_post_L21wcC9oZXlsb2xjb21tZW50cw","tags":["hey.lol"],"summary":"hey.lol comments (POST)","description":"Buy hey.lol comments.\n\nMPP flow:\n- Call without `Authorization: Payment ...` to receive `402 Payment Required`.\n- Read challenge details from `WWW-Authenticate: Payment ...` and problem+json body.\n- Retry same endpoint with `Authorization: Payment ...`.\n- On success, response includes `Payment-Receipt` header.\n\nSolana MPP specifics:\n- Make the first call without `Authorization: Payment ...`.\n- Expect `402 Payment Required` and read the live `WWW-Authenticate` challenge.\n- Use the official `@solana/mpp/client` flow to build the payment credential.\n- Treat the runtime challenge as the source of truth for `amount`, `feePayer`, `feePayerKey`, `recentBlockhash`, `network`, `currency`, `recipient`.\n- Retry the exact same URL after signing.\n- On success, read and store the `Payment-Receipt` header.\n\nAlias behavior:\n- Count-style runtime aliases such as `/mpp-solana/heylolcomments/{winners}` and `/mpp-solana/heylolcomments-{winners}` may also be available even when only the canonical route is advertised here.\n\nExample flow:\n- First probe: `POST /mpp-solana/heylolcomments?url=https%3A%2F%2Fx.com%2Fexample%2Fstatus%2F1&amount=5&winners=3&instructions=Focus%20on%20realistic%20comments` without `Authorization`.\n- Paid retry: `POST /mpp-solana/heylolcomments?url=https%3A%2F%2Fx.com%2Fexample%2Fstatus%2F1&amount=5&winners=3&instructions=Focus%20on%20realistic%20comments` with `Authorization: Payment <credential>`.","x-payment-info":{"protocols":["mpp",{"mpp":{"method":"solana","intent":"pay-per-request","currency":"runtime-challenge"}}],"pricingMode":"quote","price":{"mode":"dynamic","currency":"USD"},"rail":"solana-mpp","challengeSource":"runtime","runtimeChallengeFields":["amount","feePayer","feePayerKey","recentBlockhash","network","currency","recipient"]},"parameters":[{"name":"Authorization","in":"header","required":false,"schema":{"type":"string"},"description":"MPP payment credential, typically in the shape `Payment <serialized-credential>`. Omit on first call to receive a challenge."},{"name":"url","in":"query","schema":{"type":"string","format":"uri"},"description":"Target URL."},{"name":"amount","in":"query","schema":{"type":"integer","minimum":1},"description":"Requested amount/slots."},{"name":"winners","in":"query","schema":{"type":"integer","minimum":1},"description":"Alias amount parameter for winner count."},{"name":"instructions","in":"query","schema":{"type":"string","maxLength":800},"description":"Optional custom worker instructions."}],"requestBody":{"required":false,"description":"Optional JSON body mirror of the query inputs for agent invocation. Query/path parameters remain the canonical runtime contract.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"properties":{"url":{"type":"string","format":"uri","description":"Target URL."},"amount":{"type":"integer","minimum":1,"description":"Requested amount/slots."},"winners":{"type":"integer","minimum":1,"description":"Alias amount parameter for winner count."},"instructions":{"type":"string","maxLength":800,"description":"Optional custom worker instructions."}}}}}},"responses":{"200":{"$ref":"#/components/responses/PaidSuccess"},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"409":{"$ref":"#/components/responses/Conflict"},"500":{"$ref":"#/components/responses/ServerError"}},"x-solana-mpp-guidance":{"firstCallWithoutAuthorization":true,"expectedInitialStatus":402,"officialClient":"@solana/mpp/client","retrySameUrl":true,"readPaymentReceiptHeader":true,"runtimeChallengeFields":["amount","feePayer","feePayerKey","recentBlockhash","network","currency","recipient"]}}},"/mpp-solana/heylolfollowers":{"post":{"operationId":"solana_post_L21wcC9oZXlsb2xmb2xsb3dlcnM","tags":["hey.lol"],"summary":"hey.lol followers (POST)","description":"Buy hey.lol followers.\n\nMPP flow:\n- Call without `Authorization: Payment ...` to receive `402 Payment Required`.\n- Read challenge details from `WWW-Authenticate: Payment ...` and problem+json body.\n- Retry same endpoint with `Authorization: Payment ...`.\n- On success, response includes `Payment-Receipt` header.\n\nSolana MPP specifics:\n- Make the first call without `Authorization: Payment ...`.\n- Expect `402 Payment Required` and read the live `WWW-Authenticate` challenge.\n- Use the official `@solana/mpp/client` flow to build the payment credential.\n- Treat the runtime challenge as the source of truth for `amount`, `feePayer`, `feePayerKey`, `recentBlockhash`, `network`, `currency`, `recipient`.\n- Retry the exact same URL after signing.\n- On success, read and store the `Payment-Receipt` header.\n\nAlias behavior:\n- Count-style runtime aliases such as `/mpp-solana/heylolfollowers/{winners}` and `/mpp-solana/heylolfollowers-{winners}` may also be available even when only the canonical route is advertised here.\n\nExample flow:\n- First probe: `POST /mpp-solana/heylolfollowers?handle=statikheadz&url=https%3A%2F%2Fx.com%2Fexample%2Fstatus%2F1&amount=5&winners=3` without `Authorization`.\n- Paid retry: `POST /mpp-solana/heylolfollowers?handle=statikheadz&url=https%3A%2F%2Fx.com%2Fexample%2Fstatus%2F1&amount=5&winners=3` with `Authorization: Payment <credential>`.","x-payment-info":{"protocols":["mpp",{"mpp":{"method":"solana","intent":"pay-per-request","currency":"runtime-challenge"}}],"pricingMode":"quote","price":{"mode":"dynamic","currency":"USD"},"rail":"solana-mpp","challengeSource":"runtime","runtimeChallengeFields":["amount","feePayer","feePayerKey","recentBlockhash","network","currency","recipient"]},"parameters":[{"name":"Authorization","in":"header","required":false,"schema":{"type":"string"},"description":"MPP payment credential, typically in the shape `Payment <serialized-credential>`. Omit on first call to receive a challenge."},{"name":"handle","in":"query","schema":{"type":"string"},"description":"Target handle/username."},{"name":"url","in":"query","schema":{"type":"string","format":"uri"},"description":"Target URL."},{"name":"amount","in":"query","schema":{"type":"integer","minimum":1},"description":"Requested amount/slots."},{"name":"winners","in":"query","schema":{"type":"integer","minimum":1},"description":"Alias amount parameter for winner count."}],"requestBody":{"required":false,"description":"Optional JSON body mirror of the query inputs for agent invocation. Query/path parameters remain the canonical runtime contract.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"properties":{"handle":{"type":"string","description":"Target handle/username."},"url":{"type":"string","format":"uri","description":"Target URL."},"amount":{"type":"integer","minimum":1,"description":"Requested amount/slots."},"winners":{"type":"integer","minimum":1,"description":"Alias amount parameter for winner count."}}}}}},"responses":{"200":{"$ref":"#/components/responses/PaidSuccess"},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"409":{"$ref":"#/components/responses/Conflict"},"500":{"$ref":"#/components/responses/ServerError"}},"x-solana-mpp-guidance":{"firstCallWithoutAuthorization":true,"expectedInitialStatus":402,"officialClient":"@solana/mpp/client","retrySameUrl":true,"readPaymentReceiptHeader":true,"runtimeChallengeFields":["amount","feePayer","feePayerKey","recentBlockhash","network","currency","recipient"]}}},"/mpp-solana/heylolraid":{"post":{"operationId":"solana_post_L21wcC9oZXlsb2xyYWlk","tags":["hey.lol"],"summary":"hey.lol raid (dynamic) (POST)","description":"Run a hey.lol raid with `size=small|medium|large`.\n\nMPP flow:\n- Call without `Authorization: Payment ...` to receive `402 Payment Required`.\n- Read challenge details from `WWW-Authenticate: Payment ...` and problem+json body.\n- Retry same endpoint with `Authorization: Payment ...`.\n- On success, response includes `Payment-Receipt` header.\n\nSolana MPP specifics:\n- Make the first call without `Authorization: Payment ...`.\n- Expect `402 Payment Required` and read the live `WWW-Authenticate` challenge.\n- Use the official `@solana/mpp/client` flow to build the payment credential.\n- Treat the runtime challenge as the source of truth for `amount`, `feePayer`, `feePayerKey`, `recentBlockhash`, `network`, `currency`, `recipient`.\n- Retry the exact same URL after signing.\n- On success, read and store the `Payment-Receipt` header.\n\nAlias behavior:\n- Preset aliases `/mpp-solana/heylolraid/small`, `/mpp-solana/heylolraid/medium`, and `/mpp-solana/heylolraid/large` are also supported.\n- Custom path alias `/mpp-solana/heylolraid/custom/{likes}/{reposts}/{comments}` remains supported at runtime.\n\nExample flow:\n- First probe: `POST /mpp-solana/heylolraid?url=https%3A%2F%2Fx.com%2Fexample%2Fstatus%2F1&size=medium` without `Authorization`.\n- Paid retry: `POST /mpp-solana/heylolraid?url=https%3A%2F%2Fx.com%2Fexample%2Fstatus%2F1&size=medium` with `Authorization: Payment <credential>`.","x-payment-info":{"protocols":["mpp",{"mpp":{"method":"solana","intent":"pay-per-request","currency":"runtime-challenge"}}],"pricingMode":"quote","price":{"mode":"dynamic","currency":"USD"},"rail":"solana-mpp","challengeSource":"runtime","runtimeChallengeFields":["amount","feePayer","feePayerKey","recentBlockhash","network","currency","recipient"]},"parameters":[{"name":"Authorization","in":"header","required":false,"schema":{"type":"string"},"description":"MPP payment credential, typically in the shape `Payment <serialized-credential>`. Omit on first call to receive a challenge."},{"name":"url","in":"query","schema":{"type":"string","format":"uri"},"description":"Target URL."},{"name":"size","in":"query","schema":{"type":"string","enum":["small","medium","large","mega"]},"description":"Raid preset size."}],"requestBody":{"required":false,"description":"Optional JSON body mirror of the query inputs for agent invocation. Query/path parameters remain the canonical runtime contract.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"properties":{"url":{"type":"string","format":"uri","description":"Target URL."},"size":{"type":"string","enum":["small","medium","large","mega"],"description":"Raid preset size."}}}}}},"responses":{"200":{"$ref":"#/components/responses/PaidSuccess"},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"409":{"$ref":"#/components/responses/Conflict"},"500":{"$ref":"#/components/responses/ServerError"}},"x-solana-mpp-guidance":{"firstCallWithoutAuthorization":true,"expectedInitialStatus":402,"officialClient":"@solana/mpp/client","retrySameUrl":true,"readPaymentReceiptHeader":true,"runtimeChallengeFields":["amount","feePayer","feePayerKey","recentBlockhash","network","currency","recipient"]}}},"/mpp-solana/heylolraid/small":{"post":{"operationId":"solana_post_L21wcC9oZXlsb2xyYWlkL3NtYWxs","tags":["hey.lol"],"summary":"hey.lol raid small (POST)","description":"Preset hey.lol raid small.\n\nMPP flow:\n- Call without `Authorization: Payment ...` to receive `402 Payment Required`.\n- Read challenge details from `WWW-Authenticate: Payment ...` and problem+json body.\n- Retry same endpoint with `Authorization: Payment ...`.\n- On success, response includes `Payment-Receipt` header.\n\nSolana MPP specifics:\n- Make the first call without `Authorization: Payment ...`.\n- Expect `402 Payment Required` and read the live `WWW-Authenticate` challenge.\n- Use the official `@solana/mpp/client` flow to build the payment credential.\n- Treat the runtime challenge as the source of truth for `amount`, `feePayer`, `feePayerKey`, `recentBlockhash`, `network`, `currency`, `recipient`.\n- Retry the exact same URL after signing.\n- On success, read and store the `Payment-Receipt` header.\n\nExample flow:\n- First probe: `POST /mpp-solana/heylolraid/small?url=https%3A%2F%2Fx.com%2Fexample%2Fstatus%2F1` without `Authorization`.\n- Paid retry: `POST /mpp-solana/heylolraid/small?url=https%3A%2F%2Fx.com%2Fexample%2Fstatus%2F1` with `Authorization: Payment <credential>`.","x-payment-info":{"protocols":["mpp",{"mpp":{"method":"solana","intent":"pay-per-request","currency":"runtime-challenge"}}],"pricingMode":"fixed","price":{"mode":"fixed","currency":"USD","amount":"[object Object]"},"rail":"solana-mpp","challengeSource":"runtime","runtimeChallengeFields":["amount","feePayer","feePayerKey","recentBlockhash","network","currency","recipient"]},"parameters":[{"name":"Authorization","in":"header","required":false,"schema":{"type":"string"},"description":"MPP payment credential, typically in the shape `Payment <serialized-credential>`. Omit on first call to receive a challenge."},{"name":"url","in":"query","schema":{"type":"string","format":"uri"},"description":"Target URL."}],"requestBody":{"required":false,"description":"Optional JSON body mirror of the query inputs for agent invocation. Query/path parameters remain the canonical runtime contract.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"properties":{"url":{"type":"string","format":"uri","description":"Target URL."}}}}}},"responses":{"200":{"$ref":"#/components/responses/PaidSuccess"},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"409":{"$ref":"#/components/responses/Conflict"},"500":{"$ref":"#/components/responses/ServerError"}},"x-solana-mpp-guidance":{"firstCallWithoutAuthorization":true,"expectedInitialStatus":402,"officialClient":"@solana/mpp/client","retrySameUrl":true,"readPaymentReceiptHeader":true,"runtimeChallengeFields":["amount","feePayer","feePayerKey","recentBlockhash","network","currency","recipient"]}}},"/mpp-solana/heylolraid/medium":{"post":{"operationId":"solana_post_L21wcC9oZXlsb2xyYWlkL21lZGl1bQ","tags":["hey.lol"],"summary":"hey.lol raid medium (POST)","description":"Preset hey.lol raid medium.\n\nMPP flow:\n- Call without `Authorization: Payment ...` to receive `402 Payment Required`.\n- Read challenge details from `WWW-Authenticate: Payment ...` and problem+json body.\n- Retry same endpoint with `Authorization: Payment ...`.\n- On success, response includes `Payment-Receipt` header.\n\nSolana MPP specifics:\n- Make the first call without `Authorization: Payment ...`.\n- Expect `402 Payment Required` and read the live `WWW-Authenticate` challenge.\n- Use the official `@solana/mpp/client` flow to build the payment credential.\n- Treat the runtime challenge as the source of truth for `amount`, `feePayer`, `feePayerKey`, `recentBlockhash`, `network`, `currency`, `recipient`.\n- Retry the exact same URL after signing.\n- On success, read and store the `Payment-Receipt` header.\n\nExample flow:\n- First probe: `POST /mpp-solana/heylolraid/medium?url=https%3A%2F%2Fx.com%2Fexample%2Fstatus%2F1` without `Authorization`.\n- Paid retry: `POST /mpp-solana/heylolraid/medium?url=https%3A%2F%2Fx.com%2Fexample%2Fstatus%2F1` with `Authorization: Payment <credential>`.","x-payment-info":{"protocols":["mpp",{"mpp":{"method":"solana","intent":"pay-per-request","currency":"runtime-challenge"}}],"pricingMode":"fixed","price":{"mode":"fixed","currency":"USD","amount":"[object Object]"},"rail":"solana-mpp","challengeSource":"runtime","runtimeChallengeFields":["amount","feePayer","feePayerKey","recentBlockhash","network","currency","recipient"]},"parameters":[{"name":"Authorization","in":"header","required":false,"schema":{"type":"string"},"description":"MPP payment credential, typically in the shape `Payment <serialized-credential>`. Omit on first call to receive a challenge."},{"name":"url","in":"query","schema":{"type":"string","format":"uri"},"description":"Target URL."}],"requestBody":{"required":false,"description":"Optional JSON body mirror of the query inputs for agent invocation. Query/path parameters remain the canonical runtime contract.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"properties":{"url":{"type":"string","format":"uri","description":"Target URL."}}}}}},"responses":{"200":{"$ref":"#/components/responses/PaidSuccess"},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"409":{"$ref":"#/components/responses/Conflict"},"500":{"$ref":"#/components/responses/ServerError"}},"x-solana-mpp-guidance":{"firstCallWithoutAuthorization":true,"expectedInitialStatus":402,"officialClient":"@solana/mpp/client","retrySameUrl":true,"readPaymentReceiptHeader":true,"runtimeChallengeFields":["amount","feePayer","feePayerKey","recentBlockhash","network","currency","recipient"]}}},"/mpp-solana/heylolraid/large":{"post":{"operationId":"solana_post_L21wcC9oZXlsb2xyYWlkL2xhcmdl","tags":["hey.lol"],"summary":"hey.lol raid large (POST)","description":"Preset hey.lol raid large.\n\nMPP flow:\n- Call without `Authorization: Payment ...` to receive `402 Payment Required`.\n- Read challenge details from `WWW-Authenticate: Payment ...` and problem+json body.\n- Retry same endpoint with `Authorization: Payment ...`.\n- On success, response includes `Payment-Receipt` header.\n\nSolana MPP specifics:\n- Make the first call without `Authorization: Payment ...`.\n- Expect `402 Payment Required` and read the live `WWW-Authenticate` challenge.\n- Use the official `@solana/mpp/client` flow to build the payment credential.\n- Treat the runtime challenge as the source of truth for `amount`, `feePayer`, `feePayerKey`, `recentBlockhash`, `network`, `currency`, `recipient`.\n- Retry the exact same URL after signing.\n- On success, read and store the `Payment-Receipt` header.\n\nExample flow:\n- First probe: `POST /mpp-solana/heylolraid/large?url=https%3A%2F%2Fx.com%2Fexample%2Fstatus%2F1` without `Authorization`.\n- Paid retry: `POST /mpp-solana/heylolraid/large?url=https%3A%2F%2Fx.com%2Fexample%2Fstatus%2F1` with `Authorization: Payment <credential>`.","x-payment-info":{"protocols":["mpp",{"mpp":{"method":"solana","intent":"pay-per-request","currency":"runtime-challenge"}}],"pricingMode":"fixed","price":{"mode":"fixed","currency":"USD","amount":"[object Object]"},"rail":"solana-mpp","challengeSource":"runtime","runtimeChallengeFields":["amount","feePayer","feePayerKey","recentBlockhash","network","currency","recipient"]},"parameters":[{"name":"Authorization","in":"header","required":false,"schema":{"type":"string"},"description":"MPP payment credential, typically in the shape `Payment <serialized-credential>`. Omit on first call to receive a challenge."},{"name":"url","in":"query","schema":{"type":"string","format":"uri"},"description":"Target URL."}],"requestBody":{"required":false,"description":"Optional JSON body mirror of the query inputs for agent invocation. Query/path parameters remain the canonical runtime contract.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"properties":{"url":{"type":"string","format":"uri","description":"Target URL."}}}}}},"responses":{"200":{"$ref":"#/components/responses/PaidSuccess"},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"409":{"$ref":"#/components/responses/Conflict"},"500":{"$ref":"#/components/responses/ServerError"}},"x-solana-mpp-guidance":{"firstCallWithoutAuthorization":true,"expectedInitialStatus":402,"officialClient":"@solana/mpp/client","retrySameUrl":true,"readPaymentReceiptHeader":true,"runtimeChallengeFields":["amount","feePayer","feePayerKey","recentBlockhash","network","currency","recipient"]}}},"/mpp-solana/heylolraid/custom/{likes}/{reposts}/{comments}":{"post":{"operationId":"solana_post_L21wcC9oZXlsb2xyYWlkL2N1c3RvbS97bGlrZXN9L3tyZXBvc3RzfS97Y29tbWVudHN9","tags":["hey.lol"],"summary":"hey.lol raid custom (POST)","description":"Custom hey.lol raid with counts in path.\n\nMPP flow:\n- Call without `Authorization: Payment ...` to receive `402 Payment Required`.\n- Read challenge details from `WWW-Authenticate: Payment ...` and problem+json body.\n- Retry same endpoint with `Authorization: Payment ...`.\n- On success, response includes `Payment-Receipt` header.\n\nSolana MPP specifics:\n- Make the first call without `Authorization: Payment ...`.\n- Expect `402 Payment Required` and read the live `WWW-Authenticate` challenge.\n- Use the official `@solana/mpp/client` flow to build the payment credential.\n- Treat the runtime challenge as the source of truth for `amount`, `feePayer`, `feePayerKey`, `recentBlockhash`, `network`, `currency`, `recipient`.\n- Retry the exact same URL after signing.\n- On success, read and store the `Payment-Receipt` header.\n\nExample flow:\n- First probe: `POST /mpp-solana/heylolraid/custom/<likes>/<reposts>/<comments>?url=https%3A%2F%2Fx.com%2Fexample%2Fstatus%2F1` without `Authorization`.\n- Paid retry: `POST /mpp-solana/heylolraid/custom/<likes>/<reposts>/<comments>?url=https%3A%2F%2Fx.com%2Fexample%2Fstatus%2F1` with `Authorization: Payment <credential>`.","x-payment-info":{"protocols":["mpp",{"mpp":{"method":"solana","intent":"pay-per-request","currency":"runtime-challenge"}}],"pricingMode":"quote","price":{"mode":"dynamic","currency":"USD"},"rail":"solana-mpp","challengeSource":"runtime","runtimeChallengeFields":["amount","feePayer","feePayerKey","recentBlockhash","network","currency","recipient"]},"parameters":[{"name":"Authorization","in":"header","required":false,"schema":{"type":"string"},"description":"MPP payment credential, typically in the shape `Payment <serialized-credential>`. Omit on first call to receive a challenge."},{"name":"likes","in":"path","required":true,"schema":{"type":"integer","minimum":0},"description":"Likes count in custom path."},{"name":"reposts","in":"path","required":true,"schema":{"type":"integer","minimum":0},"description":"Reposts count in custom path."},{"name":"comments","in":"path","required":true,"schema":{"type":"integer","minimum":0},"description":"Comments count in custom path."},{"name":"url","in":"query","schema":{"type":"string","format":"uri"},"description":"Target URL."}],"requestBody":{"required":false,"description":"Optional JSON body mirror of the query inputs for agent invocation. Query/path parameters remain the canonical runtime contract.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"properties":{"url":{"type":"string","format":"uri","description":"Target URL."}}}}}},"responses":{"200":{"$ref":"#/components/responses/PaidSuccess"},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"409":{"$ref":"#/components/responses/Conflict"},"500":{"$ref":"#/components/responses/ServerError"}},"x-solana-mpp-guidance":{"firstCallWithoutAuthorization":true,"expectedInitialStatus":402,"officialClient":"@solana/mpp/client","retrySameUrl":true,"readPaymentReceiptHeader":true,"runtimeChallengeFields":["amount","feePayer","feePayerKey","recentBlockhash","network","currency","recipient"]}}},"/mpp-solana/ytlikes":{"post":{"operationId":"solana_post_L21wcC95dGxpa2Vz","tags":["YouTube"],"summary":"YouTube likes (POST)","description":"Buy YouTube likes.\n\nMPP flow:\n- Call without `Authorization: Payment ...` to receive `402 Payment Required`.\n- Read challenge details from `WWW-Authenticate: Payment ...` and problem+json body.\n- Retry same endpoint with `Authorization: Payment ...`.\n- On success, response includes `Payment-Receipt` header.\n\nSolana MPP specifics:\n- Make the first call without `Authorization: Payment ...`.\n- Expect `402 Payment Required` and read the live `WWW-Authenticate` challenge.\n- Use the official `@solana/mpp/client` flow to build the payment credential.\n- Treat the runtime challenge as the source of truth for `amount`, `feePayer`, `feePayerKey`, `recentBlockhash`, `network`, `currency`, `recipient`.\n- Retry the exact same URL after signing.\n- On success, read and store the `Payment-Receipt` header.\n\nAlias behavior:\n- Count-style runtime aliases such as `/mpp-solana/ytlikes/{winners}` and `/mpp-solana/ytlikes-{winners}` may also be available even when only the canonical route is advertised here.\n\nExample flow:\n- First probe: `POST /mpp-solana/ytlikes?url=https%3A%2F%2Fx.com%2Fexample%2Fstatus%2F1&amount=5&winners=3` without `Authorization`.\n- Paid retry: `POST /mpp-solana/ytlikes?url=https%3A%2F%2Fx.com%2Fexample%2Fstatus%2F1&amount=5&winners=3` with `Authorization: Payment <credential>`.","x-payment-info":{"protocols":["mpp",{"mpp":{"method":"solana","intent":"pay-per-request","currency":"runtime-challenge"}}],"pricingMode":"quote","price":{"mode":"dynamic","currency":"USD"},"rail":"solana-mpp","challengeSource":"runtime","runtimeChallengeFields":["amount","feePayer","feePayerKey","recentBlockhash","network","currency","recipient"]},"parameters":[{"name":"Authorization","in":"header","required":false,"schema":{"type":"string"},"description":"MPP payment credential, typically in the shape `Payment <serialized-credential>`. Omit on first call to receive a challenge."},{"name":"url","in":"query","schema":{"type":"string","format":"uri"},"description":"Target URL."},{"name":"amount","in":"query","schema":{"type":"integer","minimum":1},"description":"Requested amount/slots."},{"name":"winners","in":"query","schema":{"type":"integer","minimum":1},"description":"Alias amount parameter for winner count."}],"requestBody":{"required":false,"description":"Optional JSON body mirror of the query inputs for agent invocation. Query/path parameters remain the canonical runtime contract.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"properties":{"url":{"type":"string","format":"uri","description":"Target URL."},"amount":{"type":"integer","minimum":1,"description":"Requested amount/slots."},"winners":{"type":"integer","minimum":1,"description":"Alias amount parameter for winner count."}}}}}},"responses":{"200":{"$ref":"#/components/responses/PaidSuccess"},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"409":{"$ref":"#/components/responses/Conflict"},"500":{"$ref":"#/components/responses/ServerError"}},"x-solana-mpp-guidance":{"firstCallWithoutAuthorization":true,"expectedInitialStatus":402,"officialClient":"@solana/mpp/client","retrySameUrl":true,"readPaymentReceiptHeader":true,"runtimeChallengeFields":["amount","feePayer","feePayerKey","recentBlockhash","network","currency","recipient"]}}},"/mpp-solana/ytcomments":{"post":{"operationId":"solana_post_L21wcC95dGNvbW1lbnRz","tags":["YouTube"],"summary":"YouTube comments (POST)","description":"Buy YouTube comments.\n\nMPP flow:\n- Call without `Authorization: Payment ...` to receive `402 Payment Required`.\n- Read challenge details from `WWW-Authenticate: Payment ...` and problem+json body.\n- Retry same endpoint with `Authorization: Payment ...`.\n- On success, response includes `Payment-Receipt` header.\n\nSolana MPP specifics:\n- Make the first call without `Authorization: Payment ...`.\n- Expect `402 Payment Required` and read the live `WWW-Authenticate` challenge.\n- Use the official `@solana/mpp/client` flow to build the payment credential.\n- Treat the runtime challenge as the source of truth for `amount`, `feePayer`, `feePayerKey`, `recentBlockhash`, `network`, `currency`, `recipient`.\n- Retry the exact same URL after signing.\n- On success, read and store the `Payment-Receipt` header.\n\nAlias behavior:\n- Count-style runtime aliases such as `/mpp-solana/ytcomments/{winners}` and `/mpp-solana/ytcomments-{winners}` may also be available even when only the canonical route is advertised here.\n\nExample flow:\n- First probe: `POST /mpp-solana/ytcomments?url=https%3A%2F%2Fx.com%2Fexample%2Fstatus%2F1&amount=5&winners=3&instructions=Focus%20on%20realistic%20comments` without `Authorization`.\n- Paid retry: `POST /mpp-solana/ytcomments?url=https%3A%2F%2Fx.com%2Fexample%2Fstatus%2F1&amount=5&winners=3&instructions=Focus%20on%20realistic%20comments` with `Authorization: Payment <credential>`.","x-payment-info":{"protocols":["mpp",{"mpp":{"method":"solana","intent":"pay-per-request","currency":"runtime-challenge"}}],"pricingMode":"quote","price":{"mode":"dynamic","currency":"USD"},"rail":"solana-mpp","challengeSource":"runtime","runtimeChallengeFields":["amount","feePayer","feePayerKey","recentBlockhash","network","currency","recipient"]},"parameters":[{"name":"Authorization","in":"header","required":false,"schema":{"type":"string"},"description":"MPP payment credential, typically in the shape `Payment <serialized-credential>`. Omit on first call to receive a challenge."},{"name":"url","in":"query","schema":{"type":"string","format":"uri"},"description":"Target URL."},{"name":"amount","in":"query","schema":{"type":"integer","minimum":1},"description":"Requested amount/slots."},{"name":"winners","in":"query","schema":{"type":"integer","minimum":1},"description":"Alias amount parameter for winner count."},{"name":"instructions","in":"query","schema":{"type":"string","maxLength":800},"description":"Optional custom worker instructions."}],"requestBody":{"required":false,"description":"Optional JSON body mirror of the query inputs for agent invocation. Query/path parameters remain the canonical runtime contract.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"properties":{"url":{"type":"string","format":"uri","description":"Target URL."},"amount":{"type":"integer","minimum":1,"description":"Requested amount/slots."},"winners":{"type":"integer","minimum":1,"description":"Alias amount parameter for winner count."},"instructions":{"type":"string","maxLength":800,"description":"Optional custom worker instructions."}}}}}},"responses":{"200":{"$ref":"#/components/responses/PaidSuccess"},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"409":{"$ref":"#/components/responses/Conflict"},"500":{"$ref":"#/components/responses/ServerError"}},"x-solana-mpp-guidance":{"firstCallWithoutAuthorization":true,"expectedInitialStatus":402,"officialClient":"@solana/mpp/client","retrySameUrl":true,"readPaymentReceiptHeader":true,"runtimeChallengeFields":["amount","feePayer","feePayerKey","recentBlockhash","network","currency","recipient"]}}},"/mpp-solana/ytsubs":{"post":{"operationId":"solana_post_L21wcC95dHN1YnM","tags":["YouTube"],"summary":"YouTube subscribers (POST)","description":"Buy YouTube subscribers.\n\nMPP flow:\n- Call without `Authorization: Payment ...` to receive `402 Payment Required`.\n- Read challenge details from `WWW-Authenticate: Payment ...` and problem+json body.\n- Retry same endpoint with `Authorization: Payment ...`.\n- On success, response includes `Payment-Receipt` header.\n\nSolana MPP specifics:\n- Make the first call without `Authorization: Payment ...`.\n- Expect `402 Payment Required` and read the live `WWW-Authenticate` challenge.\n- Use the official `@solana/mpp/client` flow to build the payment credential.\n- Treat the runtime challenge as the source of truth for `amount`, `feePayer`, `feePayerKey`, `recentBlockhash`, `network`, `currency`, `recipient`.\n- Retry the exact same URL after signing.\n- On success, read and store the `Payment-Receipt` header.\n\nAlias behavior:\n- Count-style runtime aliases such as `/mpp-solana/ytsubs/{winners}` and `/mpp-solana/ytsubs-{winners}` may also be available even when only the canonical route is advertised here.\n\nExample flow:\n- First probe: `POST /mpp-solana/ytsubs?handle=statikheadz&url=https%3A%2F%2Fx.com%2Fexample%2Fstatus%2F1&amount=5&winners=3` without `Authorization`.\n- Paid retry: `POST /mpp-solana/ytsubs?handle=statikheadz&url=https%3A%2F%2Fx.com%2Fexample%2Fstatus%2F1&amount=5&winners=3` with `Authorization: Payment <credential>`.","x-payment-info":{"protocols":["mpp",{"mpp":{"method":"solana","intent":"pay-per-request","currency":"runtime-challenge"}}],"pricingMode":"quote","price":{"mode":"dynamic","currency":"USD"},"rail":"solana-mpp","challengeSource":"runtime","runtimeChallengeFields":["amount","feePayer","feePayerKey","recentBlockhash","network","currency","recipient"]},"parameters":[{"name":"Authorization","in":"header","required":false,"schema":{"type":"string"},"description":"MPP payment credential, typically in the shape `Payment <serialized-credential>`. Omit on first call to receive a challenge."},{"name":"handle","in":"query","schema":{"type":"string"},"description":"Target handle/username."},{"name":"url","in":"query","schema":{"type":"string","format":"uri"},"description":"Target URL."},{"name":"amount","in":"query","schema":{"type":"integer","minimum":1},"description":"Requested amount/slots."},{"name":"winners","in":"query","schema":{"type":"integer","minimum":1},"description":"Alias amount parameter for winner count."}],"requestBody":{"required":false,"description":"Optional JSON body mirror of the query inputs for agent invocation. Query/path parameters remain the canonical runtime contract.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"properties":{"handle":{"type":"string","description":"Target handle/username."},"url":{"type":"string","format":"uri","description":"Target URL."},"amount":{"type":"integer","minimum":1,"description":"Requested amount/slots."},"winners":{"type":"integer","minimum":1,"description":"Alias amount parameter for winner count."}}}}}},"responses":{"200":{"$ref":"#/components/responses/PaidSuccess"},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"409":{"$ref":"#/components/responses/Conflict"},"500":{"$ref":"#/components/responses/ServerError"}},"x-solana-mpp-guidance":{"firstCallWithoutAuthorization":true,"expectedInitialStatus":402,"officialClient":"@solana/mpp/client","retrySameUrl":true,"readPaymentReceiptHeader":true,"runtimeChallengeFields":["amount","feePayer","feePayerKey","recentBlockhash","network","currency","recipient"]}}},"/mpp-solana/tgmembers":{"post":{"operationId":"solana_post_L21wcC90Z21lbWJlcnM","tags":["Telegram / Discord"],"summary":"Telegram members (POST)","description":"Buy Telegram members.\n\nMPP flow:\n- Call without `Authorization: Payment ...` to receive `402 Payment Required`.\n- Read challenge details from `WWW-Authenticate: Payment ...` and problem+json body.\n- Retry same endpoint with `Authorization: Payment ...`.\n- On success, response includes `Payment-Receipt` header.\n\nSolana MPP specifics:\n- Make the first call without `Authorization: Payment ...`.\n- Expect `402 Payment Required` and read the live `WWW-Authenticate` challenge.\n- Use the official `@solana/mpp/client` flow to build the payment credential.\n- Treat the runtime challenge as the source of truth for `amount`, `feePayer`, `feePayerKey`, `recentBlockhash`, `network`, `currency`, `recipient`.\n- Retry the exact same URL after signing.\n- On success, read and store the `Payment-Receipt` header.\n\nAlias behavior:\n- Count-style runtime aliases such as `/mpp-solana/tgmembers/{winners}` and `/mpp-solana/tgmembers-{winners}` may also be available even when only the canonical route is advertised here.\n\nExample flow:\n- First probe: `POST /mpp-solana/tgmembers?url=https%3A%2F%2Fx.com%2Fexample%2Fstatus%2F1&join=https%3A%2F%2Ft.me%2Fexample&amount=5&winners=3` without `Authorization`.\n- Paid retry: `POST /mpp-solana/tgmembers?url=https%3A%2F%2Fx.com%2Fexample%2Fstatus%2F1&join=https%3A%2F%2Ft.me%2Fexample&amount=5&winners=3` with `Authorization: Payment <credential>`.","x-payment-info":{"protocols":["mpp",{"mpp":{"method":"solana","intent":"pay-per-request","currency":"runtime-challenge"}}],"pricingMode":"quote","price":{"mode":"dynamic","currency":"USD"},"rail":"solana-mpp","challengeSource":"runtime","runtimeChallengeFields":["amount","feePayer","feePayerKey","recentBlockhash","network","currency","recipient"]},"parameters":[{"name":"Authorization","in":"header","required":false,"schema":{"type":"string"},"description":"MPP payment credential, typically in the shape `Payment <serialized-credential>`. Omit on first call to receive a challenge."},{"name":"url","in":"query","schema":{"type":"string","format":"uri"},"description":"Target URL."},{"name":"join","in":"query","schema":{"type":"string"},"description":"Telegram join target."},{"name":"amount","in":"query","schema":{"type":"integer","minimum":1},"description":"Requested amount/slots."},{"name":"winners","in":"query","schema":{"type":"integer","minimum":1},"description":"Alias amount parameter for winner count."}],"requestBody":{"required":false,"description":"Optional JSON body mirror of the query inputs for agent invocation. Query/path parameters remain the canonical runtime contract.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"properties":{"url":{"type":"string","format":"uri","description":"Target URL."},"join":{"type":"string","description":"Telegram join target."},"amount":{"type":"integer","minimum":1,"description":"Requested amount/slots."},"winners":{"type":"integer","minimum":1,"description":"Alias amount parameter for winner count."}}}}}},"responses":{"200":{"$ref":"#/components/responses/PaidSuccess"},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"409":{"$ref":"#/components/responses/Conflict"},"500":{"$ref":"#/components/responses/ServerError"}},"x-solana-mpp-guidance":{"firstCallWithoutAuthorization":true,"expectedInitialStatus":402,"officialClient":"@solana/mpp/client","retrySameUrl":true,"readPaymentReceiptHeader":true,"runtimeChallengeFields":["amount","feePayer","feePayerKey","recentBlockhash","network","currency","recipient"]}}},"/mpp-solana/dex-rocket":{"post":{"operationId":"solana_post_L21wcC9kZXgtcm9ja2V0","tags":["Dex / Votes"],"summary":"Dex rockets (POST)","description":"Buy DexScreener rockets.\n\nMPP flow:\n- Call without `Authorization: Payment ...` to receive `402 Payment Required`.\n- Read challenge details from `WWW-Authenticate: Payment ...` and problem+json body.\n- Retry same endpoint with `Authorization: Payment ...`.\n- On success, response includes `Payment-Receipt` header.\n\nSolana MPP specifics:\n- Make the first call without `Authorization: Payment ...`.\n- Expect `402 Payment Required` and read the live `WWW-Authenticate` challenge.\n- Use the official `@solana/mpp/client` flow to build the payment credential.\n- Treat the runtime challenge as the source of truth for `amount`, `feePayer`, `feePayerKey`, `recentBlockhash`, `network`, `currency`, `recipient`.\n- Retry the exact same URL after signing.\n- On success, read and store the `Payment-Receipt` header.\n\nAlias behavior:\n- Count-style runtime aliases such as `/mpp-solana/dex-rocket/{winners}` and `/mpp-solana/dex-rocket-{winners}` may also be available even when only the canonical route is advertised here.\n\nExample flow:\n- First probe: `POST /mpp-solana/dex-rocket?url=https%3A%2F%2Fx.com%2Fexample%2Fstatus%2F1&amount=5&winners=3` without `Authorization`.\n- Paid retry: `POST /mpp-solana/dex-rocket?url=https%3A%2F%2Fx.com%2Fexample%2Fstatus%2F1&amount=5&winners=3` with `Authorization: Payment <credential>`.","x-payment-info":{"protocols":["mpp",{"mpp":{"method":"solana","intent":"pay-per-request","currency":"runtime-challenge"}}],"pricingMode":"quote","price":{"mode":"dynamic","currency":"USD"},"rail":"solana-mpp","challengeSource":"runtime","runtimeChallengeFields":["amount","feePayer","feePayerKey","recentBlockhash","network","currency","recipient"]},"parameters":[{"name":"Authorization","in":"header","required":false,"schema":{"type":"string"},"description":"MPP payment credential, typically in the shape `Payment <serialized-credential>`. Omit on first call to receive a challenge."},{"name":"url","in":"query","schema":{"type":"string","format":"uri"},"description":"Target URL."},{"name":"amount","in":"query","schema":{"type":"integer","minimum":1},"description":"Requested amount/slots."},{"name":"winners","in":"query","schema":{"type":"integer","minimum":1},"description":"Alias amount parameter for winner count."}],"requestBody":{"required":false,"description":"Optional JSON body mirror of the query inputs for agent invocation. Query/path parameters remain the canonical runtime contract.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"properties":{"url":{"type":"string","format":"uri","description":"Target URL."},"amount":{"type":"integer","minimum":1,"description":"Requested amount/slots."},"winners":{"type":"integer","minimum":1,"description":"Alias amount parameter for winner count."}}}}}},"responses":{"200":{"$ref":"#/components/responses/PaidSuccess"},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"409":{"$ref":"#/components/responses/Conflict"},"500":{"$ref":"#/components/responses/ServerError"}},"x-solana-mpp-guidance":{"firstCallWithoutAuthorization":true,"expectedInitialStatus":402,"officialClient":"@solana/mpp/client","retrySameUrl":true,"readPaymentReceiptHeader":true,"runtimeChallengeFields":["amount","feePayer","feePayerKey","recentBlockhash","network","currency","recipient"]}}},"/mpp-solana/skeletonvote":{"post":{"operationId":"solana_post_L21wcC9za2VsZXRvbnZvdGU","tags":["Dex / Votes"],"summary":"Skeleton vote (POST)","description":"Buy Skeleton votes.\n\nMPP flow:\n- Call without `Authorization: Payment ...` to receive `402 Payment Required`.\n- Read challenge details from `WWW-Authenticate: Payment ...` and problem+json body.\n- Retry same endpoint with `Authorization: Payment ...`.\n- On success, response includes `Payment-Receipt` header.\n\nSolana MPP specifics:\n- Make the first call without `Authorization: Payment ...`.\n- Expect `402 Payment Required` and read the live `WWW-Authenticate` challenge.\n- Use the official `@solana/mpp/client` flow to build the payment credential.\n- Treat the runtime challenge as the source of truth for `amount`, `feePayer`, `feePayerKey`, `recentBlockhash`, `network`, `currency`, `recipient`.\n- Retry the exact same URL after signing.\n- On success, read and store the `Payment-Receipt` header.\n\nAlias behavior:\n- Count-style runtime aliases such as `/mpp-solana/skeletonvote/{winners}` and `/mpp-solana/skeletonvote-{winners}` may also be available even when only the canonical route is advertised here.\n\nExample flow:\n- First probe: `POST /mpp-solana/skeletonvote?url=https%3A%2F%2Fx.com%2Fexample%2Fstatus%2F1&amount=5&winners=3` without `Authorization`.\n- Paid retry: `POST /mpp-solana/skeletonvote?url=https%3A%2F%2Fx.com%2Fexample%2Fstatus%2F1&amount=5&winners=3` with `Authorization: Payment <credential>`.","x-payment-info":{"protocols":["mpp",{"mpp":{"method":"solana","intent":"pay-per-request","currency":"runtime-challenge"}}],"pricingMode":"quote","price":{"mode":"dynamic","currency":"USD"},"rail":"solana-mpp","challengeSource":"runtime","runtimeChallengeFields":["amount","feePayer","feePayerKey","recentBlockhash","network","currency","recipient"]},"parameters":[{"name":"Authorization","in":"header","required":false,"schema":{"type":"string"},"description":"MPP payment credential, typically in the shape `Payment <serialized-credential>`. Omit on first call to receive a challenge."},{"name":"url","in":"query","schema":{"type":"string","format":"uri"},"description":"Target URL."},{"name":"amount","in":"query","schema":{"type":"integer","minimum":1},"description":"Requested amount/slots."},{"name":"winners","in":"query","schema":{"type":"integer","minimum":1},"description":"Alias amount parameter for winner count."}],"requestBody":{"required":false,"description":"Optional JSON body mirror of the query inputs for agent invocation. Query/path parameters remain the canonical runtime contract.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"properties":{"url":{"type":"string","format":"uri","description":"Target URL."},"amount":{"type":"integer","minimum":1,"description":"Requested amount/slots."},"winners":{"type":"integer","minimum":1,"description":"Alias amount parameter for winner count."}}}}}},"responses":{"200":{"$ref":"#/components/responses/PaidSuccess"},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"409":{"$ref":"#/components/responses/Conflict"},"500":{"$ref":"#/components/responses/ServerError"}},"x-solana-mpp-guidance":{"firstCallWithoutAuthorization":true,"expectedInitialStatus":402,"officialClient":"@solana/mpp/client","retrySameUrl":true,"readPaymentReceiptHeader":true,"runtimeChallengeFields":["amount","feePayer","feePayerKey","recentBlockhash","network","currency","recipient"]}}},"/mpp-solana/majorvote":{"post":{"operationId":"solana_post_L21wcC9tYWpvcnZvdGU","tags":["Dex / Votes"],"summary":"Major vote (POST)","description":"Buy Major votes.\n\nMPP flow:\n- Call without `Authorization: Payment ...` to receive `402 Payment Required`.\n- Read challenge details from `WWW-Authenticate: Payment ...` and problem+json body.\n- Retry same endpoint with `Authorization: Payment ...`.\n- On success, response includes `Payment-Receipt` header.\n\nSolana MPP specifics:\n- Make the first call without `Authorization: Payment ...`.\n- Expect `402 Payment Required` and read the live `WWW-Authenticate` challenge.\n- Use the official `@solana/mpp/client` flow to build the payment credential.\n- Treat the runtime challenge as the source of truth for `amount`, `feePayer`, `feePayerKey`, `recentBlockhash`, `network`, `currency`, `recipient`.\n- Retry the exact same URL after signing.\n- On success, read and store the `Payment-Receipt` header.\n\nAlias behavior:\n- Count-style runtime aliases such as `/mpp-solana/majorvote/{winners}` and `/mpp-solana/majorvote-{winners}` may also be available even when only the canonical route is advertised here.\n\nExample flow:\n- First probe: `POST /mpp-solana/majorvote?url=https%3A%2F%2Fx.com%2Fexample%2Fstatus%2F1&amount=5&winners=3` without `Authorization`.\n- Paid retry: `POST /mpp-solana/majorvote?url=https%3A%2F%2Fx.com%2Fexample%2Fstatus%2F1&amount=5&winners=3` with `Authorization: Payment <credential>`.","x-payment-info":{"protocols":["mpp",{"mpp":{"method":"solana","intent":"pay-per-request","currency":"runtime-challenge"}}],"pricingMode":"quote","price":{"mode":"dynamic","currency":"USD"},"rail":"solana-mpp","challengeSource":"runtime","runtimeChallengeFields":["amount","feePayer","feePayerKey","recentBlockhash","network","currency","recipient"]},"parameters":[{"name":"Authorization","in":"header","required":false,"schema":{"type":"string"},"description":"MPP payment credential, typically in the shape `Payment <serialized-credential>`. Omit on first call to receive a challenge."},{"name":"url","in":"query","schema":{"type":"string","format":"uri"},"description":"Target URL."},{"name":"amount","in":"query","schema":{"type":"integer","minimum":1},"description":"Requested amount/slots."},{"name":"winners","in":"query","schema":{"type":"integer","minimum":1},"description":"Alias amount parameter for winner count."}],"requestBody":{"required":false,"description":"Optional JSON body mirror of the query inputs for agent invocation. Query/path parameters remain the canonical runtime contract.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"properties":{"url":{"type":"string","format":"uri","description":"Target URL."},"amount":{"type":"integer","minimum":1,"description":"Requested amount/slots."},"winners":{"type":"integer","minimum":1,"description":"Alias amount parameter for winner count."}}}}}},"responses":{"200":{"$ref":"#/components/responses/PaidSuccess"},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"409":{"$ref":"#/components/responses/Conflict"},"500":{"$ref":"#/components/responses/ServerError"}},"x-solana-mpp-guidance":{"firstCallWithoutAuthorization":true,"expectedInitialStatus":402,"officialClient":"@solana/mpp/client","retrySameUrl":true,"readPaymentReceiptHeader":true,"runtimeChallengeFields":["amount","feePayer","feePayerKey","recentBlockhash","network","currency","recipient"]}}},"/mpp-solana/cmcvote":{"post":{"operationId":"solana_post_L21wcC9jbWN2b3Rl","tags":["Dex / Votes"],"summary":"CMC vote (POST)","description":"Buy CoinMarketCap votes.\n\nMPP flow:\n- Call without `Authorization: Payment ...` to receive `402 Payment Required`.\n- Read challenge details from `WWW-Authenticate: Payment ...` and problem+json body.\n- Retry same endpoint with `Authorization: Payment ...`.\n- On success, response includes `Payment-Receipt` header.\n\nSolana MPP specifics:\n- Make the first call without `Authorization: Payment ...`.\n- Expect `402 Payment Required` and read the live `WWW-Authenticate` challenge.\n- Use the official `@solana/mpp/client` flow to build the payment credential.\n- Treat the runtime challenge as the source of truth for `amount`, `feePayer`, `feePayerKey`, `recentBlockhash`, `network`, `currency`, `recipient`.\n- Retry the exact same URL after signing.\n- On success, read and store the `Payment-Receipt` header.\n\nAlias behavior:\n- Count-style runtime aliases such as `/mpp-solana/cmcvote/{winners}` and `/mpp-solana/cmcvote-{winners}` may also be available even when only the canonical route is advertised here.\n- Aliases `/mpp-solana/coinmarketcap_vote` and `/mpp-solana/cmc_vote` are also supported.\n\nExample flow:\n- First probe: `POST /mpp-solana/cmcvote?url=https%3A%2F%2Fx.com%2Fexample%2Fstatus%2F1&amount=5&winners=3` without `Authorization`.\n- Paid retry: `POST /mpp-solana/cmcvote?url=https%3A%2F%2Fx.com%2Fexample%2Fstatus%2F1&amount=5&winners=3` with `Authorization: Payment <credential>`.","x-payment-info":{"protocols":["mpp",{"mpp":{"method":"solana","intent":"pay-per-request","currency":"runtime-challenge"}}],"pricingMode":"quote","price":{"mode":"dynamic","currency":"USD"},"rail":"solana-mpp","challengeSource":"runtime","runtimeChallengeFields":["amount","feePayer","feePayerKey","recentBlockhash","network","currency","recipient"]},"parameters":[{"name":"Authorization","in":"header","required":false,"schema":{"type":"string"},"description":"MPP payment credential, typically in the shape `Payment <serialized-credential>`. Omit on first call to receive a challenge."},{"name":"url","in":"query","schema":{"type":"string","format":"uri"},"description":"Target URL."},{"name":"amount","in":"query","schema":{"type":"integer","minimum":1},"description":"Requested amount/slots."},{"name":"winners","in":"query","schema":{"type":"integer","minimum":1},"description":"Alias amount parameter for winner count."}],"requestBody":{"required":false,"description":"Optional JSON body mirror of the query inputs for agent invocation. Query/path parameters remain the canonical runtime contract.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"properties":{"url":{"type":"string","format":"uri","description":"Target URL."},"amount":{"type":"integer","minimum":1,"description":"Requested amount/slots."},"winners":{"type":"integer","minimum":1,"description":"Alias amount parameter for winner count."}}}}}},"responses":{"200":{"$ref":"#/components/responses/PaidSuccess"},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"409":{"$ref":"#/components/responses/Conflict"},"500":{"$ref":"#/components/responses/ServerError"}},"x-solana-mpp-guidance":{"firstCallWithoutAuthorization":true,"expectedInitialStatus":402,"officialClient":"@solana/mpp/client","retrySameUrl":true,"readPaymentReceiptHeader":true,"runtimeChallengeFields":["amount","feePayer","feePayerKey","recentBlockhash","network","currency","recipient"]}}},"/mpp-solana/cgvote":{"post":{"operationId":"solana_post_L21wcC9jZ3ZvdGU","tags":["Dex / Votes"],"summary":"CoinGecko vote (POST)","description":"Buy CoinGecko votes.\n\nMPP flow:\n- Call without `Authorization: Payment ...` to receive `402 Payment Required`.\n- Read challenge details from `WWW-Authenticate: Payment ...` and problem+json body.\n- Retry same endpoint with `Authorization: Payment ...`.\n- On success, response includes `Payment-Receipt` header.\n\nSolana MPP specifics:\n- Make the first call without `Authorization: Payment ...`.\n- Expect `402 Payment Required` and read the live `WWW-Authenticate` challenge.\n- Use the official `@solana/mpp/client` flow to build the payment credential.\n- Treat the runtime challenge as the source of truth for `amount`, `feePayer`, `feePayerKey`, `recentBlockhash`, `network`, `currency`, `recipient`.\n- Retry the exact same URL after signing.\n- On success, read and store the `Payment-Receipt` header.\n\nAlias behavior:\n- Count-style runtime aliases such as `/mpp-solana/cgvote/{winners}` and `/mpp-solana/cgvote-{winners}` may also be available even when only the canonical route is advertised here.\n- Aliases `/mpp-solana/coingecko_vote` and `/mpp-solana/cg_vote` are also supported.\n\nExample flow:\n- First probe: `POST /mpp-solana/cgvote?url=https%3A%2F%2Fx.com%2Fexample%2Fstatus%2F1&amount=5&winners=3` without `Authorization`.\n- Paid retry: `POST /mpp-solana/cgvote?url=https%3A%2F%2Fx.com%2Fexample%2Fstatus%2F1&amount=5&winners=3` with `Authorization: Payment <credential>`.","x-payment-info":{"protocols":["mpp",{"mpp":{"method":"solana","intent":"pay-per-request","currency":"runtime-challenge"}}],"pricingMode":"quote","price":{"mode":"dynamic","currency":"USD"},"rail":"solana-mpp","challengeSource":"runtime","runtimeChallengeFields":["amount","feePayer","feePayerKey","recentBlockhash","network","currency","recipient"]},"parameters":[{"name":"Authorization","in":"header","required":false,"schema":{"type":"string"},"description":"MPP payment credential, typically in the shape `Payment <serialized-credential>`. Omit on first call to receive a challenge."},{"name":"url","in":"query","schema":{"type":"string","format":"uri"},"description":"Target URL."},{"name":"amount","in":"query","schema":{"type":"integer","minimum":1},"description":"Requested amount/slots."},{"name":"winners","in":"query","schema":{"type":"integer","minimum":1},"description":"Alias amount parameter for winner count."}],"requestBody":{"required":false,"description":"Optional JSON body mirror of the query inputs for agent invocation. Query/path parameters remain the canonical runtime contract.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"properties":{"url":{"type":"string","format":"uri","description":"Target URL."},"amount":{"type":"integer","minimum":1,"description":"Requested amount/slots."},"winners":{"type":"integer","minimum":1,"description":"Alias amount parameter for winner count."}}}}}},"responses":{"200":{"$ref":"#/components/responses/PaidSuccess"},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"409":{"$ref":"#/components/responses/Conflict"},"500":{"$ref":"#/components/responses/ServerError"}},"x-solana-mpp-guidance":{"firstCallWithoutAuthorization":true,"expectedInitialStatus":402,"officialClient":"@solana/mpp/client","retrySameUrl":true,"readPaymentReceiptHeader":true,"runtimeChallengeFields":["amount","feePayer","feePayerKey","recentBlockhash","network","currency","recipient"]}}},"/mpp-solana/moontokvote":{"post":{"operationId":"solana_post_L21wcC9tb29udG9rdm90ZQ","tags":["Dex / Votes"],"summary":"Moontok vote (POST)","description":"Buy Moontok votes.\n\nMPP flow:\n- Call without `Authorization: Payment ...` to receive `402 Payment Required`.\n- Read challenge details from `WWW-Authenticate: Payment ...` and problem+json body.\n- Retry same endpoint with `Authorization: Payment ...`.\n- On success, response includes `Payment-Receipt` header.\n\nSolana MPP specifics:\n- Make the first call without `Authorization: Payment ...`.\n- Expect `402 Payment Required` and read the live `WWW-Authenticate` challenge.\n- Use the official `@solana/mpp/client` flow to build the payment credential.\n- Treat the runtime challenge as the source of truth for `amount`, `feePayer`, `feePayerKey`, `recentBlockhash`, `network`, `currency`, `recipient`.\n- Retry the exact same URL after signing.\n- On success, read and store the `Payment-Receipt` header.\n\nAlias behavior:\n- Count-style runtime aliases such as `/mpp-solana/moontokvote/{winners}` and `/mpp-solana/moontokvote-{winners}` may also be available even when only the canonical route is advertised here.\n\nExample flow:\n- First probe: `POST /mpp-solana/moontokvote?url=https%3A%2F%2Fx.com%2Fexample%2Fstatus%2F1&amount=5&winners=3` without `Authorization`.\n- Paid retry: `POST /mpp-solana/moontokvote?url=https%3A%2F%2Fx.com%2Fexample%2Fstatus%2F1&amount=5&winners=3` with `Authorization: Payment <credential>`.","x-payment-info":{"protocols":["mpp",{"mpp":{"method":"solana","intent":"pay-per-request","currency":"runtime-challenge"}}],"pricingMode":"quote","price":{"mode":"dynamic","currency":"USD"},"rail":"solana-mpp","challengeSource":"runtime","runtimeChallengeFields":["amount","feePayer","feePayerKey","recentBlockhash","network","currency","recipient"]},"parameters":[{"name":"Authorization","in":"header","required":false,"schema":{"type":"string"},"description":"MPP payment credential, typically in the shape `Payment <serialized-credential>`. Omit on first call to receive a challenge."},{"name":"url","in":"query","schema":{"type":"string","format":"uri"},"description":"Target URL."},{"name":"amount","in":"query","schema":{"type":"integer","minimum":1},"description":"Requested amount/slots."},{"name":"winners","in":"query","schema":{"type":"integer","minimum":1},"description":"Alias amount parameter for winner count."}],"requestBody":{"required":false,"description":"Optional JSON body mirror of the query inputs for agent invocation. Query/path parameters remain the canonical runtime contract.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"properties":{"url":{"type":"string","format":"uri","description":"Target URL."},"amount":{"type":"integer","minimum":1,"description":"Requested amount/slots."},"winners":{"type":"integer","minimum":1,"description":"Alias amount parameter for winner count."}}}}}},"responses":{"200":{"$ref":"#/components/responses/PaidSuccess"},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"409":{"$ref":"#/components/responses/Conflict"},"500":{"$ref":"#/components/responses/ServerError"}},"x-solana-mpp-guidance":{"firstCallWithoutAuthorization":true,"expectedInitialStatus":402,"officialClient":"@solana/mpp/client","retrySameUrl":true,"readPaymentReceiptHeader":true,"runtimeChallengeFields":["amount","feePayer","feePayerKey","recentBlockhash","network","currency","recipient"]}}},"/mpp-solana/xraid":{"post":{"operationId":"solana_post_L21wcC94cmFpZA","tags":["X / Twitter"],"summary":"X raid (dynamic) (POST)","description":"Run an X raid with `size=small|medium|large|mega` (views included in preset bundles).\n\nMPP flow:\n- Call without `Authorization: Payment ...` to receive `402 Payment Required`.\n- Read challenge details from `WWW-Authenticate: Payment ...` and problem+json body.\n- Retry same endpoint with `Authorization: Payment ...`.\n- On success, response includes `Payment-Receipt` header.\n\nSolana MPP specifics:\n- Make the first call without `Authorization: Payment ...`.\n- Expect `402 Payment Required` and read the live `WWW-Authenticate` challenge.\n- Use the official `@solana/mpp/client` flow to build the payment credential.\n- Treat the runtime challenge as the source of truth for `amount`, `feePayer`, `feePayerKey`, `recentBlockhash`, `network`, `currency`, `recipient`.\n- Retry the exact same URL after signing.\n- On success, read and store the `Payment-Receipt` header.\n\nAlias behavior:\n- Preset aliases `/mpp-solana/xraid/small`, `/mpp-solana/xraid/medium`, `/mpp-solana/xraid/large`, and `/mpp-solana/xraid/mega` are also supported.\n- Custom path alias `/mpp-solana/xraid/custom/{likes}/{reposts}/{comments}/{bookmarks}` remains supported at runtime.\n\nExample flow:\n- First probe: `POST /mpp-solana/xraid?url=https%3A%2F%2Fx.com%2Fexample%2Fstatus%2F1&size=medium` without `Authorization`.\n- Paid retry: `POST /mpp-solana/xraid?url=https%3A%2F%2Fx.com%2Fexample%2Fstatus%2F1&size=medium` with `Authorization: Payment <credential>`.","x-payment-info":{"protocols":["mpp",{"mpp":{"method":"solana","intent":"pay-per-request","currency":"runtime-challenge"}}],"pricingMode":"quote","price":{"mode":"dynamic","currency":"USD"},"rail":"solana-mpp","challengeSource":"runtime","runtimeChallengeFields":["amount","feePayer","feePayerKey","recentBlockhash","network","currency","recipient"]},"parameters":[{"name":"Authorization","in":"header","required":false,"schema":{"type":"string"},"description":"MPP payment credential, typically in the shape `Payment <serialized-credential>`. Omit on first call to receive a challenge."},{"name":"url","in":"query","schema":{"type":"string","format":"uri"},"description":"Target URL."},{"name":"size","in":"query","schema":{"type":"string","enum":["small","medium","large","mega"]},"description":"Raid preset size."}],"requestBody":{"required":false,"description":"Optional JSON body mirror of the query inputs for agent invocation. Query/path parameters remain the canonical runtime contract.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"properties":{"url":{"type":"string","format":"uri","description":"Target URL."},"size":{"type":"string","enum":["small","medium","large","mega"],"description":"Raid preset size."}}}}}},"responses":{"200":{"$ref":"#/components/responses/PaidSuccess"},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"409":{"$ref":"#/components/responses/Conflict"},"500":{"$ref":"#/components/responses/ServerError"}},"x-solana-mpp-guidance":{"firstCallWithoutAuthorization":true,"expectedInitialStatus":402,"officialClient":"@solana/mpp/client","retrySameUrl":true,"readPaymentReceiptHeader":true,"runtimeChallengeFields":["amount","feePayer","feePayerKey","recentBlockhash","network","currency","recipient"]}}},"/mpp-solana/xraid/small":{"post":{"operationId":"solana_post_L21wcC94cmFpZC9zbWFsbA","tags":["X / Twitter"],"summary":"X raid small (POST)","description":"Preset X raid small.\n\nMPP flow:\n- Call without `Authorization: Payment ...` to receive `402 Payment Required`.\n- Read challenge details from `WWW-Authenticate: Payment ...` and problem+json body.\n- Retry same endpoint with `Authorization: Payment ...`.\n- On success, response includes `Payment-Receipt` header.\n\nSolana MPP specifics:\n- Make the first call without `Authorization: Payment ...`.\n- Expect `402 Payment Required` and read the live `WWW-Authenticate` challenge.\n- Use the official `@solana/mpp/client` flow to build the payment credential.\n- Treat the runtime challenge as the source of truth for `amount`, `feePayer`, `feePayerKey`, `recentBlockhash`, `network`, `currency`, `recipient`.\n- Retry the exact same URL after signing.\n- On success, read and store the `Payment-Receipt` header.\n\nExample flow:\n- First probe: `POST /mpp-solana/xraid/small?url=https%3A%2F%2Fx.com%2Fexample%2Fstatus%2F1` without `Authorization`.\n- Paid retry: `POST /mpp-solana/xraid/small?url=https%3A%2F%2Fx.com%2Fexample%2Fstatus%2F1` with `Authorization: Payment <credential>`.","x-payment-info":{"protocols":["mpp",{"mpp":{"method":"solana","intent":"pay-per-request","currency":"runtime-challenge"}}],"pricingMode":"fixed","price":{"mode":"fixed","currency":"USD","amount":"[object Object]"},"rail":"solana-mpp","challengeSource":"runtime","runtimeChallengeFields":["amount","feePayer","feePayerKey","recentBlockhash","network","currency","recipient"]},"parameters":[{"name":"Authorization","in":"header","required":false,"schema":{"type":"string"},"description":"MPP payment credential, typically in the shape `Payment <serialized-credential>`. Omit on first call to receive a challenge."},{"name":"url","in":"query","schema":{"type":"string","format":"uri"},"description":"Target URL."}],"requestBody":{"required":false,"description":"Optional JSON body mirror of the query inputs for agent invocation. Query/path parameters remain the canonical runtime contract.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"properties":{"url":{"type":"string","format":"uri","description":"Target URL."}}}}}},"responses":{"200":{"$ref":"#/components/responses/PaidSuccess"},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"409":{"$ref":"#/components/responses/Conflict"},"500":{"$ref":"#/components/responses/ServerError"}},"x-solana-mpp-guidance":{"firstCallWithoutAuthorization":true,"expectedInitialStatus":402,"officialClient":"@solana/mpp/client","retrySameUrl":true,"readPaymentReceiptHeader":true,"runtimeChallengeFields":["amount","feePayer","feePayerKey","recentBlockhash","network","currency","recipient"]}}},"/mpp-solana/xraid/medium":{"post":{"operationId":"solana_post_L21wcC94cmFpZC9tZWRpdW0","tags":["X / Twitter"],"summary":"X raid medium (POST)","description":"Preset X raid medium.\n\nMPP flow:\n- Call without `Authorization: Payment ...` to receive `402 Payment Required`.\n- Read challenge details from `WWW-Authenticate: Payment ...` and problem+json body.\n- Retry same endpoint with `Authorization: Payment ...`.\n- On success, response includes `Payment-Receipt` header.\n\nSolana MPP specifics:\n- Make the first call without `Authorization: Payment ...`.\n- Expect `402 Payment Required` and read the live `WWW-Authenticate` challenge.\n- Use the official `@solana/mpp/client` flow to build the payment credential.\n- Treat the runtime challenge as the source of truth for `amount`, `feePayer`, `feePayerKey`, `recentBlockhash`, `network`, `currency`, `recipient`.\n- Retry the exact same URL after signing.\n- On success, read and store the `Payment-Receipt` header.\n\nExample flow:\n- First probe: `POST /mpp-solana/xraid/medium?url=https%3A%2F%2Fx.com%2Fexample%2Fstatus%2F1` without `Authorization`.\n- Paid retry: `POST /mpp-solana/xraid/medium?url=https%3A%2F%2Fx.com%2Fexample%2Fstatus%2F1` with `Authorization: Payment <credential>`.","x-payment-info":{"protocols":["mpp",{"mpp":{"method":"solana","intent":"pay-per-request","currency":"runtime-challenge"}}],"pricingMode":"fixed","price":{"mode":"fixed","currency":"USD","amount":"[object Object]"},"rail":"solana-mpp","challengeSource":"runtime","runtimeChallengeFields":["amount","feePayer","feePayerKey","recentBlockhash","network","currency","recipient"]},"parameters":[{"name":"Authorization","in":"header","required":false,"schema":{"type":"string"},"description":"MPP payment credential, typically in the shape `Payment <serialized-credential>`. Omit on first call to receive a challenge."},{"name":"url","in":"query","schema":{"type":"string","format":"uri"},"description":"Target URL."}],"requestBody":{"required":false,"description":"Optional JSON body mirror of the query inputs for agent invocation. Query/path parameters remain the canonical runtime contract.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"properties":{"url":{"type":"string","format":"uri","description":"Target URL."}}}}}},"responses":{"200":{"$ref":"#/components/responses/PaidSuccess"},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"409":{"$ref":"#/components/responses/Conflict"},"500":{"$ref":"#/components/responses/ServerError"}},"x-solana-mpp-guidance":{"firstCallWithoutAuthorization":true,"expectedInitialStatus":402,"officialClient":"@solana/mpp/client","retrySameUrl":true,"readPaymentReceiptHeader":true,"runtimeChallengeFields":["amount","feePayer","feePayerKey","recentBlockhash","network","currency","recipient"]}}},"/mpp-solana/xraid/large":{"post":{"operationId":"solana_post_L21wcC94cmFpZC9sYXJnZQ","tags":["X / Twitter"],"summary":"X raid large (POST)","description":"Preset X raid large.\n\nMPP flow:\n- Call without `Authorization: Payment ...` to receive `402 Payment Required`.\n- Read challenge details from `WWW-Authenticate: Payment ...` and problem+json body.\n- Retry same endpoint with `Authorization: Payment ...`.\n- On success, response includes `Payment-Receipt` header.\n\nSolana MPP specifics:\n- Make the first call without `Authorization: Payment ...`.\n- Expect `402 Payment Required` and read the live `WWW-Authenticate` challenge.\n- Use the official `@solana/mpp/client` flow to build the payment credential.\n- Treat the runtime challenge as the source of truth for `amount`, `feePayer`, `feePayerKey`, `recentBlockhash`, `network`, `currency`, `recipient`.\n- Retry the exact same URL after signing.\n- On success, read and store the `Payment-Receipt` header.\n\nExample flow:\n- First probe: `POST /mpp-solana/xraid/large?url=https%3A%2F%2Fx.com%2Fexample%2Fstatus%2F1` without `Authorization`.\n- Paid retry: `POST /mpp-solana/xraid/large?url=https%3A%2F%2Fx.com%2Fexample%2Fstatus%2F1` with `Authorization: Payment <credential>`.","x-payment-info":{"protocols":["mpp",{"mpp":{"method":"solana","intent":"pay-per-request","currency":"runtime-challenge"}}],"pricingMode":"fixed","price":{"mode":"fixed","currency":"USD","amount":"[object Object]"},"rail":"solana-mpp","challengeSource":"runtime","runtimeChallengeFields":["amount","feePayer","feePayerKey","recentBlockhash","network","currency","recipient"]},"parameters":[{"name":"Authorization","in":"header","required":false,"schema":{"type":"string"},"description":"MPP payment credential, typically in the shape `Payment <serialized-credential>`. Omit on first call to receive a challenge."},{"name":"url","in":"query","schema":{"type":"string","format":"uri"},"description":"Target URL."}],"requestBody":{"required":false,"description":"Optional JSON body mirror of the query inputs for agent invocation. Query/path parameters remain the canonical runtime contract.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"properties":{"url":{"type":"string","format":"uri","description":"Target URL."}}}}}},"responses":{"200":{"$ref":"#/components/responses/PaidSuccess"},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"409":{"$ref":"#/components/responses/Conflict"},"500":{"$ref":"#/components/responses/ServerError"}},"x-solana-mpp-guidance":{"firstCallWithoutAuthorization":true,"expectedInitialStatus":402,"officialClient":"@solana/mpp/client","retrySameUrl":true,"readPaymentReceiptHeader":true,"runtimeChallengeFields":["amount","feePayer","feePayerKey","recentBlockhash","network","currency","recipient"]}}},"/mpp-solana/xraid/mega":{"post":{"operationId":"solana_post_L21wcC94cmFpZC9tZWdh","tags":["X / Twitter"],"summary":"X raid mega (POST)","description":"Preset X raid mega.\n\nMPP flow:\n- Call without `Authorization: Payment ...` to receive `402 Payment Required`.\n- Read challenge details from `WWW-Authenticate: Payment ...` and problem+json body.\n- Retry same endpoint with `Authorization: Payment ...`.\n- On success, response includes `Payment-Receipt` header.\n\nSolana MPP specifics:\n- Make the first call without `Authorization: Payment ...`.\n- Expect `402 Payment Required` and read the live `WWW-Authenticate` challenge.\n- Use the official `@solana/mpp/client` flow to build the payment credential.\n- Treat the runtime challenge as the source of truth for `amount`, `feePayer`, `feePayerKey`, `recentBlockhash`, `network`, `currency`, `recipient`.\n- Retry the exact same URL after signing.\n- On success, read and store the `Payment-Receipt` header.\n\nExample flow:\n- First probe: `POST /mpp-solana/xraid/mega?url=https%3A%2F%2Fx.com%2Fexample%2Fstatus%2F1` without `Authorization`.\n- Paid retry: `POST /mpp-solana/xraid/mega?url=https%3A%2F%2Fx.com%2Fexample%2Fstatus%2F1` with `Authorization: Payment <credential>`.","x-payment-info":{"protocols":["mpp",{"mpp":{"method":"solana","intent":"pay-per-request","currency":"runtime-challenge"}}],"pricingMode":"fixed","price":{"mode":"fixed","currency":"USD","amount":"[object Object]"},"rail":"solana-mpp","challengeSource":"runtime","runtimeChallengeFields":["amount","feePayer","feePayerKey","recentBlockhash","network","currency","recipient"]},"parameters":[{"name":"Authorization","in":"header","required":false,"schema":{"type":"string"},"description":"MPP payment credential, typically in the shape `Payment <serialized-credential>`. Omit on first call to receive a challenge."},{"name":"url","in":"query","schema":{"type":"string","format":"uri"},"description":"Target URL."}],"requestBody":{"required":false,"description":"Optional JSON body mirror of the query inputs for agent invocation. Query/path parameters remain the canonical runtime contract.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"properties":{"url":{"type":"string","format":"uri","description":"Target URL."}}}}}},"responses":{"200":{"$ref":"#/components/responses/PaidSuccess"},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"409":{"$ref":"#/components/responses/Conflict"},"500":{"$ref":"#/components/responses/ServerError"}},"x-solana-mpp-guidance":{"firstCallWithoutAuthorization":true,"expectedInitialStatus":402,"officialClient":"@solana/mpp/client","retrySameUrl":true,"readPaymentReceiptHeader":true,"runtimeChallengeFields":["amount","feePayer","feePayerKey","recentBlockhash","network","currency","recipient"]}}},"/mpp-solana/xraid/xverified":{"post":{"operationId":"solana_post_L21wcC94cmFpZC94dmVyaWZpZWQ","tags":["X / Twitter"],"summary":"X raid xverified (dynamic) (POST)","description":"Run an X blue-verified-gated raid with `size=small|medium` (default `small`); views in these presets are not x-blue-verified-gated.\n\nMPP flow:\n- Call without `Authorization: Payment ...` to receive `402 Payment Required`.\n- Read challenge details from `WWW-Authenticate: Payment ...` and problem+json body.\n- Retry same endpoint with `Authorization: Payment ...`.\n- On success, response includes `Payment-Receipt` header.\n\nSolana MPP specifics:\n- Make the first call without `Authorization: Payment ...`.\n- Expect `402 Payment Required` and read the live `WWW-Authenticate` challenge.\n- Use the official `@solana/mpp/client` flow to build the payment credential.\n- Treat the runtime challenge as the source of truth for `amount`, `feePayer`, `feePayerKey`, `recentBlockhash`, `network`, `currency`, `recipient`.\n- Retry the exact same URL after signing.\n- On success, read and store the `Payment-Receipt` header.\n\nAlias behavior:\n- Preset aliases `/mpp-solana/xraid/xverified/small` and `/mpp-solana/xraid/xverified/medium` are also supported.\n- For xverified presets, likes/reposts/comments/bookmarks use `x_blue_verified = true`; views are intentionally not gated.\n\nExample flow:\n- First probe: `POST /mpp-solana/xraid/xverified?url=https%3A%2F%2Fx.com%2Fexample%2Fstatus%2F1&size=medium` without `Authorization`.\n- Paid retry: `POST /mpp-solana/xraid/xverified?url=https%3A%2F%2Fx.com%2Fexample%2Fstatus%2F1&size=medium` with `Authorization: Payment <credential>`.","x-payment-info":{"protocols":["mpp",{"mpp":{"method":"solana","intent":"pay-per-request","currency":"runtime-challenge"}}],"pricingMode":"quote","price":{"mode":"dynamic","currency":"USD"},"rail":"solana-mpp","challengeSource":"runtime","runtimeChallengeFields":["amount","feePayer","feePayerKey","recentBlockhash","network","currency","recipient"]},"parameters":[{"name":"Authorization","in":"header","required":false,"schema":{"type":"string"},"description":"MPP payment credential, typically in the shape `Payment <serialized-credential>`. Omit on first call to receive a challenge."},{"name":"url","in":"query","schema":{"type":"string","format":"uri"},"description":"Target URL."},{"name":"size","in":"query","schema":{"type":"string","enum":["small","medium"],"default":"small"},"description":"X verified raid preset size (`small` or `medium`). Defaults to `small`."}],"requestBody":{"required":false,"description":"Optional JSON body mirror of the query inputs for agent invocation. Query/path parameters remain the canonical runtime contract.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"properties":{"url":{"type":"string","format":"uri","description":"Target URL."},"size":{"type":"string","enum":["small","medium","large","mega"],"description":"Raid preset size."}}}}}},"responses":{"200":{"$ref":"#/components/responses/PaidSuccess"},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"409":{"$ref":"#/components/responses/Conflict"},"500":{"$ref":"#/components/responses/ServerError"}},"x-solana-mpp-guidance":{"firstCallWithoutAuthorization":true,"expectedInitialStatus":402,"officialClient":"@solana/mpp/client","retrySameUrl":true,"readPaymentReceiptHeader":true,"runtimeChallengeFields":["amount","feePayer","feePayerKey","recentBlockhash","network","currency","recipient"]}}},"/mpp-solana/xraid/xverified/small":{"post":{"operationId":"solana_post_L21wcC94cmFpZC94dmVyaWZpZWQvc21hbGw","tags":["X / Twitter"],"summary":"X raid xverified small (POST)","description":"Preset X blue-verified-gated raid small (likes/reposts/comments are gated; views are not gated).\n\nMPP flow:\n- Call without `Authorization: Payment ...` to receive `402 Payment Required`.\n- Read challenge details from `WWW-Authenticate: Payment ...` and problem+json body.\n- Retry same endpoint with `Authorization: Payment ...`.\n- On success, response includes `Payment-Receipt` header.\n\nSolana MPP specifics:\n- Make the first call without `Authorization: Payment ...`.\n- Expect `402 Payment Required` and read the live `WWW-Authenticate` challenge.\n- Use the official `@solana/mpp/client` flow to build the payment credential.\n- Treat the runtime challenge as the source of truth for `amount`, `feePayer`, `feePayerKey`, `recentBlockhash`, `network`, `currency`, `recipient`.\n- Retry the exact same URL after signing.\n- On success, read and store the `Payment-Receipt` header.\n\nExample flow:\n- First probe: `POST /mpp-solana/xraid/xverified/small?url=https%3A%2F%2Fx.com%2Fexample%2Fstatus%2F1` without `Authorization`.\n- Paid retry: `POST /mpp-solana/xraid/xverified/small?url=https%3A%2F%2Fx.com%2Fexample%2Fstatus%2F1` with `Authorization: Payment <credential>`.","x-payment-info":{"protocols":["mpp",{"mpp":{"method":"solana","intent":"pay-per-request","currency":"runtime-challenge"}}],"pricingMode":"fixed","price":{"mode":"fixed","currency":"USD","amount":"[object Object]"},"rail":"solana-mpp","challengeSource":"runtime","runtimeChallengeFields":["amount","feePayer","feePayerKey","recentBlockhash","network","currency","recipient"]},"parameters":[{"name":"Authorization","in":"header","required":false,"schema":{"type":"string"},"description":"MPP payment credential, typically in the shape `Payment <serialized-credential>`. Omit on first call to receive a challenge."},{"name":"url","in":"query","schema":{"type":"string","format":"uri"},"description":"Target URL."}],"requestBody":{"required":false,"description":"Optional JSON body mirror of the query inputs for agent invocation. Query/path parameters remain the canonical runtime contract.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"properties":{"url":{"type":"string","format":"uri","description":"Target URL."}}}}}},"responses":{"200":{"$ref":"#/components/responses/PaidSuccess"},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"409":{"$ref":"#/components/responses/Conflict"},"500":{"$ref":"#/components/responses/ServerError"}},"x-solana-mpp-guidance":{"firstCallWithoutAuthorization":true,"expectedInitialStatus":402,"officialClient":"@solana/mpp/client","retrySameUrl":true,"readPaymentReceiptHeader":true,"runtimeChallengeFields":["amount","feePayer","feePayerKey","recentBlockhash","network","currency","recipient"]}}},"/mpp-solana/xraid/xverified/medium":{"post":{"operationId":"solana_post_L21wcC94cmFpZC94dmVyaWZpZWQvbWVkaXVt","tags":["X / Twitter"],"summary":"X raid xverified medium (POST)","description":"Preset X blue-verified-gated raid medium (likes/reposts/comments/bookmarks are gated; views are not gated).\n\nMPP flow:\n- Call without `Authorization: Payment ...` to receive `402 Payment Required`.\n- Read challenge details from `WWW-Authenticate: Payment ...` and problem+json body.\n- Retry same endpoint with `Authorization: Payment ...`.\n- On success, response includes `Payment-Receipt` header.\n\nSolana MPP specifics:\n- Make the first call without `Authorization: Payment ...`.\n- Expect `402 Payment Required` and read the live `WWW-Authenticate` challenge.\n- Use the official `@solana/mpp/client` flow to build the payment credential.\n- Treat the runtime challenge as the source of truth for `amount`, `feePayer`, `feePayerKey`, `recentBlockhash`, `network`, `currency`, `recipient`.\n- Retry the exact same URL after signing.\n- On success, read and store the `Payment-Receipt` header.\n\nExample flow:\n- First probe: `POST /mpp-solana/xraid/xverified/medium?url=https%3A%2F%2Fx.com%2Fexample%2Fstatus%2F1` without `Authorization`.\n- Paid retry: `POST /mpp-solana/xraid/xverified/medium?url=https%3A%2F%2Fx.com%2Fexample%2Fstatus%2F1` with `Authorization: Payment <credential>`.","x-payment-info":{"protocols":["mpp",{"mpp":{"method":"solana","intent":"pay-per-request","currency":"runtime-challenge"}}],"pricingMode":"fixed","price":{"mode":"fixed","currency":"USD","amount":"[object Object]"},"rail":"solana-mpp","challengeSource":"runtime","runtimeChallengeFields":["amount","feePayer","feePayerKey","recentBlockhash","network","currency","recipient"]},"parameters":[{"name":"Authorization","in":"header","required":false,"schema":{"type":"string"},"description":"MPP payment credential, typically in the shape `Payment <serialized-credential>`. Omit on first call to receive a challenge."},{"name":"url","in":"query","schema":{"type":"string","format":"uri"},"description":"Target URL."}],"requestBody":{"required":false,"description":"Optional JSON body mirror of the query inputs for agent invocation. Query/path parameters remain the canonical runtime contract.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"properties":{"url":{"type":"string","format":"uri","description":"Target URL."}}}}}},"responses":{"200":{"$ref":"#/components/responses/PaidSuccess"},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"409":{"$ref":"#/components/responses/Conflict"},"500":{"$ref":"#/components/responses/ServerError"}},"x-solana-mpp-guidance":{"firstCallWithoutAuthorization":true,"expectedInitialStatus":402,"officialClient":"@solana/mpp/client","retrySameUrl":true,"readPaymentReceiptHeader":true,"runtimeChallengeFields":["amount","feePayer","feePayerKey","recentBlockhash","network","currency","recipient"]}}},"/mpp-solana/xraid/custom":{"post":{"operationId":"solana_post_L21wcC94cmFpZC9jdXN0b20","tags":["X / Twitter"],"summary":"X raid custom (query) (POST)","description":"Custom X raid with counts in query parameters.\n\nMPP flow:\n- Call without `Authorization: Payment ...` to receive `402 Payment Required`.\n- Read challenge details from `WWW-Authenticate: Payment ...` and problem+json body.\n- Retry same endpoint with `Authorization: Payment ...`.\n- On success, response includes `Payment-Receipt` header.\n\nSolana MPP specifics:\n- Make the first call without `Authorization: Payment ...`.\n- Expect `402 Payment Required` and read the live `WWW-Authenticate` challenge.\n- Use the official `@solana/mpp/client` flow to build the payment credential.\n- Treat the runtime challenge as the source of truth for `amount`, `feePayer`, `feePayerKey`, `recentBlockhash`, `network`, `currency`, `recipient`.\n- Retry the exact same URL after signing.\n- On success, read and store the `Payment-Receipt` header.\n\nExample flow:\n- First probe: `POST /mpp-solana/xraid/custom?url=https%3A%2F%2Fx.com%2Fexample%2Fstatus%2F1&likes=5&reposts=5&comments=5&bookmarks=5` without `Authorization`.\n- Paid retry: `POST /mpp-solana/xraid/custom?url=https%3A%2F%2Fx.com%2Fexample%2Fstatus%2F1&likes=5&reposts=5&comments=5&bookmarks=5` with `Authorization: Payment <credential>`.","x-payment-info":{"protocols":["mpp",{"mpp":{"method":"solana","intent":"pay-per-request","currency":"runtime-challenge"}}],"pricingMode":"quote","price":{"mode":"dynamic","currency":"USD"},"rail":"solana-mpp","challengeSource":"runtime","runtimeChallengeFields":["amount","feePayer","feePayerKey","recentBlockhash","network","currency","recipient"]},"parameters":[{"name":"Authorization","in":"header","required":false,"schema":{"type":"string"},"description":"MPP payment credential, typically in the shape `Payment <serialized-credential>`. Omit on first call to receive a challenge."},{"name":"url","in":"query","schema":{"type":"string","format":"uri"},"description":"Target URL."},{"name":"likes","in":"query","schema":{"type":"integer","minimum":0},"description":"Custom likes count."},{"name":"reposts","in":"query","schema":{"type":"integer","minimum":0},"description":"Custom reposts count."},{"name":"comments","in":"query","schema":{"type":"integer","minimum":0},"description":"Custom comments count."},{"name":"bookmarks","in":"query","schema":{"type":"integer","minimum":0},"description":"Custom bookmarks count."}],"requestBody":{"required":false,"description":"Optional JSON body mirror of the query inputs for agent invocation. Query/path parameters remain the canonical runtime contract.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"properties":{"url":{"type":"string","format":"uri","description":"Target URL."},"likes":{"type":"integer","minimum":0,"description":"Custom likes count."},"reposts":{"type":"integer","minimum":0,"description":"Custom reposts count."},"comments":{"type":"integer","minimum":0,"description":"Custom comments count."},"bookmarks":{"type":"integer","minimum":0,"description":"Custom bookmarks count."}}}}}},"responses":{"200":{"$ref":"#/components/responses/PaidSuccess"},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"409":{"$ref":"#/components/responses/Conflict"},"500":{"$ref":"#/components/responses/ServerError"}},"x-solana-mpp-guidance":{"firstCallWithoutAuthorization":true,"expectedInitialStatus":402,"officialClient":"@solana/mpp/client","retrySameUrl":true,"readPaymentReceiptHeader":true,"runtimeChallengeFields":["amount","feePayer","feePayerKey","recentBlockhash","network","currency","recipient"]}}},"/mpp-solana/xraid/custom/{likes}/{reposts}/{comments}/{bookmarks}":{"post":{"operationId":"solana_post_L21wcC94cmFpZC9jdXN0b20ve2xpa2VzfS97cmVwb3N0c30ve2NvbW1lbnRzfS97Ym9va21hcmtzfQ","tags":["X / Twitter"],"summary":"X raid custom (path) (POST)","description":"Custom X raid with counts encoded in path.\n\nMPP flow:\n- Call without `Authorization: Payment ...` to receive `402 Payment Required`.\n- Read challenge details from `WWW-Authenticate: Payment ...` and problem+json body.\n- Retry same endpoint with `Authorization: Payment ...`.\n- On success, response includes `Payment-Receipt` header.\n\nSolana MPP specifics:\n- Make the first call without `Authorization: Payment ...`.\n- Expect `402 Payment Required` and read the live `WWW-Authenticate` challenge.\n- Use the official `@solana/mpp/client` flow to build the payment credential.\n- Treat the runtime challenge as the source of truth for `amount`, `feePayer`, `feePayerKey`, `recentBlockhash`, `network`, `currency`, `recipient`.\n- Retry the exact same URL after signing.\n- On success, read and store the `Payment-Receipt` header.\n\nExample flow:\n- First probe: `POST /mpp-solana/xraid/custom/<likes>/<reposts>/<comments>/<bookmarks>?url=https%3A%2F%2Fx.com%2Fexample%2Fstatus%2F1` without `Authorization`.\n- Paid retry: `POST /mpp-solana/xraid/custom/<likes>/<reposts>/<comments>/<bookmarks>?url=https%3A%2F%2Fx.com%2Fexample%2Fstatus%2F1` with `Authorization: Payment <credential>`.","x-payment-info":{"protocols":["mpp",{"mpp":{"method":"solana","intent":"pay-per-request","currency":"runtime-challenge"}}],"pricingMode":"quote","price":{"mode":"dynamic","currency":"USD"},"rail":"solana-mpp","challengeSource":"runtime","runtimeChallengeFields":["amount","feePayer","feePayerKey","recentBlockhash","network","currency","recipient"]},"parameters":[{"name":"Authorization","in":"header","required":false,"schema":{"type":"string"},"description":"MPP payment credential, typically in the shape `Payment <serialized-credential>`. Omit on first call to receive a challenge."},{"name":"likes","in":"path","required":true,"schema":{"type":"integer","minimum":0},"description":"Likes count in custom path."},{"name":"reposts","in":"path","required":true,"schema":{"type":"integer","minimum":0},"description":"Reposts count in custom path."},{"name":"comments","in":"path","required":true,"schema":{"type":"integer","minimum":0},"description":"Comments count in custom path."},{"name":"bookmarks","in":"path","required":true,"schema":{"type":"integer","minimum":0},"description":"Bookmarks count in custom path."},{"name":"url","in":"query","schema":{"type":"string","format":"uri"},"description":"Target URL."}],"requestBody":{"required":false,"description":"Optional JSON body mirror of the query inputs for agent invocation. Query/path parameters remain the canonical runtime contract.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"properties":{"url":{"type":"string","format":"uri","description":"Target URL."}}}}}},"responses":{"200":{"$ref":"#/components/responses/PaidSuccess"},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"409":{"$ref":"#/components/responses/Conflict"},"500":{"$ref":"#/components/responses/ServerError"}},"x-solana-mpp-guidance":{"firstCallWithoutAuthorization":true,"expectedInitialStatus":402,"officialClient":"@solana/mpp/client","retrySameUrl":true,"readPaymentReceiptHeader":true,"runtimeChallengeFields":["amount","feePayer","feePayerKey","recentBlockhash","network","currency","recipient"]}}},"/mpp-solana/agenttohuman":{"post":{"operationId":"solana_post_L21wcC9hZ2VudHRvaHVtYW4","tags":["Agent Help"],"summary":"Agent-to-human create/recover (POST)","description":"Create agent-to-human jobs or recover with action parameter.\n\nMPP flow:\n- Call without `Authorization: Payment ...` to receive `402 Payment Required`.\n- Read challenge details from `WWW-Authenticate: Payment ...` and problem+json body.\n- Retry same endpoint with `Authorization: Payment ...`.\n- On success, response includes `Payment-Receipt` header.\n\nSolana MPP specifics:\n- Make the first call without `Authorization: Payment ...`.\n- Expect `402 Payment Required` and read the live `WWW-Authenticate` challenge.\n- Use the official `@solana/mpp/client` flow to build the payment credential.\n- Treat the runtime challenge as the source of truth for `amount`, `feePayer`, `feePayerKey`, `recentBlockhash`, `network`, `currency`, `recipient`.\n- Retry the exact same URL after signing.\n- On success, read and store the `Payment-Receipt` header.\n\nAlias behavior:\n- Count-style runtime aliases such as `/mpp-solana/agenttohuman/{winners}` and `/mpp-solana/agenttohuman-{winners}` may also be available even when only the canonical route is advertised here.\n- Alias `/mpp-solana/agenthelp` is also supported.\n- Tier path variants like `/mpp-solana/agenttohuman/{winners}` and `/mpp-solana/agenthelp/{winners}` remain supported at runtime.\n\nExample flow:\n- First probe: `POST /mpp-solana/agenttohuman?action=create&description=Need%20help%20boosting%20this%20launch&winners=3&perUser=0.04&secret=<secret>&page=<page>&pageSize=<pageSize>` without `Authorization`.\n- Paid retry: `POST /mpp-solana/agenttohuman?action=create&description=Need%20help%20boosting%20this%20launch&winners=3&perUser=0.04&secret=<secret>&page=<page>&pageSize=<pageSize>` with `Authorization: Payment <credential>`.","x-payment-info":{"protocols":["mpp",{"mpp":{"method":"solana","intent":"pay-per-request","currency":"runtime-challenge"}}],"pricingMode":"quote","price":{"mode":"dynamic","currency":"USD"},"rail":"solana-mpp","challengeSource":"runtime","runtimeChallengeFields":["amount","feePayer","feePayerKey","recentBlockhash","network","currency","recipient"]},"parameters":[{"name":"Authorization","in":"header","required":false,"schema":{"type":"string"},"description":"MPP payment credential, typically in the shape `Payment <serialized-credential>`. Omit on first call to receive a challenge."},{"name":"action","in":"query","schema":{"type":"string","enum":["create","view","recover"]},"description":"Action selector for agent-to-human routes."},{"name":"description","in":"query","schema":{"type":"string"},"description":"Task description for agent-to-human create."},{"name":"winners","in":"query","schema":{"type":"integer","minimum":1},"description":"Alias amount parameter for winner count."},{"name":"perUser","in":"query","schema":{"type":"number","minimum":0.001},"description":"Reward per participant in USDC."},{"name":"secret","in":"query","schema":{"type":"string"},"description":"Secret token for status/view workflows."},{"name":"page","in":"query","schema":{"type":"integer","minimum":1,"default":1},"description":"Page number for `action=view` responses."},{"name":"pageSize","in":"query","schema":{"type":"integer","minimum":1,"maximum":100,"default":50},"description":"Page size for `action=view` responses (max 100)."}],"requestBody":{"required":false,"description":"Optional JSON body mirror of the query inputs for agent invocation. Query/path parameters remain the canonical runtime contract.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"properties":{"action":{"type":"string","enum":["create","view","recover"],"description":"Action selector for agent-to-human routes."},"description":{"type":"string","description":"Task description for agent-to-human create."},"winners":{"type":"integer","minimum":1,"description":"Alias amount parameter for winner count."},"perUser":{"type":"number","minimum":0.001,"description":"Reward per participant in USDC."},"secret":{"type":"string","description":"Secret token for status/view workflows."},"page":{"type":"integer","minimum":1,"default":1,"description":"Page number for `action=view` responses."},"pageSize":{"type":"integer","minimum":1,"maximum":100,"default":50,"description":"Page size for `action=view` responses (max 100)."}}}}}},"responses":{"200":{"$ref":"#/components/responses/PaidSuccess"},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"409":{"$ref":"#/components/responses/Conflict"},"500":{"$ref":"#/components/responses/ServerError"}},"x-solana-mpp-guidance":{"firstCallWithoutAuthorization":true,"expectedInitialStatus":402,"officialClient":"@solana/mpp/client","retrySameUrl":true,"readPaymentReceiptHeader":true,"runtimeChallengeFields":["amount","feePayer","feePayerKey","recentBlockhash","network","currency","recipient"]}}},"/mpp-solana/agenttohumanadvanced":{"post":{"operationId":"solana_post_L21wcC9hZ2VudHRvaHVtYW5hZHZhbmNlZA","tags":["Agent Help"],"summary":"Agent-to-human advanced create/view/recover (POST)","description":"Advanced agent-to-human route with explicit policy controls (selection mode/time, requirement gating, attachment requirement, max entries, optional human_verified VeryAI gate, optional WURK community agent key). `action=view` is available on this advanced route (with `secret`) and returns job metadata plus pagination (`page`, `pageSize`, `total`, `totalPages`). If `community` is provided, it must exist in `community_agent_keys.agent_key`; the matched `community_id` is stored in `work_custom.community`, invalid keys return an error, and 3 invalid keys within 1 minute are rate limited. For creator-selection jobs, use chain-agnostic `POST /api/agenttohumanadvanced/choose-winners` with `secret` + `submissionIds` (short UUID-prefix ids, 8..16 lowercase hex). Submission speed is variable: broad/simple tasks can fill fast; strict/complex tasks may take hours to days.\n\nMPP flow:\n- Call without `Authorization: Payment ...` to receive `402 Payment Required`.\n- Read challenge details from `WWW-Authenticate: Payment ...` and problem+json body.\n- Retry same endpoint with `Authorization: Payment ...`.\n- On success, response includes `Payment-Receipt` header.\n\nSolana MPP specifics:\n- Make the first call without `Authorization: Payment ...`.\n- Expect `402 Payment Required` and read the live `WWW-Authenticate` challenge.\n- Use the official `@solana/mpp/client` flow to build the payment credential.\n- Treat the runtime challenge as the source of truth for `amount`, `feePayer`, `feePayerKey`, `recentBlockhash`, `network`, `currency`, `recipient`.\n- Retry the exact same URL after signing.\n- On success, read and store the `Payment-Receipt` header.\n\nAlias behavior:\n- Count-style runtime aliases such as `/mpp-solana/agenttohumanadvanced/{winners}` and `/mpp-solana/agenttohumanadvanced-{winners}` may also be available even when only the canonical route is advertised here.\n- Alias `/mpp-solana/agenthelpadvanced` is also supported.\n- `action=view` is available on this advanced route (requires `secret`), unlike the standard `/mpp-solana/agenttohuman` route where clients should follow `statusUrl`; view responses include job metadata plus pagination (`page`, `pageSize`, `total`, `totalPages`).\n- Advanced requirement policy mirrors x402 advanced: some requirement choices reduce max winners and increase minimum `perUser`.\n- Optional `human_verified=yes` enables VeryAI proof-of-human gating (`reverify_on=1` and `human_verified_requirement=1`), which can reduce eligible participants and slow fill speed.\n- Optional `community` is a WURK community agent key. If provided, it must exist in `community_agent_keys.agent_key`; the matched `community_id` is stored in `work_custom.community`. Invalid keys return an error, and 3 invalid keys within 1 minute are rate limited.\n- For creator-selection advanced jobs, choose winners via the chain-agnostic endpoint `/api/agenttohumanadvanced/choose-winners` with `secret` + `submissionIds` (short UUID-prefix ids, 8..16 lowercase hex).\n\nExample flow:\n- First probe: `POST /mpp-solana/agenttohumanadvanced?action=create&secret=<secret>&description=Need%20help%20boosting%20this%20launch&winners=3&perUser=0.04&selectionType=creator&selectionTimeMinutes=180&maxEntries=unlimited&attachmentRequired=no&human_verified=no&requirement=tweetScoutScore%3A10&community=<community-agent-key>&page=<page>&pageSize=<pageSize>` without `Authorization`.\n- Paid retry: `POST /mpp-solana/agenttohumanadvanced?action=create&secret=<secret>&description=Need%20help%20boosting%20this%20launch&winners=3&perUser=0.04&selectionType=creator&selectionTimeMinutes=180&maxEntries=unlimited&attachmentRequired=no&human_verified=no&requirement=tweetScoutScore%3A10&community=<community-agent-key>&page=<page>&pageSize=<pageSize>` with `Authorization: Payment <credential>`.","x-payment-info":{"protocols":["mpp",{"mpp":{"method":"solana","intent":"pay-per-request","currency":"runtime-challenge"}}],"pricingMode":"quote","price":{"mode":"dynamic","currency":"USD"},"rail":"solana-mpp","challengeSource":"runtime","runtimeChallengeFields":["amount","feePayer","feePayerKey","recentBlockhash","network","currency","recipient"]},"parameters":[{"name":"Authorization","in":"header","required":false,"schema":{"type":"string"},"description":"MPP payment credential, typically in the shape `Payment <serialized-credential>`. Omit on first call to receive a challenge."},{"name":"action","in":"query","schema":{"type":"string","enum":["create","view","recover"]},"description":"Advanced action selector. `create` (default) creates a paid job, `view` reads submissions with `secret`, `recover` runs paid recover flow."},{"name":"secret","in":"query","schema":{"type":"string"},"description":"Required for `action=view` on advanced route. Secret is returned by paid create response."},{"name":"description","in":"query","schema":{"type":"string"},"description":"Required for `action=create`. Prompt/instructions for participants. Simpler prompts usually fill faster; strict/complex tasks can take hours to days."},{"name":"winners","in":"query","schema":{"type":"integer","minimum":1,"maximum":100},"description":"Advanced winners count (1..100, default 10). Requirement caps apply: tweetScoutScore:10 => max 75; tweetScoutScore:25/xMetricScore:250/xBlueVerified => max 50."},{"name":"perUser","in":"query","schema":{"type":"number","minimum":0.01},"description":"USDC reward per winner. Baseline minimum 0.01. Requirement minimums: tweetScoutScore:0 => 0.02; tweetScoutScore:10/xBlueVerified => 0.03; xMetricScore:75 => 0.025; tweetScoutScore:25/xMetricScore:250 => 0.05; seekerUser => baseline."},{"name":"selectionType","in":"query","schema":{"type":"string","enum":["random","creator"]},"description":"Advanced mode: `random` auto-selects winners; `creator` requires manual winner selection after submissions close (via choose-winners endpoint)."},{"name":"selectionTimeMinutes","in":"query","schema":{"type":"integer","minimum":10,"maximum":4320},"description":"Advanced mode: selection window in minutes (10..4320, default 60)."},{"name":"maxEntries","in":"query","schema":{"type":"string"},"description":"Advanced mode: omit for default (`ceil(1.2 * winners)`). Only `unlimited` (or `0`) is accepted explicitly, and only when total value is >= 5 USDC."},{"name":"attachmentRequired","in":"query","schema":{"type":"string","enum":["yes","no"]},"description":"Advanced mode: require attachment in submissions (`yes` or `no`). `yes` can reduce eligible participants and slow fill speed."},{"name":"human_verified","in":"query","schema":{"type":"string","enum":["yes","no"]},"description":"Advanced mode: optional VeryAI proof-of-human gate. `yes` sets `reverify_on=1` and `human_verified_requirement=1`; `no` keeps both at 0. This narrows eligibility and can slow fill speed."},{"name":"requirement","in":"query","schema":{"type":"string","enum":["tweetScoutScore:0","tweetScoutScore:10","tweetScoutScore:25","xMetricScore:75","xMetricScore:250","seekerUser","xBlueVerified"]},"description":"Advanced mode: optional single requirement selector (exactly one value). Allowed values: tweetScoutScore:0, tweetScoutScore:10, tweetScoutScore:25, xMetricScore:75, xMetricScore:250, seekerUser, xBlueVerified. Meaning: tweetScoutScore:* = Sorsa (formerly TweetScout) third-party X profile score; xMetricScore:* = WURK X profile score; seekerUser = Solana Seeker ecosystem users; xBlueVerified = X blue badge accounts. Policy: tweetScoutScore:0 => max winners 100 + min perUser 0.02; tweetScoutScore:10 => max 75 + min 0.03; tweetScoutScore:25 => max 50 + min 0.05; xMetricScore:75 => max 100 + min 0.025; xMetricScore:250 => max 50 + min 0.05; xBlueVerified => max 50 + min 0.03; seekerUser => baseline only. Legacy split fields are not accepted on this endpoint."},{"name":"community","in":"query","schema":{"type":"string"},"description":"Advanced agent-to-human only: optional WURK community agent key. If provided, it must exist in `community_agent_keys.agent_key`; the matched `community_id` is stored in `work_custom.community`. Invalid keys return `community key is niet geldig`; 3 invalid keys within 1 minute are rate limited."},{"name":"page","in":"query","schema":{"type":"integer","minimum":1,"default":1},"description":"Page number for `action=view` responses."},{"name":"pageSize","in":"query","schema":{"type":"integer","minimum":1,"maximum":100,"default":50},"description":"Page size for `action=view` responses (max 100)."}],"requestBody":{"required":false,"description":"Optional JSON body mirror of the query inputs for agent invocation. Query/path parameters remain the canonical runtime contract.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"properties":{"actionAdvanced":{"type":"string","enum":["create","view","recover"],"description":"Advanced action selector. `create` (default) creates a paid job, `view` reads submissions with `secret`, `recover` runs paid recover flow."},"secretAdvanced":{"type":"string","description":"Required for `action=view` on advanced route. Secret is returned by paid create response."},"descriptionAdvanced":{"type":"string","description":"Required for `action=create`. Prompt/instructions for participants. Simpler prompts usually fill faster; strict/complex tasks can take hours to days."},"winnersAdvanced":{"type":"integer","minimum":1,"maximum":100,"description":"Advanced winners count (1..100, default 10). Requirement caps apply: tweetScoutScore:10 => max 75; tweetScoutScore:25/xMetricScore:250/xBlueVerified => max 50."},"perUserAdvanced":{"type":"number","minimum":0.01,"description":"USDC reward per winner. Baseline minimum 0.01. Requirement minimums: tweetScoutScore:0 => 0.02; tweetScoutScore:10/xBlueVerified => 0.03; xMetricScore:75 => 0.025; tweetScoutScore:25/xMetricScore:250 => 0.05; seekerUser => baseline."},"selectionType":{"type":"string","enum":["random","creator"],"description":"Advanced mode: `random` auto-selects winners; `creator` requires manual winner selection after submissions close (via choose-winners endpoint)."},"selectionTimeMinutes":{"type":"integer","minimum":10,"maximum":4320,"description":"Advanced mode: selection window in minutes (10..4320, default 60)."},"maxEntries":{"type":"string","description":"Advanced mode: omit for default (`ceil(1.2 * winners)`). Only `unlimited` (or `0`) is accepted explicitly, and only when total value is >= 5 USDC."},"attachmentRequired":{"type":"string","enum":["yes","no"],"description":"Advanced mode: require attachment in submissions (`yes` or `no`). `yes` can reduce eligible participants and slow fill speed."},"human_verified":{"type":"string","enum":["yes","no"],"description":"Advanced mode: optional VeryAI proof-of-human gate. `yes` sets `reverify_on=1` and `human_verified_requirement=1`; `no` keeps both at 0. This narrows eligibility and can slow fill speed."},"requirement":{"type":"string","enum":["tweetScoutScore:0","tweetScoutScore:10","tweetScoutScore:25","xMetricScore:75","xMetricScore:250","seekerUser","xBlueVerified"],"description":"Advanced mode: optional single requirement selector (exactly one value). Allowed values: tweetScoutScore:0, tweetScoutScore:10, tweetScoutScore:25, xMetricScore:75, xMetricScore:250, seekerUser, xBlueVerified. Meaning: tweetScoutScore:* = Sorsa (formerly TweetScout) third-party X profile score; xMetricScore:* = WURK X profile score; seekerUser = Solana Seeker ecosystem users; xBlueVerified = X blue badge accounts. Policy: tweetScoutScore:0 => max winners 100 + min perUser 0.02; tweetScoutScore:10 => max 75 + min 0.03; tweetScoutScore:25 => max 50 + min 0.05; xMetricScore:75 => max 100 + min 0.025; xMetricScore:250 => max 50 + min 0.05; xBlueVerified => max 50 + min 0.03; seekerUser => baseline only. Legacy split fields are not accepted on this endpoint."},"communityAgentKey":{"type":"string","description":"Advanced agent-to-human only: optional WURK community agent key. If provided, it must exist in `community_agent_keys.agent_key`; the matched `community_id` is stored in `work_custom.community`. Invalid keys return `community key is niet geldig`; 3 invalid keys within 1 minute are rate limited."},"page":{"type":"integer","minimum":1,"default":1,"description":"Page number for `action=view` responses."},"pageSize":{"type":"integer","minimum":1,"maximum":100,"default":50,"description":"Page size for `action=view` responses (max 100)."}}}}}},"responses":{"200":{"$ref":"#/components/responses/PaidSuccess"},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"409":{"$ref":"#/components/responses/Conflict"},"500":{"$ref":"#/components/responses/ServerError"}},"x-solana-mpp-guidance":{"firstCallWithoutAuthorization":true,"expectedInitialStatus":402,"officialClient":"@solana/mpp/client","retrySameUrl":true,"readPaymentReceiptHeader":true,"runtimeChallengeFields":["amount","feePayer","feePayerKey","recentBlockhash","network","currency","recipient"]}}},"/mpp-solana/preselection/agenttohumanadvanced":{"post":{"operationId":"solana_post_L21wcC9wcmVzZWxlY3Rpb24vYWdlbnR0b2h1bWFuYWR2YW5jZWQ","tags":["Agent Help"],"summary":"Agent-to-human preselection create/view/recover (POST)","description":"Preselection route where humans apply first, the agent chooses exactly one applicant, then chat opens and the job can be finalized once the WURK reward is ready. Do not provide winners, selectionType, or maxEntries; this flow is always single-winner with unlimited applications. Uses the shared secret lifecycle endpoints under /api/preselection/agenttohumanadvanced/*.\n\nMPP flow:\n- Call without `Authorization: Payment ...` to receive `402 Payment Required`.\n- Read challenge details from `WWW-Authenticate: Payment ...` and problem+json body.\n- Retry same endpoint with `Authorization: Payment ...`.\n- On success, response includes `Payment-Receipt` header.\n\nSolana MPP specifics:\n- Make the first call without `Authorization: Payment ...`.\n- Expect `402 Payment Required` and read the live `WWW-Authenticate` challenge.\n- Use the official `@solana/mpp/client` flow to build the payment credential.\n- Treat the runtime challenge as the source of truth for `amount`, `feePayer`, `feePayerKey`, `recentBlockhash`, `network`, `currency`, `recipient`.\n- Retry the exact same URL after signing.\n- On success, read and store the `Payment-Receipt` header.\n\nAlias behavior:\n- Alias `/mpp-solana/preselection/agenthelpadvanced` is also supported.\n- This is a single-winner preselection flow: applicants apply first, then the agent chooses one applicant, chats, and finalizes once the WURK reward is ready.\n- Use the shared lifecycle endpoints under `/api/preselection/agenttohumanadvanced/*` with the returned secret.\n\nExample flow:\n- First probe: `POST /mpp-solana/preselection/agenttohumanadvanced?action=create&secret=<secret>&description=Need%20help%20boosting%20this%20launch&perUser=0.04&selectionTimeMinutes=180&attachmentRequired=no&human_verified=no&requirement=tweetScoutScore%3A10&community=<community-agent-key>&page=<page>&pageSize=<pageSize>` without `Authorization`.\n- Paid retry: `POST /mpp-solana/preselection/agenttohumanadvanced?action=create&secret=<secret>&description=Need%20help%20boosting%20this%20launch&perUser=0.04&selectionTimeMinutes=180&attachmentRequired=no&human_verified=no&requirement=tweetScoutScore%3A10&community=<community-agent-key>&page=<page>&pageSize=<pageSize>` with `Authorization: Payment <credential>`.","x-payment-info":{"protocols":["mpp",{"mpp":{"method":"solana","intent":"pay-per-request","currency":"runtime-challenge"}}],"pricingMode":"quote","price":{"mode":"dynamic","currency":"USD"},"rail":"solana-mpp","challengeSource":"runtime","runtimeChallengeFields":["amount","feePayer","feePayerKey","recentBlockhash","network","currency","recipient"]},"parameters":[{"name":"Authorization","in":"header","required":false,"schema":{"type":"string"},"description":"MPP payment credential, typically in the shape `Payment <serialized-credential>`. Omit on first call to receive a challenge."},{"name":"action","in":"query","schema":{"type":"string","enum":["create","view","recover"]},"description":"Advanced action selector. `create` (default) creates a paid job, `view` reads submissions with `secret`, `recover` runs paid recover flow."},{"name":"secret","in":"query","schema":{"type":"string"},"description":"Required for `action=view` on advanced route. Secret is returned by paid create response."},{"name":"description","in":"query","schema":{"type":"string"},"description":"Required for `action=create`. Prompt/instructions for participants. Simpler prompts usually fill faster; strict/complex tasks can take hours to days."},{"name":"perUser","in":"query","schema":{"type":"number","minimum":0.01},"description":"USDC reward per winner. Baseline minimum 0.01. Requirement minimums: tweetScoutScore:0 => 0.02; tweetScoutScore:10/xBlueVerified => 0.03; xMetricScore:75 => 0.025; tweetScoutScore:25/xMetricScore:250 => 0.05; seekerUser => baseline."},{"name":"selectionTimeMinutes","in":"query","schema":{"type":"integer","minimum":10,"maximum":14400},"description":"Preselection mode: application window in minutes (10..14400, default 60)."},{"name":"attachmentRequired","in":"query","schema":{"type":"string","enum":["yes","no"]},"description":"Advanced mode: require attachment in submissions (`yes` or `no`). `yes` can reduce eligible participants and slow fill speed."},{"name":"human_verified","in":"query","schema":{"type":"string","enum":["yes","no"]},"description":"Advanced mode: optional VeryAI proof-of-human gate. `yes` sets `reverify_on=1` and `human_verified_requirement=1`; `no` keeps both at 0. This narrows eligibility and can slow fill speed."},{"name":"requirement","in":"query","schema":{"type":"string","enum":["tweetScoutScore:0","tweetScoutScore:10","tweetScoutScore:25","xMetricScore:75","xMetricScore:250","seekerUser","xBlueVerified"]},"description":"Advanced mode: optional single requirement selector (exactly one value). Allowed values: tweetScoutScore:0, tweetScoutScore:10, tweetScoutScore:25, xMetricScore:75, xMetricScore:250, seekerUser, xBlueVerified. Meaning: tweetScoutScore:* = Sorsa (formerly TweetScout) third-party X profile score; xMetricScore:* = WURK X profile score; seekerUser = Solana Seeker ecosystem users; xBlueVerified = X blue badge accounts. Policy: tweetScoutScore:0 => max winners 100 + min perUser 0.02; tweetScoutScore:10 => max 75 + min 0.03; tweetScoutScore:25 => max 50 + min 0.05; xMetricScore:75 => max 100 + min 0.025; xMetricScore:250 => max 50 + min 0.05; xBlueVerified => max 50 + min 0.03; seekerUser => baseline only. Legacy split fields are not accepted on this endpoint."},{"name":"community","in":"query","schema":{"type":"string"},"description":"Advanced agent-to-human only: optional WURK community agent key. If provided, it must exist in `community_agent_keys.agent_key`; the matched `community_id` is stored in `work_custom.community`. Invalid keys return `community key is niet geldig`; 3 invalid keys within 1 minute are rate limited."},{"name":"page","in":"query","schema":{"type":"integer","minimum":1,"default":1},"description":"Page number for `action=view` responses."},{"name":"pageSize","in":"query","schema":{"type":"integer","minimum":1,"maximum":100,"default":50},"description":"Page size for `action=view` responses (max 100)."}],"requestBody":{"required":false,"description":"Optional JSON body mirror of the query inputs for agent invocation. Query/path parameters remain the canonical runtime contract.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"properties":{"actionAdvanced":{"type":"string","enum":["create","view","recover"],"description":"Advanced action selector. `create` (default) creates a paid job, `view` reads submissions with `secret`, `recover` runs paid recover flow."},"secretAdvanced":{"type":"string","description":"Required for `action=view` on advanced route. Secret is returned by paid create response."},"descriptionAdvanced":{"type":"string","description":"Required for `action=create`. Prompt/instructions for participants. Simpler prompts usually fill faster; strict/complex tasks can take hours to days."},"perUserAdvanced":{"type":"number","minimum":0.01,"description":"USDC reward per winner. Baseline minimum 0.01. Requirement minimums: tweetScoutScore:0 => 0.02; tweetScoutScore:10/xBlueVerified => 0.03; xMetricScore:75 => 0.025; tweetScoutScore:25/xMetricScore:250 => 0.05; seekerUser => baseline."},"selectionTimeMinutes":{"type":"integer","minimum":10,"maximum":14400,"description":"Preselection mode: application window in minutes (10..14400, default 60)."},"attachmentRequired":{"type":"string","enum":["yes","no"],"description":"Advanced mode: require attachment in submissions (`yes` or `no`). `yes` can reduce eligible participants and slow fill speed."},"human_verified":{"type":"string","enum":["yes","no"],"description":"Advanced mode: optional VeryAI proof-of-human gate. `yes` sets `reverify_on=1` and `human_verified_requirement=1`; `no` keeps both at 0. This narrows eligibility and can slow fill speed."},"requirement":{"type":"string","enum":["tweetScoutScore:0","tweetScoutScore:10","tweetScoutScore:25","xMetricScore:75","xMetricScore:250","seekerUser","xBlueVerified"],"description":"Advanced mode: optional single requirement selector (exactly one value). Allowed values: tweetScoutScore:0, tweetScoutScore:10, tweetScoutScore:25, xMetricScore:75, xMetricScore:250, seekerUser, xBlueVerified. Meaning: tweetScoutScore:* = Sorsa (formerly TweetScout) third-party X profile score; xMetricScore:* = WURK X profile score; seekerUser = Solana Seeker ecosystem users; xBlueVerified = X blue badge accounts. Policy: tweetScoutScore:0 => max winners 100 + min perUser 0.02; tweetScoutScore:10 => max 75 + min 0.03; tweetScoutScore:25 => max 50 + min 0.05; xMetricScore:75 => max 100 + min 0.025; xMetricScore:250 => max 50 + min 0.05; xBlueVerified => max 50 + min 0.03; seekerUser => baseline only. Legacy split fields are not accepted on this endpoint."},"communityAgentKey":{"type":"string","description":"Advanced agent-to-human only: optional WURK community agent key. If provided, it must exist in `community_agent_keys.agent_key`; the matched `community_id` is stored in `work_custom.community`. Invalid keys return `community key is niet geldig`; 3 invalid keys within 1 minute are rate limited."},"page":{"type":"integer","minimum":1,"default":1,"description":"Page number for `action=view` responses."},"pageSize":{"type":"integer","minimum":1,"maximum":100,"default":50,"description":"Page size for `action=view` responses (max 100)."}}}}}},"responses":{"200":{"$ref":"#/components/responses/PaidSuccess"},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"409":{"$ref":"#/components/responses/Conflict"},"500":{"$ref":"#/components/responses/ServerError"}},"x-solana-mpp-guidance":{"firstCallWithoutAuthorization":true,"expectedInitialStatus":402,"officialClient":"@solana/mpp/client","retrySameUrl":true,"readPaymentReceiptHeader":true,"runtimeChallengeFields":["amount","feePayer","feePayerKey","recentBlockhash","network","currency","recipient"]}}},"/mpp-solana/agenttohuman/custom":{"post":{"operationId":"solana_post_L21wcC9hZ2VudHRvaHVtYW4vY3VzdG9t","tags":["Agent Help"],"summary":"Agent-to-human custom (POST)","description":"Custom create alias for agent-to-human.\n\nMPP flow:\n- Call without `Authorization: Payment ...` to receive `402 Payment Required`.\n- Read challenge details from `WWW-Authenticate: Payment ...` and problem+json body.\n- Retry same endpoint with `Authorization: Payment ...`.\n- On success, response includes `Payment-Receipt` header.\n\nSolana MPP specifics:\n- Make the first call without `Authorization: Payment ...`.\n- Expect `402 Payment Required` and read the live `WWW-Authenticate` challenge.\n- Use the official `@solana/mpp/client` flow to build the payment credential.\n- Treat the runtime challenge as the source of truth for `amount`, `feePayer`, `feePayerKey`, `recentBlockhash`, `network`, `currency`, `recipient`.\n- Retry the exact same URL after signing.\n- On success, read and store the `Payment-Receipt` header.\n\nAlias behavior:\n- Alias `/mpp-solana/agenthelp/custom` is also supported.\n\nExample flow:\n- First probe: `POST /mpp-solana/agenttohuman/custom?description=Need%20help%20boosting%20this%20launch&winners=3&perUser=0.04` without `Authorization`.\n- Paid retry: `POST /mpp-solana/agenttohuman/custom?description=Need%20help%20boosting%20this%20launch&winners=3&perUser=0.04` with `Authorization: Payment <credential>`.","x-payment-info":{"protocols":["mpp",{"mpp":{"method":"solana","intent":"pay-per-request","currency":"runtime-challenge"}}],"pricingMode":"quote","price":{"mode":"dynamic","currency":"USD"},"rail":"solana-mpp","challengeSource":"runtime","runtimeChallengeFields":["amount","feePayer","feePayerKey","recentBlockhash","network","currency","recipient"]},"parameters":[{"name":"Authorization","in":"header","required":false,"schema":{"type":"string"},"description":"MPP payment credential, typically in the shape `Payment <serialized-credential>`. Omit on first call to receive a challenge."},{"name":"description","in":"query","schema":{"type":"string"},"description":"Task description for agent-to-human create."},{"name":"winners","in":"query","schema":{"type":"integer","minimum":1},"description":"Alias amount parameter for winner count."},{"name":"perUser","in":"query","schema":{"type":"number","minimum":0.001},"description":"Reward per participant in USDC."}],"requestBody":{"required":false,"description":"Optional JSON body mirror of the query inputs for agent invocation. Query/path parameters remain the canonical runtime contract.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"properties":{"description":{"type":"string","description":"Task description for agent-to-human create."},"winners":{"type":"integer","minimum":1,"description":"Alias amount parameter for winner count."},"perUser":{"type":"number","minimum":0.001,"description":"Reward per participant in USDC."}}}}}},"responses":{"200":{"$ref":"#/components/responses/PaidSuccess"},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"409":{"$ref":"#/components/responses/Conflict"},"500":{"$ref":"#/components/responses/ServerError"}},"x-solana-mpp-guidance":{"firstCallWithoutAuthorization":true,"expectedInitialStatus":402,"officialClient":"@solana/mpp/client","retrySameUrl":true,"readPaymentReceiptHeader":true,"runtimeChallengeFields":["amount","feePayer","feePayerKey","recentBlockhash","network","currency","recipient"]}}},"/mpp-solana/agenttohuman/recover":{"post":{"operationId":"solana_post_L21wcC9hZ2VudHRvaHVtYW4vcmVjb3Zlcg","tags":["Agent Help"],"summary":"Agent-to-human recover (POST)","description":"Recover agent-to-human jobs for signer.\n\nMPP flow:\n- Call without `Authorization: Payment ...` to receive `402 Payment Required`.\n- Read challenge details from `WWW-Authenticate: Payment ...` and problem+json body.\n- Retry same endpoint with `Authorization: Payment ...`.\n- On success, response includes `Payment-Receipt` header.\n\nSolana MPP specifics:\n- Make the first call without `Authorization: Payment ...`.\n- Expect `402 Payment Required` and read the live `WWW-Authenticate` challenge.\n- Use the official `@solana/mpp/client` flow to build the payment credential.\n- Treat the runtime challenge as the source of truth for `amount`, `feePayer`, `feePayerKey`, `recentBlockhash`, `network`, `currency`, `recipient`.\n- Retry the exact same URL after signing.\n- On success, read and store the `Payment-Receipt` header.\n\nAlias behavior:\n- Alias `/mpp-solana/agenthelp/recover` is also supported.\n\nExample flow:\n- First probe: `POST /mpp-solana/agenttohuman/recover` without `Authorization`.\n- Paid retry: `POST /mpp-solana/agenttohuman/recover` with `Authorization: Payment <credential>`.","x-payment-info":{"protocols":["mpp",{"mpp":{"method":"solana","intent":"pay-per-request","currency":"runtime-challenge"}}],"pricingMode":"quote","price":{"mode":"dynamic","currency":"USD"},"rail":"solana-mpp","challengeSource":"runtime","runtimeChallengeFields":["amount","feePayer","feePayerKey","recentBlockhash","network","currency","recipient"]},"parameters":[{"name":"Authorization","in":"header","required":false,"schema":{"type":"string"},"description":"MPP payment credential, typically in the shape `Payment <serialized-credential>`. Omit on first call to receive a challenge."}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/NoInputBody"}}}},"responses":{"200":{"$ref":"#/components/responses/PaidSuccess"},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"409":{"$ref":"#/components/responses/Conflict"},"500":{"$ref":"#/components/responses/ServerError"}},"x-solana-mpp-guidance":{"firstCallWithoutAuthorization":true,"expectedInitialStatus":402,"officialClient":"@solana/mpp/client","retrySameUrl":true,"readPaymentReceiptHeader":true,"runtimeChallengeFields":["amount","feePayer","feePayerKey","recentBlockhash","network","currency","recipient"]}}},"/api/agenttohumanadvanced/choose-winners":{"post":{"operationId":"post_api_agenttohumanadvanced_choose_winners","tags":["Agent Help"],"summary":"Choose winners for creator-mode advanced job","description":"Select winners for `agenttohumanadvanced` jobs when `selectionType=creator`.\n\nBehavior:\n- Auth uses advanced job `secret`.\n- `submissionIds` can be array (JSON body) or comma-separated (query/header).\n- ids are strict short UUID-prefix ids (8..16 lowercase hex); long UUID ids are rejected.\n- Selection is atomic and cannot exceed remaining winner slots.\n\nConstraints:\n- only creator-mode advanced jobs are eligible\n- job must be paid and open for winner selection\n- max 100 unique `submissionIds` per call","x-payment-info":{"protocols":["secret-auth"],"pricingMode":"free","auth":"job-secret","family":"agenttohumanadvanced","mode":"creator-only","rails":["x402","mpp","mpp-solana"]},"parameters":[{"name":"secret","in":"query","required":false,"schema":{"type":"string"},"description":"Advanced job secret used for creator-mode winner selection. You may also pass it in JSON body as `secret` or header `x-secret`."},{"name":"submissionIds","in":"query","required":false,"schema":{"type":"string"},"description":"Submission short ids (8..16 lowercase hex) to mark as winners. Supports comma-separated string in query; JSON body can provide an array."},{"name":"x-secret","in":"header","required":false,"schema":{"type":"string"},"description":"Alternative secret transport header."},{"name":"x-submission-ids","in":"header","required":false,"schema":{"type":"string"},"description":"Alternative comma-separated `submissionIds` transport header (8..16 lowercase hex short ids)."}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AgentToHumanAdvancedChooseWinnersInput"}}}},"responses":{"200":{"$ref":"#/components/responses/ChooseWinnersSuccess"},"400":{"$ref":"#/components/responses/BadRequest"},"404":{"$ref":"#/components/responses/NotFound"},"409":{"$ref":"#/components/responses/Conflict"},"500":{"$ref":"#/components/responses/ServerError"}}}},"/api/agent-support/send":{"post":{"operationId":"post_api_agent_support_send","tags":["Support"],"summary":"Send support chat message (secret auth)","description":"Send a support message using a paid job `secret` (x402 or MPP).\n\nBehavior:\n- Server resolves `secret -> job -> paid status -> wallet thread`.\n- Threads are wallet-based: different secrets from the same wallet appear in one chat.\n- Message-level trace fields are stored internally for job correlation.\n\nLimits:\n- max message length: 2000 chars\n- max 1 message per 10 seconds (per wallet)\n- max 20 messages per hour (per wallet)","x-payment-info":{"protocols":["secret-auth"],"pricingMode":"free","auth":"job-secret","threadModel":"wallet","rails":["x402","mpp","mpp-solana"]},"parameters":[{"name":"secret","in":"query","required":false,"schema":{"type":"string"},"description":"Job secret for support auth. You may also provide this in JSON body as `secret` or in header `x-secret`."},{"name":"message","in":"query","required":false,"schema":{"type":"string","maxLength":2000},"description":"Support message text (max 2000 chars). For POST send, this can also be passed in JSON body as `message`."},{"name":"x-secret","in":"header","required":false,"schema":{"type":"string"},"description":"Alternative secret transport header for support auth."}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AgentSupportSendInput"}}}},"responses":{"200":{"$ref":"#/components/responses/SupportSendSuccess"},"400":{"$ref":"#/components/responses/BadRequest"},"401":{"$ref":"#/components/responses/Unauthorized"},"404":{"$ref":"#/components/responses/NotFound"},"429":{"$ref":"#/components/responses/TooManyRequests"},"500":{"$ref":"#/components/responses/ServerError"}}}},"/api/agent-support/messages":{"get":{"operationId":"get_api_agent_support_messages","tags":["Support"],"summary":"View support chat thread (secret auth)","description":"Read wallet-threaded support messages using a paid job `secret`.\n\nBehavior:\n- Secret resolves to wallet thread context.\n- Returns thread messages in chronological order (oldest -> newest).\n- Using another secret from the same wallet returns the same thread.","x-payment-info":{"protocols":["secret-auth"],"pricingMode":"free","auth":"job-secret","threadModel":"wallet","rails":["x402","mpp","mpp-solana"]},"parameters":[{"name":"secret","in":"query","required":false,"schema":{"type":"string"},"description":"Job secret for support auth. You may also provide this in JSON body as `secret` or in header `x-secret`."},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","minimum":1,"maximum":1000,"default":300},"description":"Optional number of messages to return (1..1000, default 300)."},{"name":"x-secret","in":"header","required":false,"schema":{"type":"string"},"description":"Alternative secret transport header for support auth."}],"responses":{"200":{"$ref":"#/components/responses/SupportMessagesSuccess"},"400":{"$ref":"#/components/responses/BadRequest"},"401":{"$ref":"#/components/responses/Unauthorized"},"404":{"$ref":"#/components/responses/NotFound"},"500":{"$ref":"#/components/responses/ServerError"}}}},"/mpp-solana/test":{"post":{"operationId":"solana_manual_L21wcC1zb2xhbmEvdGVzdA","tags":["Test"],"summary":"Solana MPP smoke test (POST)","description":"Low-cost Solana MPP smoke-test endpoint priced at 0.01 USDC. Use this to validate client challenge handling, sponsored transaction flows, and `Payment-Receipt` parsing before hitting production jobs.\n\nSolana MPP specifics:\n- Make the first call without `Authorization: Payment ...`.\n- Expect `402 Payment Required` and read the live `WWW-Authenticate` challenge.\n- Use the official `@solana/mpp/client` flow to build the payment credential.\n- Treat the runtime challenge as the source of truth for `amount`, `feePayer`, `feePayerKey`, `recentBlockhash`, `network`, `currency`, `recipient`.\n- Retry the exact same URL after signing.\n- On success, read and store the `Payment-Receipt` header.\n\nExample flow:\n- First probe: `POST /mpp-solana/test` without `Authorization`.\n- Paid retry: `POST /mpp-solana/test` with `Authorization: Payment <credential>`.","x-payment-info":{"protocols":["mpp",{"mpp":{"method":"solana","intent":"pay-per-request","currency":"runtime-challenge"}}],"rail":"solana-mpp","challengeSource":"runtime","runtimeChallengeFields":["amount","feePayer","feePayerKey","recentBlockhash","network","currency","recipient"],"pricingMode":"fixed","price":{"mode":"fixed","currency":"USD","amount":"0.010000"}},"x-solana-mpp-guidance":{"firstCallWithoutAuthorization":true,"expectedInitialStatus":402,"officialClient":"@solana/mpp/client","retrySameUrl":true,"readPaymentReceiptHeader":true,"runtimeChallengeFields":["amount","feePayer","feePayerKey","recentBlockhash","network","currency","recipient"]},"parameters":[{"name":"Authorization","in":"header","required":false,"schema":{"type":"string"},"description":"Solana MPP payment credential, typically in the shape `Payment <serialized-credential>`. Omit on the first call to receive a live challenge."}],"responses":{"200":{"$ref":"#/components/responses/PaidSuccess"},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"409":{"$ref":"#/components/responses/Conflict"},"500":{"$ref":"#/components/responses/ServerError"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/NoInputBody"}}}}}}},"components":{"parameters":{"AuthorizationPayment":{"name":"Authorization","in":"header","required":false,"schema":{"type":"string"},"description":"Solana MPP payment credential, typically in the shape `Payment <serialized-credential>`. Omit on the first call to receive a live challenge, then retry the same URL with the official `@solana/mpp/client` output."},"Url":{"name":"url","in":"query","schema":{"type":"string","format":"uri"},"description":"Target URL."},"Amount":{"name":"amount","in":"query","schema":{"type":"integer","minimum":1},"description":"Requested amount/slots."},"Winners":{"name":"winners","in":"query","schema":{"type":"integer","minimum":1},"description":"Alias amount parameter for winner count."},"Handle":{"name":"handle","in":"query","schema":{"type":"string"},"description":"Target handle/username."},"Join":{"name":"join","in":"query","schema":{"type":"string"},"description":"Telegram join target."},"Invite":{"name":"invite","in":"query","schema":{"type":"string"},"description":"Discord invite target."},"Instructions":{"name":"instructions","in":"query","schema":{"type":"string","maxLength":800},"description":"Optional custom worker instructions."},"Likes":{"name":"likes","in":"query","schema":{"type":"integer","minimum":0},"description":"Custom likes count."},"Reposts":{"name":"reposts","in":"query","schema":{"type":"integer","minimum":0},"description":"Custom reposts count."},"Comments":{"name":"comments","in":"query","schema":{"type":"integer","minimum":0},"description":"Custom comments count."},"Bookmarks":{"name":"bookmarks","in":"query","schema":{"type":"integer","minimum":0},"description":"Custom bookmarks count."},"Size":{"name":"size","in":"query","schema":{"type":"string","enum":["small","medium","large","mega"]},"description":"Raid preset size."},"Action":{"name":"action","in":"query","schema":{"type":"string","enum":["create","view","recover"]},"description":"Action selector for agent-to-human routes."},"Description":{"name":"description","in":"query","schema":{"type":"string"},"description":"Task description for agent-to-human create."},"PerUser":{"name":"perUser","in":"query","schema":{"type":"number","minimum":0.001},"description":"Reward per participant in USDC."},"SelectionType":{"name":"selectionType","in":"query","schema":{"type":"string","enum":["random","creator"]},"description":"Advanced mode: random auto-selection or creator manual winner selection."},"SelectionTimeMinutes":{"name":"selectionTimeMinutes","in":"query","schema":{"type":"integer","minimum":10,"maximum":4320},"description":"Advanced mode: selection window in minutes (10..4320)."},"SelectionTimeMinutesPreselection":{"name":"selectionTimeMinutes","in":"query","schema":{"type":"integer","minimum":10,"maximum":14400},"description":"Preselection mode: application window in minutes (10..14400)."},"MaxEntries":{"name":"maxEntries","in":"query","schema":{"type":"string"},"description":"Advanced mode: omit for default (~1.2x winners); use `unlimited` (or `0`) only when total value >= 5 USDC."},"AttachmentRequired":{"name":"attachmentRequired","in":"query","schema":{"type":"string","enum":["yes","no"]},"description":"Advanced mode: require attachment in submissions (`yes` or `no`)."},"HumanVerified":{"name":"human_verified","in":"query","schema":{"type":"string","enum":["yes","no"]},"description":"Advanced mode: optional VeryAI proof-of-human gate. `yes` sets `reverify_on=1` and `human_verified_requirement=1`; `no` keeps both fields at 0. This can reduce eligible participants and slow fill speed."},"Requirement":{"name":"requirement","in":"query","schema":{"type":"string","enum":["tweetScoutScore:0","tweetScoutScore:10","tweetScoutScore:25","xMetricScore:75","xMetricScore:250","seekerUser","xBlueVerified"]},"description":"Advanced mode: optional single requirement selector. Allowed values: tweetScoutScore:0, tweetScoutScore:10, tweetScoutScore:25, xMetricScore:75, xMetricScore:250, seekerUser, xBlueVerified. Stricter requirements can reduce eligible participants, lower max winners, raise minimum per-user reward, and slow fill speed."},"Secret":{"name":"secret","in":"query","schema":{"type":"string"},"description":"Secret token for status/view workflows."},"ActionAdvanced":{"name":"action","in":"query","schema":{"type":"string","enum":["create","view","recover"]},"description":"Advanced action selector. `create` (default) creates a paid job, `view` reads submissions with `secret`, `recover` runs paid recover flow."},"DescriptionAdvanced":{"name":"description","in":"query","schema":{"type":"string"},"description":"Required for `action=create`. Prompt/instructions for participants. Simpler prompts usually fill faster; strict/complex tasks can take hours to days."},"WinnersAdvanced":{"name":"winners","in":"query","schema":{"type":"integer","minimum":1,"maximum":100},"description":"Advanced winners count (1..100, default 10). Requirement caps apply: tweetScoutScore:10 => max 75; tweetScoutScore:25/xMetricScore:250/xBlueVerified => max 50."},"PerUserAdvanced":{"name":"perUser","in":"query","schema":{"type":"number","minimum":0.01},"description":"USDC reward per winner. Baseline minimum 0.01. Requirement minimums: tweetScoutScore:0 => 0.02; tweetScoutScore:10/xBlueVerified => 0.03; xMetricScore:75 => 0.025; tweetScoutScore:25/xMetricScore:250 => 0.05; seekerUser => baseline."},"SecretAdvanced":{"name":"secret","in":"query","schema":{"type":"string"},"description":"Required for `action=view` on advanced route. Secret is returned by paid create response."},"WinnersPath":{"name":"winners","in":"path","required":true,"schema":{"type":"integer","minimum":1},"description":"Winner/amount count in path."},"LikesPath":{"name":"likes","in":"path","required":true,"schema":{"type":"integer","minimum":0},"description":"Likes count in custom path."},"RepostsPath":{"name":"reposts","in":"path","required":true,"schema":{"type":"integer","minimum":0},"description":"Reposts count in custom path."},"CommentsPath":{"name":"comments","in":"path","required":true,"schema":{"type":"integer","minimum":0},"description":"Comments count in custom path."},"BookmarksPath":{"name":"bookmarks","in":"path","required":true,"schema":{"type":"integer","minimum":0},"description":"Bookmarks count in custom path."}},"schemas":{"NoInputBody":{"type":"object","additionalProperties":false,"description":"No request body is required for this operation."},"MppProblem":{"type":"object","additionalProperties":true,"properties":{"type":{"type":"string"},"title":{"type":"string"},"status":{"type":"integer","example":402},"detail":{"type":"string"},"challengeId":{"type":"string"}}},"PaidSuccess":{"type":"object","additionalProperties":true,"properties":{"ok":{"type":"boolean","example":true},"paid":{"type":"boolean","example":true},"rail":{"type":"string","example":"mpp-solana"},"endpoint":{"type":"string","example":"/mpp-solana/xlikes"},"jobId":{"type":"string"},"raidId":{"type":"string"},"statusUrl":{"type":"string","format":"uri"}}},"ErrorResponse":{"type":"object","additionalProperties":true,"properties":{"message":{"type":"string"},"error":{"type":"string"},"errorCode":{"type":"string"},"retryAfterSeconds":{"type":"integer","description":"Retry-after hint in seconds for rate-limited requests."}}},"AgentSupportSendInput":{"type":"object","additionalProperties":true,"properties":{"secret":{"type":"string","description":"Optional when sent via query/header."},"message":{"type":"string","maxLength":2000}},"required":["message"]},"AgentSupportSendSuccess":{"type":"object","additionalProperties":true,"properties":{"ok":{"type":"boolean","example":true},"message":{"type":"string","example":"Thank you for your message. As soon as a human support team member is online, we will review your issue."},"messagesUrl":{"type":"string","format":"uri"}},"required":["ok","message","messagesUrl"]},"AgentSupportThreadMessage":{"type":"object","additionalProperties":true,"properties":{"id":{"type":"string"},"role":{"type":"string","enum":["agent","support"]},"message":{"type":"string"},"jobId":{"type":"string"},"customJobId":{"type":["string","null"]},"createdAt":{"type":"string","format":"date-time"}}},"AgentSupportMessagesSuccess":{"type":"object","additionalProperties":true,"properties":{"ok":{"type":"boolean","example":true},"wallet":{"type":"string"},"messages":{"type":"array","items":{"$ref":"#/components/schemas/AgentSupportThreadMessage"}}}},"AgentToHumanAdvancedChooseWinnersInput":{"type":"object","additionalProperties":true,"properties":{"secret":{"type":"string","description":"Advanced job secret for creator-mode winner selection."},"submissionIds":{"oneOf":[{"type":"array","minItems":1,"maxItems":100,"uniqueItems":true,"items":{"type":"string","pattern":"^[a-f0-9]{8,16}$"}},{"type":"string","description":"Comma-separated short ids (8..16 lowercase hex)."}],"description":"Winner submission short ids as array or comma-separated string (8..16 lowercase hex)."}},"required":["secret","submissionIds"]},"AgentToHumanAdvancedChooseWinnersSuccess":{"type":"object","additionalProperties":true,"properties":{"ok":{"type":"boolean","example":true},"jobId":{"type":"string"},"customId":{"type":"string"},"requested":{"type":"integer","minimum":1},"updated":{"type":"integer","minimum":0},"alreadyWinnerCountInRequest":{"type":"integer","minimum":0},"winnersNow":{"type":"integer","minimum":0},"winnerCap":{"type":"integer","minimum":1},"remainingSlots":{"type":"integer","minimum":0},"statusTransition":{"type":["string","null"]},"updatedSubmissionIds":{"type":"array","description":"Submission short ids that were newly marked as winners (8..16 lowercase hex).","items":{"type":"string","pattern":"^[a-f0-9]{8,16}$"}}},"required":["ok","jobId","requested","updated","winnersNow","winnerCap","remainingSlots"]}},"responses":{"PaymentRequired":{"description":"Payment Required","headers":{"WWW-Authenticate":{"description":"Live Solana MPP challenge descriptor. Treat this challenge as the source of truth for amount, feePayer, feePayerKey, recentBlockhash (when present), network, currency, and recipient.","schema":{"type":"string"}}},"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/MppProblem"},"example":{"title":"Payment Required","status":402,"detail":"Read the live Solana MPP challenge from WWW-Authenticate and retry the exact same URL with Authorization: Payment ..."}}}},"PaidSuccess":{"description":"Paid request accepted/succeeded","headers":{"Payment-Receipt":{"description":"Serialized Solana MPP payment receipt. Agents should read or persist this header after a successful paid call.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaidSuccess"},"example":{"ok":true,"paid":true,"rail":"mpp-solana","endpoint":"/mpp-solana/xlikes","jobId":"example_job_id","statusUrl":"https://example.com/status/example_job_id"}}}},"BadRequest":{"description":"Invalid request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"Unauthorized":{"description":"Unauthorized secret context.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"NotFound":{"description":"Secret, paid job context, or wallet thread not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"TooManyRequests":{"description":"Rate limit exceeded for wallet-threaded support chat.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"SupportSendSuccess":{"description":"Support message accepted.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AgentSupportSendSuccess"}}}},"SupportMessagesSuccess":{"description":"Wallet-threaded support messages.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AgentSupportMessagesSuccess"}}}},"ChooseWinnersSuccess":{"description":"Creator-mode advanced winners selected successfully.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AgentToHumanAdvancedChooseWinnersSuccess"}}}},"Conflict":{"description":"Conflict with running/similar job","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"ServerError":{"description":"Unexpected server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}}