---
title: "Return the EIP-7702 authorization the owner signs"
method: POST
path: "/wallets/{address}/delegation:prepare"
tags: ["Wallets"]
---

# Return the EIP-7702 authorization the owner signs

`POST /wallets/{address}/delegation:prepare`

## Request

- Base URL: `https://api.avaprotocol.org/api/v1`
- URL: `https://api.avaprotocol.org/api/v1/wallets/{address}/delegation:prepare`
- Auth: HTTP bearer

AVS-side consent, first of two approvals (delegate, then session grant).
Chain-bound: `chainId=0` is refused. First production chains are Sepolia
and Base, and the SMA-7702 pin must be configured. Partner assertions
are refused. Does not broadcast and does not install session hooks.

## Request body

- object
  - `chainId` integer: Numeric chain ID (e.g. 11155111 for Sepolia, 8453 for Base). On chain-aware trigger/node configs this is required and must be a configured chain; on query/filter params it is optional.

## Response `200`

Authorization payload to sign.

- PreparedDelegation: EIP-7702 authorization the owner signs. `digest` is `SetCodeAuthorization.SigHash` (0x05 ‖ rlp([chainId, delegate, nonce])). `chainId` is never 0. Aggregator-broadcast submit uses this nonce as the EOA's nonce (the EOA is the authority, not the type-4 sender).
  - `chainId` integer, required: Numeric chain ID (e.g. 11155111 for Sepolia, 8453 for Base). On chain-aware trigger/node configs this is required and must be a configured chain; on query/filter params it is optional.
  - `delegate` string, required: Lowercase or checksummed hex EOA / contract address.
  - `nonce` integer, required: Authority (EOA) nonce for the 7702 authorization.
  - `digest` string, required: Arbitrary-length hex-encoded byte string.

## Other responses

- `400`: Request validation failed.
- `401`: Missing or invalid bearer token.
- `403`: Authenticated but not permitted.

## Changes

- **2026-11-04** `6b505ebcf3f7`: 12 info
  - added the optional property `availableWei` to the response with the `400` status
  - added the optional property `availableWei` to the response with the `401` status
  - added the optional property `availableWei` to the response with the `403` status
  - added the optional property `neededWei` to the response with the `400` status
  - …8 more
- **2026-10-28** `4ebf07931311`: 9 info
  - added the optional property `acknowledgedDelegate` to the response with the `400` status
  - added the optional property `acknowledgedDelegate` to the response with the `401` status
  - added the optional property `acknowledgedDelegate` to the response with the `403` status
  - added the optional property `delegate` to the response with the `400` status
  - …5 more
- **2026-10-15** `f6e53eeef5b3`: 3 info
  - added the optional property `required/nativeGasWei` to the response with the `400` status
  - added the optional property `required/nativeGasWei` to the response with the `401` status
  - added the optional property `required/nativeGasWei` to the response with the `403` status
- …earlier changes not shown

[Operation history](https://skmtc.dev/avaprotocol/apis/ava-protocol-avs-api/changes/wallets/:address/delegation:prepare/post.md)

---

[API](https://skmtc.dev/avaprotocol/apis/ava-protocol-avs-api.md) - [All operations](https://skmtc.dev/avaprotocol/apis/ava-protocol-avs-api/llms.txt) - [OpenAPI document](https://skmtc.dev/avaprotocol/apis/ava-protocol-avs-api/revisions/6b505ebcf3f7?raw)
