curl --request POST --url https://relay.mainnet.kuru.io/relay \
--header "Authorization: Bearer $KURU_RELAY_JWT" \
--header 'Content-Type: application/json' \
--data '{
"requestId":"018f5ef2-88a1-7b41-a826-4b679010f87f",
"method":"account_core.authorize_account_signer_by_sig",
"wallet":"0x1111111111111111111111111111111111111111",
"payload":{"account":"0x3333333333333333333333333333333333333333","authorizer":"0x3333333333333333333333333333333333333333","signer":"0x1111111111111111111111111111111111111111","permissions":"1","expiry":"1722592000","nonce":"0","deadline":"1720000030","signature":"0x..."},
"authorization7702":{"authority":"0x1111111111111111111111111111111111111111","chainId":"143","delegate":"0xa478b5a38aabDf8b31f0ec7443a274162214Cd18","nonce":"7","yParity":"0","r":"0x...32 bytes...","s":"0x...32 bytes..."}
}'
{
"requestId": "018f5ef2-88a1-7b41-a826-4b679010f87f",
"status": "BROADCAST",
"txHash": "0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
"sponsorAddress": "0xbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb",
"sponsorNonce": "42",
"transactionType": "SET_CODE"
}
REST methods
Authorize account signer
Grant a secondary EOA AccountCore permission and optionally install its EIP-7702 delegation.
POST
/
relay
curl --request POST --url https://relay.mainnet.kuru.io/relay \
--header "Authorization: Bearer $KURU_RELAY_JWT" \
--header 'Content-Type: application/json' \
--data '{
"requestId":"018f5ef2-88a1-7b41-a826-4b679010f87f",
"method":"account_core.authorize_account_signer_by_sig",
"wallet":"0x1111111111111111111111111111111111111111",
"payload":{"account":"0x3333333333333333333333333333333333333333","authorizer":"0x3333333333333333333333333333333333333333","signer":"0x1111111111111111111111111111111111111111","permissions":"1","expiry":"1722592000","nonce":"0","deadline":"1720000030","signature":"0x..."},
"authorization7702":{"authority":"0x1111111111111111111111111111111111111111","chainId":"143","delegate":"0xa478b5a38aabDf8b31f0ec7443a274162214Cd18","nonce":"7","yParity":"0","r":"0x...32 bytes...","s":"0x...32 bytes..."}
}'
{
"requestId": "018f5ef2-88a1-7b41-a826-4b679010f87f",
"status": "BROADCAST",
"txHash": "0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
"sponsorAddress": "0xbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb",
"sponsorNonce": "42",
"transactionType": "SET_CODE"
}
Submits
After broadcast, require a successful receipt, verify the EIP-7702 delegation indicator, verify
account_core.authorize_account_signer_by_sig. The JWT wallet, request wallet, payload signer, and optional EIP-7702 authority must be identical.
The request below is a signing template, not a broadcast-ready transaction. Replace the wallet, account, nonces, expiry, deadline, and signatures with values generated for your selected network.
string
required
New lowercase UUIDv7 used for correlation. It is not durable idempotency.
string
default:"account_core.authorize_account_signer_by_sig"
required
Must be
account_core.authorize_account_signer_by_sig.string
required
Secondary trading EOA, matching the bearer token’s wallet claim.
object
required
AccountCore authorization signed by the account owner or a live administrator.
Required fields:
account, authorizer, signer, permissions, expiry, nonce, deadline, and signature.object | null
Optional EIP-7702 tuple containing
authority, chainId, delegate, nonce, yParity, r, and s. Use null when already delegated.curl --request POST --url https://relay.mainnet.kuru.io/relay \
--header "Authorization: Bearer $KURU_RELAY_JWT" \
--header 'Content-Type: application/json' \
--data '{
"requestId":"018f5ef2-88a1-7b41-a826-4b679010f87f",
"method":"account_core.authorize_account_signer_by_sig",
"wallet":"0x1111111111111111111111111111111111111111",
"payload":{"account":"0x3333333333333333333333333333333333333333","authorizer":"0x3333333333333333333333333333333333333333","signer":"0x1111111111111111111111111111111111111111","permissions":"1","expiry":"1722592000","nonce":"0","deadline":"1720000030","signature":"0x..."},
"authorization7702":{"authority":"0x1111111111111111111111111111111111111111","chainId":"143","delegate":"0xa478b5a38aabDf8b31f0ec7443a274162214Cd18","nonce":"7","yParity":"0","r":"0x...32 bytes...","s":"0x...32 bytes..."}
}'
{
"requestId": "018f5ef2-88a1-7b41-a826-4b679010f87f",
"status": "BROADCAST",
"txHash": "0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
"sponsorAddress": "0xbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb",
"sponsorNonce": "42",
"transactionType": "SET_CODE"
}
AccountSignerAuthorized, and read the new AccountCore authorization nonce.