Reputation

Relay Prepare Endpoint

Step 1: what must the rater sign.

Writes nothing on-chain and costs nothing. The reputation chain is resolved the same way as every other rating, which is what keeps a task paid on a chain without a delegate (Avalanche) from producing a facilitator-authored rating: the resolver sends it somewhere it can be authored properly.

post/api/v1/reputation/relay/prepare

Request

  • Base URL: https://api.execution.market
  • URL: https://api.execution.market/api/v1/reputation/relay/prepare
  • Auth: API key in header Signature-Input

Headers

authorizationstring nullable

Bearer <supabase_jwt>

Request body

task_idstring required
directionstring required

publisher_rates_executor | executor_rates_publisher. The role NAMES (buyer/seller vs requester/executor) are resolved from the task.

scoreinteger required
commentstring nullable

Response

Successful Response

digeststring required

The hash the Facilitator verifies against. It ALREADY carries the EIP-191 envelope, so it must be signed as a RAW prehash — running personal_sign over it applies a second envelope and the signature silently fails. Browser wallets cannot sign a raw prehash: use signing_payload instead.

typed_dataobject nullable

EIP-712 typed data, present once this network runs a v4 delegate. PREFER THIS: signTypedData has no envelope to apply twice, which is the failure mode signing_payload exists to work around, and the wallet shows the rater the score, agent and deadline as named fields instead of a hex blob.

signing_payloadstring nullable

SIGN THIS ONE from a browser wallet: personal_sign/signMessage over these 32 bytes lands exactly on digest. Null when we could not rebuild it — never a guess, because a payload that does not verify produces a failure the caller cannot diagnose.

deadlineinteger required
noncestring required
delegatedboolean required

False = first rating on this chain; also send an EIP-7702 authorization on submit, built with account_nonce.

delegatestring nullable
account_nonceinteger nullable
chain_idinteger nullable
networkstring required
rater_rolestring required
ratee_rolestring required
rater_walletstring required
ratee_agent_idinteger required
tag1string required
tag2string required
endpointstring required
feedback_uristring required
feedback_hashstring required
reputation_network_requestedstring nullable

The chain this rating was SUPPOSED to land on: the ratee's explicit choice if they made one, otherwise the task's payment chain. The payment-chain default applies to every network, not just Solana — an arbitrum-paid task with no choice now seals on arbitrum, where before 2026-09-10 it sealed on base.

reputation_network_usedstring nullable

The chain network resolved to — the one the digest is bound to. Sign against this one.

reputation_network_fallback_reasonstring nullable

Why the rating changed chain, or null when it did not: no_identity_on_chain (the ratee holds no ERC-8004 identity there and one could not be minted), chain_not_capable, chain_guard, pref_disabled.

Changes

No recorded changes to this operation across all 1 revision of this API.