> ## Documentation Index
> Fetch the complete documentation index at: https://docs.kuru.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Authorize account signer

> Grant a secondary EOA AccountCore permission and optionally install its EIP-7702 delegation.

Submits `account_core.authorize_account_signer_by_sig`. The JWT wallet, request `wallet`, payload `signer`, and optional EIP-7702 `authority` must be identical.

<Info>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.</Info>

<ParamField body="requestId" type="string" required>
  New lowercase UUIDv7 used for correlation. It is not durable idempotency.
</ParamField>

<ParamField body="method" type="string" required default="account_core.authorize_account_signer_by_sig">
  Must be `account_core.authorize_account_signer_by_sig`.
</ParamField>

<ParamField body="wallet" type="string" required>
  Secondary trading EOA, matching the bearer token's wallet claim.
</ParamField>

<ParamField body="payload" type="object" required>
  AccountCore authorization signed by the account owner or a live administrator.
  Required fields: `account`, `authorizer`, `signer`, `permissions`, `expiry`, `nonce`, `deadline`, and `signature`.
</ParamField>

<ParamField body="authorization7702" type="object | null">
  Optional EIP-7702 tuple containing `authority`, `chainId`, `delegate`, `nonce`, `yParity`, `r`, and `s`. Use `null` when already delegated.
</ParamField>

<RequestExample>
  ```curl cURL theme={null}
  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..."}
    }'
  ```
</RequestExample>

<ResponseExample>
  ```json BROADCAST theme={null}
  {
    "requestId": "018f5ef2-88a1-7b41-a826-4b679010f87f",
    "status": "BROADCAST",
    "txHash": "0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
    "sponsorAddress": "0xbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb",
    "sponsorNonce": "42",
    "transactionType": "SET_CODE"
  }
  ```
</ResponseExample>

After broadcast, require a successful receipt, verify the EIP-7702 delegation indicator, verify `AccountSignerAuthorized`, and read the new AccountCore authorization nonce.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.