Skip to main content
POST
Execute a subscription round

Body

application/json

Round execution request

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.

signaturesRequired
integer
required

Requested quorum: at least protocol min_signers, at most the subscription's max_signers (403 above it) and the current node count.

Example:

3

registryVersion
integer
required

Active on-chain registry version. Must match the current version.

Example:

42

apiConfig
object
required

Off-chain HTTP API configuration. Its canonical hash is the source ID.

subscriptionOwner
string

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"

consumerAuthority
string

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"

authSig
string

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.

authTimestamp
integer

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

encKeyBundle
object

Optional encryption envelope. Send null or omit for plaintext configs.

sourcePayments
string[]

Base64 x402 payloads for a paywalled API source, one per node in the round's eligible set. They pay the source, never Molpha.

x402Source
boolean

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.

status
string
Example:

"completed"

data
object