Change the payout address. Without signature → SetPayout typed data; with signed body → relayed Staking.setPayoutBySig
const url = 'https://testnet-rpc.necter.network/v1/subscriptions/example/payout';const options = { method: 'POST', headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'}, body: '{"payout_address":"example","payout":"example"}'};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request POST \ --url https://testnet-rpc.necter.network/v1/subscriptions/example/payout \ --header 'Authorization: Bearer <token>' \ --header 'Content-Type: application/json' \ --data '{ "payout_address": "example", "payout": "example" }'Step 1: body {"payout_address": "0x…"} (payout is accepted as an alias; both present must be equal;
or no body and ?payout_address=0x…) → GaslessPayload (action: set_payout,
EIP-712 SetPayout(address owner,bytes32 subscriptionId,address payout,uint256 nonce,uint256 deadline),
domain Necter Staking). payout = the owner, the zero address or null resets the payout to the owner.
Step 2: SignedGasless → 202 TxStatus; the indexer applies PayoutSet and payout_address follows.
Only while the subscription is bonded or unbonding on chain (409 invalid_state otherwise, e.g. while it is
still pending_collateral).
Authorizations
Section titled “Authorizations”Parameters
Section titled “Parameters”Path Parameters
Section titled “Path Parameters”Query Parameters
Section titled “Query Parameters”Lowercase EVM address
Step 1 without a body (alias: payout)
Request Body
Section titled “Request Body”object
object
object
object
object
Example generated
{ "payout_address": "example", "payout": "example"}Responses
Section titled “Responses”Payload to sign
Typed data the owner signs (eth_signTypedData_v4); then POST it back as SignedGasless
object
object
object
object
object
object
Lowercase EVM address
Token base units
Example
{ "action": "bond"}Submitted
Malformed request (bad_request, invalid_field)
object
Stable machine code
object
Example generated
{ "error": "example", "message": "example", "details": {}, "request_id": "example"}Authenticated but not allowed (forbidden, not_owner, not_enrolled, not_verified, scope_missing)
object
Stable machine code
object
Example generated
{ "error": "example", "message": "example", "details": {}, "request_id": "example"}conflict, duplicate, already_exists, invalid_state
object
Stable machine code
object
Example generated
{ "error": "example", "message": "example", "details": {}, "request_id": "example"}Semantically invalid (invalid_manifest, invalid_binding, invalid_evidence, incompatible, insufficient_collateral)
object
Stable machine code
object
Example generated
{ "error": "example", "message": "example", "details": {}, "request_id": "example"}unavailable, no_validators, faucet_empty
object
Stable machine code
object
Example generated
{ "error": "example", "message": "example", "details": {}, "request_id": "example"}