Request body for POST /v1/round/execute. With RequestAuth, subscriptionOwner, consumerAuthority, authSig and authTimestamp are also required. With a session token, omit authSig and authTimestamp; the two identity fields are optional.
Subscription owner pubkey (base58). Equal to consumerAuthority for owner-direct requests. Optional with a session token; if sent it must match the session.
Consumer identity that signs RequestAuth (base58): the subscription owner, or a delegate of it. Optional with a session token; if sent it must match the session.
Ed25519 signature (64 bytes, base58 or 0x hex) by consumerAuthority over
keccak256("MOLPHA_REQAUTH_V1" || program_id || gateway_pda || source_id || u8(signaturesRequired) || u64_le(authTimestamp)),
where source_id is the canonical apiConfig hash. It only authorizes the request; it is not part of the round.
Omit it, and authTimestamp, when sending a session bearer token.
Unix time in SECONDS at which authSig was signed. Must be within requestAuthWindowSeconds (from GET /v1/info) of the gateway clock, in either direction. Unrelated to the round's millisecond timestamp, which the gateway assigns.
Per-node encrypted key envelopes. Keys are decimal node indices as strings; values are hex. Send one for every node in the registry; the gateway forwards each selected node only its own.
Declare a paywalled API source. Without sourcePayments the gateway returns the 402 quote instead of running the round.
Response
Signed payload ready for submission or verification
Successful round response, shared by POST /v1/round/execute and POST /v1/x402/execute. The attestation payload and Schnorr signature are what verifiers consume.
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"Molpha","description":"Any API. One threshold signature. Every chain. Threshold-signed data for smart contracts, backends and AI agents, verifiable on Solana, EVM and Starknet.","colors":{"primary":"#9a641f","light":"#cb852a","dark":"#8f5c1c"},"logo":{"light":"https://mintcdn.com/molpha/JodtmQOniERYvMcY/logo/logo.svg?fit=max\u0026auto=format\u0026n=JodtmQOniERYvMcY\u0026q=85\u0026s=0602b5fe95eb3b1557d5dc52b1cd31e7","dark":"https://mintcdn.com/molpha/JodtmQOniERYvMcY/logo/logo.svg?fit=max\u0026auto=format\u0026n=JodtmQOniERYvMcY\u0026q=85\u0026s=0602b5fe95eb3b1557d5dc52b1cd31e7","href":"https://molpha.io"},"favicon":"https://mintcdn.com/molpha/JodtmQOniERYvMcY/logo/favicon.svg?fit=max\u0026auto=format\u0026n=JodtmQOniERYvMcY\u0026q=85\u0026s=fdd89da20736ef39a7efc3cc50d39125","api":{"openapi":"gateway-openapi.yaml","params":{"expanded":"all"},"playground":{"display":"interactive"},"examples":{"defaults":"required","languages":["curl","javascript","python","go"],"prefill":true,"autogenerate":true}},"navbar":{"links":[{"href":"mailto:contact@molpha.io","label":"Support"},{"icon":"github","href":"https://github.com/molpha","label":"GitHub"},{"icon":"discord","href":"https://discord.molpha.io","label":"Discord"}],"primary":{"type":"button","label":"npm","href":"https://www.npmjs.com/package/@molpha/sdk"}},"footer":{"socials":{"x":"https://x.com/molpha_oracle","discord":"https://discord.molpha.io","github":"https://github.com/molpha","linkedin":"https://www.linkedin.com/company/molpha-oracle"}},"seo":{"metatags":{"og:site_name":"Molpha Docs","twitter:card":"summary_large_image","twitter:site":"@molpha_oracle","canonical":"https://docs.molpha.io"},"organization":{"id":"https://molpha.io/#organization","name":"Molpha","url":"https://molpha.io","logo":"https://docs.molpha.io/logo/logo.svg","sameAs":["https://x.com/molpha_oracle","https://discord.molpha.io","https://github.com/molpha","https://www.linkedin.com/company/molpha-oracle"]},"indexing":"navigable"},"contextual":{"options":["copy","download-spec","chatgpt","claude"],"display":"header"},"styling":{"latex":false},"navigation":{"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"molpha","hasAudioNarration":false,"actualSubdomain":"molpha","customDomains":["docs.molpha.io"],"gitSource":{"type":"github","owner":"molpha","repo":"docs","deployBranch":"main","contentDirectory":"","isPrivate":false,"mountPath":"","label":""},"chroma":{"liveDeploymentHistoryId":"6acbe469884174bcc7e40b91","collectionId":"056a6fd1-9064-4f84-aec8-ce5e933252ab","schemaVersion":"v3","latestBuiltDeploymentHistoryId":"6acbe469884174bcc7e40b91"},"feedback":{"issues":false,"agentFeedback":true},"entitlements":{},"buildId":"6acbe469884174bcc7e40b91","clientVersion":"0.0.4067","searchFilterCounts":[{"language":"default","tag":"Documentation","count":28},{"language":"default","tag":"API reference","count":12},{"language":"default","tag":"Verify and publish","count":6},{"language":"default","tag":"Network","count":5},{"language":"default","tag":"Access and payments","count":4},{"language":"default","tag":"Get started","count":4},{"language":"default","tag":"MCP server","count":4},{"language":"default","tag":"Protocol","count":4},{"language":"default","tag":"Concepts","count":3},{"language":"default","tag":"Rounds","count":3}]},"assistantConfig":{"enableAskAiButton":false,"enableStarterQuestions":false,"enableAskAiSearchBar":true},"basePath":"","hasChatPermissions":false,"hasWebMcpPermissions":false,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"rbac-expansion","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"full-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"vite-origin","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-sso-scim","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-signup","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-dual-write","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"approve-review-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"sso-setup-deadline-banner","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-serve","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"privacy":{"consentBanner":{"enabled":true}},"googleFontsInlined":false},"customCss":[],"page":{"pagePath":"gateways/api/round-execute","slug":"/gateways/api/round-execute","pageMetadata":{"title":"Execute a subscription round","sidebarTitle":"Round execute","openapi":"gateway-openapi.yaml POST /v1/round/execute","description":"Subscription-backed signing round for feed owners and delegates.","href":"/gateways/api/round-execute"},"description":{"compiledSource":"\"use strict\";\nconst {jsx: _jsx} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsx(_components.p, {\n children: \"Subscription-backed signing round for feed owners and delegates.\"\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){return _jsx(_Fragment,{})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"title":"Execute a subscription round","sidebarTitle":"Round execute","openapi":"gateway-openapi.yaml POST /v1/round/execute","description":"Subscription-backed signing round for feed owners and delegates.","href":"/gateways/api/round-execute"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[],"codeExamples":{}},"jsLinks":[],"openApiReferenceData":{"operation":{"summary":"Execute a subscription round","description":"Subscription-backed signing round for feed owners and delegates.","x-mint":{"metadata":{"sidebarTitle":"Round execute"},"content":"Runs a round paid by a subscription, for the subscription owner or one of its [delegates](/access-models/delegates), and returns the signed attestation. The response has the same shape as [`POST /v1/x402/execute`](/gateways/api/x402-execute).\n\nAuthenticate with a `RequestAuth` signature in the body or a sign-in session token in the `Authorization` header (sending both returns `400`). Both are described in the [Gateway API overview](/gateways/overview#authentication). The request example on this page uses `RequestAuth`. With a session token, send `Authorization: Bearer \u003ctoken>` and leave `authSig` and `authTimestamp` out of the body.\n\n- **No `sourceId` and no timestamp in the request.** The gateway derives the [source ID](/concepts/feeds#source-id) from `apiConfig` and stamps the round on the 100 ms grid ([round timing](/concepts/attestations#round-timing)).\n- **Duplicates.** A second request from the same consumer for the same source and quorum inside one tick returns `409` with nothing reserved. Retry after one tick with a fresh `authTimestamp`.\n- **No idempotency key.** A retry is a new round and uses another unit of quota.\n- **Capacity.** At capacity the gateway answers `503` with `Retry-After` before reading the body; a per-consumer limit answers `429`. Neither spends quota.\n\n### Validation rules\n\n| Field | Rule |\n| --- | --- |\n| `authSig`, `authTimestamp` | Ed25519 signature by `consumerAuthority` over the RequestAuth digest; `authTimestamp` in unix seconds within `requestAuthWindowSeconds` of the gateway clock. Omit both with a session token. |\n| `signaturesRequired` | At least the protocol `min_signers`; at most the current node count (`400`) and the subscription's `max_signers` (`403`) |\n| `registryVersion` | Must equal the current on-chain registry version |\n| `apiConfig.url` | `http` or `https` |\n| `apiConfig.method` | `GET`, `POST`, `PUT`, `PATCH`, `DELETE`, `HEAD` or `OPTIONS` |\n| `apiConfig.aggregation` | Optional [tolerance mode](/concepts/feeds#exact-and-tolerance-mode): rule `median`, type `int256`, `maxAgeMs` > 0, `signaturesRequired` ≥ 3. `\"mode\": \"exact\"` is rejected. |\n| `encKeyBundle` | Optional encrypted secrets: one envelope per registry node; each selected node receives only its own |\n\n### Paywalled sources and providers\n\nFor a source that is itself x402-paywalled, set `x402Source`. The gateway answers `402` with the eligible nodes in `extensions.upstream` and an empty `accepts` (the round itself is covered by the subscription). Resend with one caller-signed authorization per eligible node in `sourcePayments`; they pay the source, never Molpha.\n\nOn an integrated provider's `api_key` host ([`GET /v1/providers`](/gateways/api/providers-list)), Molpha supplies the credential: use a route the provider lists, method `GET`, no headers, and the aggregation it requires. When the provider's call budget is spent the answer is `503` and no quota is used.\n"},"tags":["round"],"requestBody":"34ff6ffa-2ffe-4706-8527-dc559f51fbb3","responses":{"200":"d446a309-ebe5-4ed6-aa3d-3af3df92c996","400":"451e786e-b51c-4e6c-bc84-2cc27c5013e9","401":"0bf86a1c-8d2e-48b8-9293-841fe496b843","402":"b48d3808-7d2b-4598-ac01-e06f32425e7e","403":"0e4a359d-1933-4abf-93a2-ec6c6dfa727e","409":"c63d68bc-e41f-48da-b085-62ea43d95fff","429":"3478dc2e-2fbf-40a6-a4ce-c855e60fde1c","500":"1c4e3428-8818-4dfd-92ab-1df4cf951208","503":"d00cc745-5d37-4742-9d1f-e752484693f0"},"method":"post","type":"path","servers":["769641aa-5b99-4072-b9e9-117773357097"],"security":[],"path":"/v1/round/execute","baseUrlOptions":["https://gateway.molpha.io"],"title":"Execute a subscription round","codeSamples":[],"requestExampleLanguages":["bash","javascript","python","go"],"requiredOnlyExamples":true,"requestExampleType":"generated","responseExampleType":"generated","prefillPlaygroundWithExample":true,"prefillPlaygroundExamples":[{"body.signaturesRequired":3,"body.registryVersion":42,"body.apiConfig.url":"https://api.example.com/v1/price","body.apiConfig.method":"GET","body.apiConfig.responseParser":"$.data.price","body.apiConfig.valueTransform":"multiply:1e6","body.subscriptionOwner":"7xKXtg2CW87d97TXJSDpbD5jBkheTqA83TZRuJosgAsU","body.consumerAuthority":"7xKXtg2CW87d97TXJSDpbD5jBkheTqA83TZRuJosgAsU","body.authSig":"5VERv8NMvzbJMEkV8xnrLkEaWRtSz9ibyvq8CJ7qJqJqJqJqJqJqJqJqJqJqJqJqJqJqJqJqJqJqJqJqJq","body.authTimestamp":1700100000}]},"dependencies":{"parameters":{},"requestBody":{"required":true,"description":"Round execution request","content":{"application/json":{"schema":{"type":"object","description":"Request body for `POST /v1/round/execute`. With RequestAuth, `subscriptionOwner`, `consumerAuthority`, `authSig` and `authTimestamp` are also required. With a session token, omit `authSig` and `authTimestamp`; the two identity fields are optional.","required":["signaturesRequired","registryVersion","apiConfig"],"properties":{"signaturesRequired":{"type":"integer","description":"Requested quorum: at least protocol `min_signers`, at most the subscription's `max_signers` (`403` above it) and the current node count.","example":3,"isRequired":true,"uniqueKey":"signaturesRequired","typeLabel":"integer"},"registryVersion":{"type":"integer","description":"Active on-chain registry version. Must match the current version.","example":42,"isRequired":true,"uniqueKey":"registryVersion","typeLabel":"integer"},"apiConfig":{"type":"object","description":"Off-chain HTTP API configuration. Its canonical hash is the source ID.","required":["url","method"],"properties":{"url":{"type":"string","description":"Target API URL. Must use `http` or `https`.","example":"https://api.example.com/v1/price","isRequired":true,"uniqueKey":"apiConfig.url","typeLabel":"string"},"method":{"type":"string","description":"HTTP method. Required: `GET`, `POST`, `PUT`, `PATCH`, `DELETE`, `HEAD` or `OPTIONS`. It is hashed into the source ID as sent.","example":"GET","isRequired":true,"uniqueKey":"apiConfig.method","typeLabel":"string"},"headers":{"type":"object","description":"Request headers. Use `{{secret.name}}` placeholders with `encKeyBundle` for private APIs.","additionalProperties":{"type":"string","uniqueKey":"apiConfig.headers.additionalProperties","typeLabel":"string"},"example":{},"uniqueKey":"apiConfig.headers","typeLabel":"object"},"responseParser":{"type":"string","description":"JSONPath expression to extract the value from the API response.","example":"$.data.price","uniqueKey":"apiConfig.responseParser","typeLabel":"string"},"valueTransform":{"type":"string","description":"Optional post-parse transform (e.g. `multiply:1e6`).","example":"multiply:1e6","uniqueKey":"apiConfig.valueTransform","typeLabel":"string"},"aggregation":{"type":"object","description":"Selects median tolerance mode. Omit it for exact mode. It is part of the source ID; `\"mode\":\"exact\"` is rejected.","properties":{"mode":{"type":"string","enum":["tolerance"],"example":"tolerance","uniqueKey":"apiConfig.aggregation.mode","typeLabel":"enum\u003cstring>"},"rule":{"type":"string","enum":["median"],"example":"median","uniqueKey":"apiConfig.aggregation.rule","typeLabel":"enum\u003cstring>"},"maxDeviationBps":{"type":"integer","description":"Largest allowed deviation from the lower median, in basis points.","example":50,"uniqueKey":"apiConfig.aggregation.maxDeviationBps","typeLabel":"integer"},"maxAgeMs":{"type":"integer","minimum":1,"description":"Largest allowed age of an observation, in milliseconds. Must be greater than 0.","example":2000,"uniqueKey":"apiConfig.aggregation.maxAgeMs","typeLabel":"integer"},"numeric":{"type":"object","description":"How observed decimals become the signed integer.","properties":{"type":{"type":"string","enum":["int256"],"example":"int256","uniqueKey":"apiConfig.aggregation.numeric.type","typeLabel":"enum\u003cstring>"},"decimals":{"type":"integer","description":"The signed value is scaled by `10^decimals`.","example":8,"uniqueKey":"apiConfig.aggregation.numeric.decimals","typeLabel":"integer"}},"uniqueKey":"apiConfig.aggregation.numeric","typeLabel":"object"}},"uniqueKey":"apiConfig.aggregation","typeLabel":"object"}},"isRequired":true,"uniqueKey":"apiConfig","typeLabel":"object"},"subscriptionOwner":{"type":"string","description":"Subscription owner pubkey (base58). Equal to `consumerAuthority` for owner-direct requests. Optional with a session token; if sent it must match the session.","example":"7xKXtg2CW87d97TXJSDpbD5jBkheTqA83TZRuJosgAsU","uniqueKey":"subscriptionOwner","typeLabel":"string"},"consumerAuthority":{"type":"string","description":"Consumer identity that signs RequestAuth (base58): the subscription owner, or a delegate of it. Optional with a session token; if sent it must match the session.","example":"7xKXtg2CW87d97TXJSDpbD5jBkheTqA83TZRuJosgAsU","uniqueKey":"consumerAuthority","typeLabel":"string"},"authSig":{"type":"string","description":"Ed25519 signature (64 bytes, base58 or `0x` hex) by `consumerAuthority` over\n`keccak256(\"MOLPHA_REQAUTH_V1\" || program_id || gateway_pda || source_id || u8(signaturesRequired) || u64_le(authTimestamp))`,\nwhere `source_id` is the canonical apiConfig hash. It only authorizes the request; it is not part of the round.\nOmit it, and `authTimestamp`, when sending a session bearer token.","uniqueKey":"authSig","typeLabel":"string"},"authTimestamp":{"type":"integer","description":"Unix time in SECONDS at which `authSig` was signed. Must be within `requestAuthWindowSeconds` (from `GET /v1/info`) of the gateway clock, in either direction. Unrelated to the round's millisecond `timestamp`, which the gateway assigns.","example":1700100000,"uniqueKey":"authTimestamp","typeLabel":"integer"},"encKeyBundle":{"type":"object","description":"Optional encryption envelope. Send `null` or omit for plaintext configs.","properties":{"ephemeralPub":{"type":"string","description":"Ephemeral public key used to encrypt the config (hex).","uniqueKey":"encKeyBundle.ephemeralPub","typeLabel":"string"},"nonceSym":{"type":"string","description":"Symmetric encryption nonce (12 bytes, hex).","uniqueKey":"encKeyBundle.nonceSym","typeLabel":"string"},"ciphertext":{"type":"string","description":"Encrypted API configuration payload (hex).","uniqueKey":"encKeyBundle.ciphertext","typeLabel":"string"},"envelopes":{"type":"object","description":"Per-node encrypted key envelopes. Keys are decimal node indices as strings; values are hex. Send one for every node in the registry; the gateway forwards each selected node only its own.","additionalProperties":{"type":"string","uniqueKey":"encKeyBundle.envelopes.additionalProperties","typeLabel":"string"},"uniqueKey":"encKeyBundle.envelopes","typeLabel":"object"}},"uniqueKey":"encKeyBundle","typeLabel":"object"},"sourcePayments":{"type":"array","description":"Base64 x402 payloads for a paywalled API source, one per node in the round's eligible set. They pay the source, never Molpha.","items":{"type":"string","uniqueKey":"sourcePayments.items.[INDEX]","typeLabel":"string"},"uniqueKey":"sourcePayments","typeLabel":"string[]"},"x402Source":{"type":"boolean","description":"Declare a paywalled API source. Without `sourcePayments` the gateway returns the `402` quote instead of running the round.","uniqueKey":"x402Source","typeLabel":"boolean"}},"uniqueKey":"","typeLabel":"object"},"example":{"subscriptionOwner":"7xKXtg2CW87d97TXJSDpbD5jBkheTqA83TZRuJosgAsU","consumerAuthority":"7xKXtg2CW87d97TXJSDpbD5jBkheTqA83TZRuJosgAsU","signaturesRequired":3,"registryVersion":42,"authTimestamp":1700100000,"authSig":"5VERv8NMvzbJMEkV8xnrLkEaWRtSz9ibyvq8CJ7qJqJqJqJqJqJqJqJqJqJqJqJqJqJqJqJqJqJqJqJqJq","apiConfig":{"url":"https://api.example.com/v1/price","method":"GET","headers":{},"responseParser":"$.data.price","valueTransform":"multiply:1e6"}},"examples":{"Example":{"title":"Example","value":{"subscriptionOwner":"7xKXtg2CW87d97TXJSDpbD5jBkheTqA83TZRuJosgAsU","consumerAuthority":"7xKXtg2CW87d97TXJSDpbD5jBkheTqA83TZRuJosgAsU","signaturesRequired":3,"registryVersion":42,"authTimestamp":1700100000,"authSig":"5VERv8NMvzbJMEkV8xnrLkEaWRtSz9ibyvq8CJ7qJqJqJqJqJqJqJqJqJqJqJqJqJqJqJqJqJqJqJqJqJq","apiConfig":{"url":"https://api.example.com/v1/price","method":"GET","headers":{},"responseParser":"$.data.price","valueTransform":"multiply:1e6"}}}},"exampleType":"examples"}},"exampleType":"examples"},"responses":{"d446a309-ebe5-4ed6-aa3d-3af3df92c996":{"description":"Signed payload ready for submission or verification","content":{"application/json":{"schema":{"type":"object","description":"Successful round response, shared by `POST /v1/round/execute` and `POST /v1/x402/execute`. The attestation payload and Schnorr signature are what verifiers consume.","properties":{"status":{"type":"string","example":"completed","uniqueKey":"status","typeLabel":"string"},"data":{"type":"object","properties":{"attestation":{"type":"object","properties":{"payload":{"type":"object","properties":{"value":{"type":"string","description":"Fixed 32-byte packed value (hex). Unsigned in exact mode, signed int256 in tolerance mode.","uniqueKey":"data.attestation.payload.value","typeLabel":"string"},"sourceId":{"type":"string","description":"32-byte source ID (hex), the canonical API-config hash.","uniqueKey":"data.attestation.payload.sourceId","typeLabel":"string"},"registryVersion":{"type":"integer","example":42,"uniqueKey":"data.attestation.payload.registryVersion","typeLabel":"integer"},"signaturesRequired":{"type":"integer","example":3,"uniqueKey":"data.attestation.payload.signaturesRequired","typeLabel":"integer"},"timestamp":{"type":"integer","description":"Gateway-assigned round time in unix milliseconds.","example":1700100000000,"uniqueKey":"data.attestation.payload.timestamp","typeLabel":"integer"}},"uniqueKey":"data.attestation.payload","typeLabel":"object"},"signature":{"type":"object","properties":{"signature":{"type":"string","description":"32-byte aggregate Schnorr scalar (hex).","uniqueKey":"data.attestation.signature.signature","typeLabel":"string"},"commitment":{"type":"string","description":"20-byte commitment address (hex).","uniqueKey":"data.attestation.signature.commitment","typeLabel":"string"},"signersBitmap":{"type":"string","description":"32-byte big-endian bitmap of participating signers (hex).","uniqueKey":"data.attestation.signature.signersBitmap","typeLabel":"string"}},"uniqueKey":"data.attestation.signature","typeLabel":"object"}},"uniqueKey":"data.attestation","typeLabel":"object"},"value":{"type":"string","description":"Decimal rendering of `payload.value` (trailing zeros trimmed).","example":"42150125000000","uniqueKey":"data.value","typeLabel":"string"},"fresh":{"type":"boolean","example":true,"uniqueKey":"data.fresh","typeLabel":"boolean"},"configHash":{"type":"string","description":"API-config commitment echoed from the node round (currently equal to `sourceId`).","uniqueKey":"data.configHash","typeLabel":"string"},"aggregation":{"type":"object","description":"Echo of the request's median-tolerance policy; present only in tolerance mode.","properties":{"mode":{"type":"string","enum":["tolerance"],"example":"tolerance","uniqueKey":"data.aggregation.mode","typeLabel":"enum\u003cstring>"},"rule":{"type":"string","enum":["median"],"example":"median","uniqueKey":"data.aggregation.rule","typeLabel":"enum\u003cstring>"},"maxDeviationBps":{"type":"integer","description":"Largest allowed deviation from the lower median, in basis points.","example":50,"uniqueKey":"data.aggregation.maxDeviationBps","typeLabel":"integer"},"maxAgeMs":{"type":"integer","minimum":1,"description":"Largest allowed age of an observation, in milliseconds. Must be greater than 0.","example":2000,"uniqueKey":"data.aggregation.maxAgeMs","typeLabel":"integer"},"numeric":{"type":"object","description":"How observed decimals become the signed integer.","properties":{"type":{"type":"string","enum":["int256"],"example":"int256","uniqueKey":"data.aggregation.numeric.type","typeLabel":"enum\u003cstring>"},"decimals":{"type":"integer","description":"The signed value is scaled by `10^decimals`.","example":8,"uniqueKey":"data.aggregation.numeric.decimals","typeLabel":"integer"}},"uniqueKey":"data.aggregation.numeric","typeLabel":"object"}},"uniqueKey":"data.aggregation","typeLabel":"object"}},"uniqueKey":"data","typeLabel":"object"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"status":"completed","data":{"attestation":{"payload":{"value":"\u003cstring>","sourceId":"\u003cstring>","registryVersion":42,"signaturesRequired":3,"timestamp":1700100000000},"signature":{"signature":"\u003cstring>","commitment":"\u003cstring>","signersBitmap":"\u003cstring>"}},"value":"42150125000000","fresh":true,"configHash":"\u003cstring>","aggregation":{"mode":"tolerance","rule":"median","maxDeviationBps":50,"maxAgeMs":2000,"numeric":{"type":"int256","decimals":8}}}}}},"exampleType":"generated"}},"exampleType":"generated"},"451e786e-b51c-4e6c-bc84-2cc27c5013e9":{"description":"Validation failure, stale `registryVersion`, or both a session token and `authSig` / `authTimestamp` sent","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Human-readable error message.","example":"validation failed","uniqueKey":"error","typeLabel":"string"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"error":"validation failed"}}},"exampleType":"generated"}},"exampleType":"generated"},"0bf86a1c-8d2e-48b8-9293-841fe496b843":{"description":"Missing or invalid RequestAuth signature, `authTimestamp` outside the freshness window, or an unknown, expired or revoked session token","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Human-readable error message.","example":"validation failed","uniqueKey":"error","typeLabel":"string"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"error":"validation failed"}}},"exampleType":"generated"}},"exampleType":"generated"},"b48d3808-7d2b-4598-ac01-e06f32425e7e":{"description":"The API source is paywalled. `accepts` is empty (the round is covered by the subscription) and `extensions.upstream` carries the quote. Nothing is reserved.","headers":{"PAYMENT-REQUIRED":{"description":"Base64 x402 v2 envelope; `extensions.upstream` carries the paid-source quote","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"object","description":"x402 v2 payment requirements, returned with `402` and base64-encoded in the `PAYMENT-REQUIRED` header.","properties":{"x402Version":{"type":"integer","description":"x402 protocol version.","example":2,"uniqueKey":"x402Version","typeLabel":"integer"},"error":{"type":"string","description":"Why payment is required or was rejected.","uniqueKey":"error","typeLabel":"string"},"resource":{"type":"object","properties":{"url":{"type":"string","description":"Absolute URL of the request.","example":"https://gateway.molpha.io/v1/x402/execute","uniqueKey":"resource.url","typeLabel":"string"},"description":{"type":"string","example":"Molpha oracle round","uniqueKey":"resource.description","typeLabel":"string"},"mimeType":{"type":"string","example":"application/json","uniqueKey":"resource.mimeType","typeLabel":"string"}},"uniqueKey":"resource","typeLabel":"object"},"accepts":{"type":"array","description":"Accepted Molpha payment options. Empty on `POST /v1/round/execute`, where only the API source requires payment.","items":{"type":"object","description":"One accepted x402 v2 payment option. The payment must match it exactly.","properties":{"scheme":{"type":"string","description":"Payment scheme.","example":"exact","uniqueKey":"accepts.items.[INDEX].scheme","typeLabel":"string"},"network":{"type":"string","description":"Solana CAIP-2 network identifier.","example":"solana:EtWTRABZaYq6iMfeYKouRu166VU2xqa1","uniqueKey":"accepts.items.[INDEX].network","typeLabel":"string"},"amount":{"type":"string","description":"Round price in USDC atomic units (decimal string): `x402_round_base + (signatures_required + registry.redundancy_buffer) * reward_per_signature`.","example":"1030","uniqueKey":"accepts.items.[INDEX].amount","typeLabel":"string"},"asset":{"type":"string","description":"USDC mint address from the on-chain `ProtocolConfig`.","uniqueKey":"accepts.items.[INDEX].asset","typeLabel":"string"},"payTo":{"type":"string","description":"Protocol treasury owner, the `ProtocolConfig` PDA. Never the gateway.","uniqueKey":"accepts.items.[INDEX].payTo","typeLabel":"string"},"maxTimeoutSeconds":{"type":"integer","description":"Suggested timeout for completing the payment.","example":60,"uniqueKey":"accepts.items.[INDEX].maxTimeoutSeconds","typeLabel":"integer"},"extra":{"type":"object","description":"Facilitator and request binding fields: `feePayer` (the facilitator's fee payer) and `memo` (hex `MOLPHA_X402_REQUEST_V1` commitment to program, gateway, source, quorum and registry version).","additionalProperties":{"type":"string","uniqueKey":"accepts.items.[INDEX].extra.additionalProperties","typeLabel":"string"},"uniqueKey":"accepts.items.[INDEX].extra","typeLabel":"object"}},"uniqueKey":"accepts.items.[INDEX]","typeLabel":"object"},"uniqueKey":"accepts","typeLabel":"object[]"},"extensions":{"type":"object","description":"Non-Molpha payment terms carried beside `accepts`.","properties":{"upstream":{"type":"object","description":"Quote for a paywalled API source. The caller pays the source directly, one authorization per eligible node.","properties":{"provider":{"type":"string","description":"ID of the integrated provider whose x402 host the source is on. Present only for such a source.","uniqueKey":"extensions.upstream.provider","typeLabel":"string"},"resource":{"type":"string","description":"The source URL.","uniqueKey":"extensions.upstream.resource","typeLabel":"string"},"signaturesRequired":{"type":"integer","uniqueKey":"extensions.upstream.signaturesRequired","typeLabel":"integer"},"redundancyBuffer":{"type":"integer","uniqueKey":"extensions.upstream.redundancyBuffer","typeLabel":"integer"},"nodeCount":{"type":"integer","uniqueKey":"extensions.upstream.nodeCount","typeLabel":"integer"},"eligibleSetSize":{"type":"integer","description":"Number of source authorizations to sign.","uniqueKey":"extensions.upstream.eligibleSetSize","typeLabel":"integer"},"supportedX402Versions":{"type":"array","items":{"type":"integer","uniqueKey":"extensions.upstream.supportedX402Versions.items.[INDEX]","typeLabel":"integer"},"uniqueKey":"extensions.upstream.supportedX402Versions","typeLabel":"integer[]"},"error":{"type":"string","description":"The source's own response when it was paywalled without being declared.","uniqueKey":"extensions.upstream.error","typeLabel":"string"}},"uniqueKey":"extensions.upstream","typeLabel":"object"}},"uniqueKey":"extensions","typeLabel":"object"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"x402Version":2,"error":"\u003cstring>","resource":{"url":"https://gateway.molpha.io/v1/x402/execute","description":"Molpha oracle round","mimeType":"application/json"},"accepts":[{"scheme":"exact","network":"solana:EtWTRABZaYq6iMfeYKouRu166VU2xqa1","amount":"1030","asset":"\u003cstring>","payTo":"\u003cstring>","maxTimeoutSeconds":60,"extra":{}}],"extensions":{"upstream":{"provider":"\u003cstring>","resource":"\u003cstring>","signaturesRequired":123,"redundancyBuffer":123,"nodeCount":123,"eligibleSetSize":123,"supportedX402Versions":[123],"error":"\u003cstring>"}}}}},"exampleType":"generated"}},"exampleType":"generated"},"0e4a359d-1933-4abf-93a2-ec6c6dfa727e":{"description":"Subscription inactive, delegate not authorized, requested quorum above the subscription's `max_signers`, or the round quota for the current term exhausted","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Human-readable error message.","example":"validation failed","uniqueKey":"error","typeLabel":"string"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"error":"validation failed"}}},"exampleType":"generated"}},"exampleType":"generated"},"c63d68bc-e41f-48da-b085-62ea43d95fff":{"description":"Duplicate round identity (this consumer already has a round for this source and quorum in the same 100 ms tick). Nothing was reserved or dispatched. Retry after one tick. No `Retry-After` header.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Human-readable error message.","example":"validation failed","uniqueKey":"error","typeLabel":"string"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"error":"validation failed"}}},"exampleType":"generated"}},"exampleType":"generated"},"3478dc2e-2fbf-40a6-a4ce-c855e60fde1c":{"description":"This consumer exceeded the gateway's per-consumer request rate. Retry after the `Retry-After` header.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Human-readable error message.","example":"validation failed","uniqueKey":"error","typeLabel":"string"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"error":"validation failed"}}},"exampleType":"generated"}},"exampleType":"generated"},"1c4e3428-8818-4dfd-92ab-1df4cf951208":{"description":"Internal server error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Human-readable error message.","example":"validation failed","uniqueKey":"error","typeLabel":"string"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"error":"validation failed"}}},"exampleType":"generated"}},"exampleType":"generated"},"d00cc745-5d37-4742-9d1f-e752484693f0":{"description":"Gateway at its concurrency limit (with `Retry-After`; nothing reserved or spent), too few nodes accepting the round, node round timeout or upstream failure, a transient chain-read or storage failure (with `Retry-After`), or the gateway's sponsored provider access at its call limit","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Human-readable error message.","example":"validation failed","uniqueKey":"error","typeLabel":"string"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"error":"validation failed"}}},"exampleType":"generated"}},"exampleType":"generated"}},"security":{},"servers":{"769641aa-5b99-4072-b9e9-117773357097":{"url":"https://gateway.molpha.io","description":"Devnet (SDK default)"}}},"originalFileLocation":"gateway-openapi.yaml"},"subdomain":"molpha","siteName":"Molpha","title":"Execute a subscription round - Molpha","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-08-06T07:15:49.727Z","originalFileLocation":"gateways/api/round-execute.mdx"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"system\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"description\" content=\"Subscription-backed signing round for feed owners and delegates.\">\u003cmeta data-mint-head name=\"application-name\" content=\"Molpha\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/molpha/zla0u27HDk3WRPXS/_generated/favicon/android-chrome-192x192.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"/mintlify-assets/_mintlify/favicons/molpha/zla0u27HDk3WRPXS/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/molpha/zla0u27HDk3WRPXS/_generated/favicon/favicon-16x16.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/molpha/zla0u27HDk3WRPXS/_generated/favicon/favicon-32x32.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/molpha/zla0u27HDk3WRPXS/_generated/favicon/favicon.ico\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/molpha/zla0u27HDk3WRPXS/_generated/favicon-dark/android-chrome-192x192.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/molpha/zla0u27HDk3WRPXS/_generated/favicon-dark/favicon-16x16.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/molpha/zla0u27HDk3WRPXS/_generated/favicon-dark/favicon-32x32.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/molpha/zla0u27HDk3WRPXS/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Execute a subscription round - Molpha\">\u003cmeta data-mint-head property=\"og:description\" content=\"Subscription-backed signing round for feed owners and delegates.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Molpha Docs\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.molpha.io/gateways/api/round-execute\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://molpha.mintlify.app/_mintlify/api/og/v2?division=Rounds\u0026amp;title=Execute+a+subscription+round\u0026amp;description=Subscription-backed+signing+round+for+feed+owners+and+delegates.\u0026amp;theme=4815623102ad832d176dada3\u0026amp;signature=5007fbe13b2edb46921f6d297c72f98ecba5cc4e05e71ecea40aea827d2fc6d4\">\u003cmeta data-mint-head property=\"og:image:width\" content=\"1200\">\u003cmeta data-mint-head property=\"og:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"twitter:card\" content=\"summary_large_image\">\u003cmeta data-mint-head name=\"twitter:title\" content=\"Execute a subscription round - Molpha\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Subscription-backed signing round for feed owners and delegates.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://molpha.mintlify.app/_mintlify/api/og/v2?division=Rounds\u0026amp;title=Execute+a+subscription+round\u0026amp;description=Subscription-backed+signing+round+for+feed+owners+and+delegates.\u0026amp;theme=4815623102ad832d176dada3\u0026amp;signature=5007fbe13b2edb46921f6d297c72f98ecba5cc4e05e71ecea40aea827d2fc6d4\">\u003cmeta data-mint-head name=\"twitter:image:width\" content=\"1200\">\u003cmeta data-mint-head name=\"twitter:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"/mintlify-assets/_mintlify/favicons/molpha/zla0u27HDk3WRPXS/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Molpha\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#9a641f\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.molpha.io/gateways/api/round-execute\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/gateways/api/round-execute.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://molpha.io/#organization\",\"name\":\"Molpha\",\"url\":\"https://molpha.io\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://docs.molpha.io/logo/logo.svg\"},\"sameAs\":[\"https://x.com/molpha_oracle\",\"https://discord.molpha.io\",\"https://github.com/molpha\",\"https://www.linkedin.com/company/molpha-oracle\"]},{\"@type\":\"WebSite\",\"@id\":\"https://docs.molpha.io#website\",\"name\":\"Molpha\",\"url\":\"https://docs.molpha.io\",\"publisher\":{\"@id\":\"https://molpha.io/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.molpha.io/gateways/api/round-execute#webpage\",\"url\":\"https://docs.molpha.io/gateways/api/round-execute\",\"name\":\"Execute a subscription round\",\"description\":\"Subscription-backed signing round for feed owners and delegates.\",\"dateModified\":\"2026-08-06T07:15:49.727Z\",\"isPartOf\":{\"@id\":\"https://docs.molpha.io#website\"},\"breadcrumb\":{\"@id\":\"https://docs.molpha.io/gateways/api/round-execute#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.molpha.io/gateways/api/round-execute#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Molpha\",\"item\":\"https://docs.molpha.io\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Execute a subscription round\",\"item\":\"https://docs.molpha.io/gateways/api/round-execute\"}]},{\"@type\":[\"TechArticle\",\"APIReference\"],\"@id\":\"https://docs.molpha.io/gateways/api/round-execute#apireference\",\"headline\":\"Execute a subscription round\",\"name\":\"Execute a subscription round\",\"description\":\"Subscription-backed signing round for feed owners and delegates.\",\"url\":\"https://docs.molpha.io/gateways/api/round-execute\",\"mainEntityOfPage\":{\"@id\":\"https://docs.molpha.io/gateways/api/round-execute#webpage\"},\"dateModified\":\"2026-08-06T07:15:49.727Z\",\"publisher\":{\"@id\":\"https://molpha.io/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.molpha.io#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Molpha\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"Molpha","nav":{"global":null,"tabs":[{"tab":"Documentation","pages":[{"title":"Documentation","href":""}]},{"tab":"API reference","groups":[{"group":"Gateway API","pages":[{"title":"Gateway API","sidebarTitle":"Overview","description":"The HTTP API that admits round requests, takes payment, dispatches rounds to nodes and returns attestations.","href":"/gateways/overview"}]},{"group":"Rounds","pages":[{"title":"Execute a subscription round","sidebarTitle":"Round execute","openapi":"gateway-openapi.yaml POST /v1/round/execute","href":"/gateways/api/round-execute"},{"title":"Execute an x402 pay-per-request round","sidebarTitle":"x402 execute","openapi":"gateway-openapi.yaml POST /v1/x402/execute","description":"x402 v2 exact Solana payment to the protocol treasury; no subscription required.","href":"/gateways/api/x402-execute"},{"title":"x402 payment destination and quote","sidebarTitle":"x402 status","openapi":"gateway-openapi.yaml GET /v1/x402/status","href":"/gateways/api/x402-status"}]},{"group":"Sign-in sessions","pages":[{"title":"Get a sign-in challenge","sidebarTitle":"Session challenge","openapi":"gateway-openapi.yaml GET /v1/session/challenge","href":"/gateways/api/session-challenge"},{"title":"Sign in","sidebarTitle":"Session sign-in","openapi":"gateway-openapi.yaml POST /v1/session","href":"/gateways/api/session-create"},{"title":"Sign out","sidebarTitle":"Session sign-out","openapi":"gateway-openapi.yaml DELETE /v1/session","href":"/gateways/api/session-delete"}]},{"group":"Network","pages":[{"title":"Get gateway identity","sidebarTitle":"Info","openapi":"gateway-openapi.yaml GET /v1/info","href":"/gateways/api/info"},{"title":"Get on-chain nodes","sidebarTitle":"Nodes","openapi":"gateway-openapi.yaml GET /v1/nodes","href":"/gateways/api/nodes"},{"title":"List integrated providers","sidebarTitle":"Providers","openapi":"gateway-openapi.yaml GET /v1/providers","href":"/gateways/api/providers-list"},{"title":"Get an integrated provider","sidebarTitle":"Provider","openapi":"gateway-openapi.yaml GET /v1/providers/{providerId}","href":"/gateways/api/providers-get"},{"title":"Health check","sidebarTitle":"Health","openapi":"gateway-openapi.yaml GET /health","href":"/gateways/api/health"}]}]},{"tab":"SDK","pages":[{"title":"SDK","href":"/sdk/overview"}]}]},"basePath":"","title":"Execute a subscription round - Molpha","buildId":"dpl_9VVk5y1P8k1ATeJguVngy9Q3cmbD","deploymentId":"dpl_9VVk5y1P8k1ATeJguVngy9Q3cmbD","dynamics":["c2aa737661","2b790eda92","b0f84f53ff","a9bb46feb3"],"chunks":["OpenApiReferenceProvider-DX1Meug0.js","utils-B_OMIQVC.js","cloneDeep-izs3Hzxb.js","_Uint8Array-BVIqJ90l.js","isObjectLike-C8vmzPEN.js","isArray-Dcu1dQ5t.js","utils-ChxhRPMa.js","toString-BX-iyh8G.js","isSymbol-CSH9U2Gm.js","addUniqueKeysToSchema-CuKvD8Iv.js","snippetPresets-C5d7p2hp.js","style-to-object-BY3JEAdk.js","v4-DIgz8zy6.js","ApiExamples-CfHcE8m4.js","isEqual-BfaiBbcl.js","usePlaygroundInputsStore-C1zZV314.js","shallow-CmQhqCJn.js","getApiPlaygroundDisplay-YRo9s1O7.js","CodeSnippet-RN1MTdfk.js","CodeSnippets-DKLPHxJA.js","Page-BAvA99GL.js","getPastedJson-bz0M41mU.js","icon-CsmhpPrv.js","MethodPill-CNGsVE77.js","DuplicateIcon-DilfU_Z2.js","createIcon-BdsYzQck.js","DynamicMarkdown-CbqEDjbV.js","SectionHeading-O6hXpFCN.js","axios-vUo_bRtp.js","Markdown-nKm-uidQ.js","clsx-ClVdStUn.js","lib-DuNMoZ05.js","lib-B8HbPgcC.js","html-void-elements-mCSPHezU.js","dist-CIQkMg3R.js","katex-YMM-FMeD.js","marked.esm-CZWythHk.js","AssistantPageLink-ImrFS4Fy.js"]}