/account/delegation-statusEIP-7702 delegation statusWhether an owner EOA has adopted the UGTP EIP-7702 delegate, network by network, read from chain state alone — no operation is built and nothing is written. There is no networkId parameter by design: an authorization is signed per chain, so the cross-network picture is the answer.
- activated — the EOA carries the delegation designator pointing at the UGTP delegate, the address echoed in delegate.
- not_activated — a bare EOA, so a first operation still needs a client-signed authorization.
- foreign_delegate — delegated to some other contract, which is named in delegatedTo. It is the only status that carries that field.
- contract_code — the address has ordinary bytecode and is not an EOA at all.
- unsupported — that chain has no chain-level EIP-7702 (Avalanche C-Chain today), so no delegation can exist there.
- unavailable — that network's read failed. Deliberately never collapsed into not_activated, which would make an activated account look like it needs an authorization.
- Failures are contained per network: one unreachable network degrades its own entry only, never the whole response. Every network the engine serves is reported, keyed by chain id.
- A malformed address is rejected with 400. 429 when the rate limit is exceeded; check the Retry-After response header.
Authentication: X-API-Key
Input — query and path parameters
addressstring required- Owner EOA address (0x-prefixed 20 bytes)
Output — example response (200)
{
"address": "0x9b5fcd6f647a14ebf0f88b1c3e5a3d34b951fc6f",
"delegate": "0xa46cc63eBF4Bd77888AA327837d20b23A63a56B5",
"networks": {
"1": {
"status": "not_activated"
},
"56": {
"status": "not_activated"
},
"137": {
"status": "activated"
},
"8453": {
"status": "not_activated"
},
"42161": {
"status": "activated"
},
"43114": {
"status": "unsupported"
},
"11155111": {
"status": "activated"
}
}
}Output — every status this endpoint answers with
| Status | When |
|---|---|
200 | { address, delegate, networks } |
400 | Invalid request body or query parameters |
401 | Missing or invalid credentials |
429 | Rate limit exceeded — retry after the number of seconds in the `Retry-After` response header |
500 | Internal server error |