---
title: "Broadcast the signed 7702 authorization and persist the EOA runner"
method: POST
path: "/wallets/{address}/delegation:submit"
tags: ["Wallets"]
---

# Broadcast the signed 7702 authorization and persist the EOA runner

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

## Request

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

Reconstructs the authorization, recovers the authority (must be the
path EOA), broadcasts a type-4 tx from the aggregator (the EOA is not
the sender, so the auth nonce is the EOA nonce, not nonce+1), then
asserts K13 (`ef0100`‖delegate + impl hash) — never tx status.
Upserts `kind=eoa_7702` wallet record. Does not install session hooks.

## Request body

- SubmitDelegationRequest
  - `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.
  - `nonce` integer, required
  - `signature` string, required: Arbitrary-length hex-encoded byte string.

## Response `200`

EOA is designated to SMA-7702.

- DelegationStatus
  - `status` 'missing' | 'pending' | 'delegated', required
  - `delegate` string: Lowercase or checksummed hex EOA / contract address.
  - `codeHash` string: Arbitrary-length hex-encoded byte string.
  - `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.

## Other responses

- `202`: Type-4 was broadcast; K13 is not yet visible. Poll GET `/wallets/{address}/delegation` (GET upserts the eoa_7702 row once code matches). Do not resubmit — the EOA nonce has not changed and a second broadcast spends controller gas again.
- `400`: Request validation failed.
- `401`: Missing or invalid bearer token.
- `403`: Authenticated but not permitted.
- `409`: Code at the EOA is not the pinned SMA-7702 designation.

## Changes

- **2026-11-04** `6b505ebcf3f7`: 16 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 `availableWei` to the response with the `409` status
  - …12 more
- **2026-10-28** `4ebf07931311`: 12 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 `acknowledgedDelegate` to the response with the `409` status
  - …8 more
- **2026-10-15** `f6e53eeef5b3`: 4 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
  - added the optional property `required/nativeGasWei` to the response with the `409` status
- …earlier changes not shown

[Operation history](https://skmtc.dev/avaprotocol/apis/ava-protocol-avs-api/changes/wallets/:address/delegation:submit/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)
