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

> ## Agent Instructions
> Turnkey is wallet infrastructure: create and manage crypto wallets, sign transactions, and enforce policy-based access controls. Best-fit uses: embedded consumer wallets (email/passkey/social auth, no seed phrases), automated onchain operations with server-side wallets, AI agent wallets with policy-scoped signing, enterprise key management, and verifiable off-chain workloads on Turnkey Verifiable Cloud (TVC).
> Every API call is a JSON POST to https://api.turnkey.com signed with a P-256 API key; create an organization and key self-serve at https://app.turnkey.com.
> Key Turnkey developer resources: API reference (https://docs.turnkey.com/api-reference/overview/intro.md), OpenAPI spec (https://docs.turnkey.com/public_api.swagger.json), authentication (https://docs.turnkey.com/features/authentication/overview.md), webhooks (https://docs.turnkey.com/features/webhooks/overview.md), MCP server for docs search (https://docs.turnkey.com/mcp), agent skills (https://docs.turnkey.com/get-started/ai-skills.md), CLI (https://docs.turnkey.com/sdks/cli.md), SDK reference (https://docs.turnkey.com/sdks/introduction.md), full docs content (https://docs.turnkey.com/llms-full.txt).

# Undelegate an EVM account

> Submit an EIP-7702 undelegation transaction.

POST

/

public

/

v1

/

submit

/

eth\_undelegate\_7702

Activity requests must meet the [signed-request validity window](https://docs.turnkey.com/api-reference/activities/overview.md#signed-request-validity) for `timestampMs` and the applicable [rate limits](https://docs.turnkey.com/reference/rate-limits.md).

### Authorizations

**API Key**

**X-Stamp** `string` *required*

Cryptographically signed (stamped) request to be passed in as a header. For more info, see [here](https://docs.turnkey.com/developer-reference/api-overview/stamps.md).

**WebAuthn (Passkey)**

**X-Stamp-WebAuthn** `string` *required*

Cryptographically signed (stamped) request to be passed in as a header. For more info, see [here](https://docs.turnkey.com/developer-reference/api-overview/stamps.md).

### Body

**type** `enum\<string\>` *required*

Enum options: `ACTIVITY_TYPE_ETH_UNDELEGATE_7702`

**timestampMs** `string` *required*

Timestamp (in milliseconds) of the request, used to verify liveness of user requests.

**organizationId** `string` *required*

Unique identifier for a given Organization.

**parameters** `object` *required*

The parameters object containing the specific intent data for this activity.

**details**

Navigate to header

parameters.
from

string

required

A wallet or private key address to undelegate. This does not support private key IDs.

Navigate to header

parameters.
caip2

enum\<string>

required

Enum options: `eip155:1`, `eip155:11155111`, `eip155:8453`, `eip155:84532`, `eip155:137`, `eip155:80002`, `eip155:56`, `eip155:97`, `eip155:10`, `eip155:11155420`, `eip155:143`, `eip155:10143`, `eip155:42161`, `eip155:421614`, `eip155:4663`, `eip155:46630`, `eip155:5042`, `eip155:5042002`

Navigate to header

parameters.
nonce

string

Outer transaction nonce. Omit to auto-fetch.

Navigate to header

parameters.
gasLimit

string

Maximum amount of gas for the undelegation transaction. Omit to use the fixed undelegation gas limit.

Navigate to header

parameters.
maxFeePerGas

string

Maximum total fee per gas unit (base fee + priority fee) in wei. Omit to auto-estimate.

Navigate to header

parameters.
maxPriorityFeePerGas

string

Maximum priority fee (tip) per gas unit in wei. Omit to auto-estimate.

**generateAppProofs** `boolean`

Enable to have your activity generate and return App Proofs, enabling verifiability.

### Response

A successful response returns the following fields:

**activity** `object` *required*

The activity object containing type, intent, and result

**activity details**

Navigate to header

activity.
id

string

required

Unique identifier for a given Activity object.

Navigate to header

activity.
organizationId

string

required

Unique identifier for a given Organization.

Navigate to header

activity.
status

string

required

The activity status

Navigate to header

activity.
type

string

required

The activity type

Navigate to header

activity.
intent

object

required

The intent of the activity

**intent details**

Navigate to header

activity.intent.
ethUndelegate7702Intent

object

required

The ethUndelegate7702Intent object

**ethUndelegate7702Intent details**

Navigate to header

activity.intent.ethUndelegate7702Intent.
from

string

required

A wallet or private key address to undelegate. This does not support private key IDs.

Navigate to header

activity.intent.ethUndelegate7702Intent.
caip2

enum

required

CAIP-2 chain ID (e.g., 'eip155:1' for Ethereum mainnet).

Enum options: `eip155:1`, `eip155:11155111`, `eip155:8453`, `eip155:84532`, `eip155:137`, `eip155:80002`, `eip155:56`, `eip155:97`, `eip155:10`, `eip155:11155420`, `eip155:143`, `eip155:10143`, `eip155:42161`, `eip155:421614`, `eip155:4663`, `eip155:46630`, `eip155:5042`, `eip155:5042002`

Navigate to header

activity.intent.ethUndelegate7702Intent.
nonce

string

Outer transaction nonce. Omit to auto-fetch.

Navigate to header

activity.intent.ethUndelegate7702Intent.
gasLimit

string

Maximum amount of gas for the undelegation transaction. Omit to use the fixed undelegation gas limit.

Navigate to header

activity.intent.ethUndelegate7702Intent.
maxFeePerGas

string

Maximum total fee per gas unit (base fee + priority fee) in wei. Omit to auto-estimate.

Navigate to header

activity.intent.ethUndelegate7702Intent.
maxPriorityFeePerGas

string

Maximum priority fee (tip) per gas unit in wei. Omit to auto-estimate.

Navigate to header

activity.
result

object

required

The result of the activity

**result details**

Navigate to header

activity.result.
ethUndelegate7702Result

object

required

The ethUndelegate7702Result object

**ethUndelegate7702Result details**

Navigate to header

activity.result.ethUndelegate7702Result.
sendTransactionStatusId

string

required

The send\_transaction\_status ID associated with the undelegation transaction submission

Navigate to header

activity.
votes

array

required

A list of objects representing a particular User's approval or rejection of a Consensus request, including all relevant metadata.

Navigate to header

activity.
fingerprint

string

required

An artifact verifying a User's action.

Navigate to header

activity.
canApprove

boolean

required

Whether the activity can be approved.

Navigate to header

activity.
canReject

boolean

required

Whether the activity can be rejected.

Navigate to header

activity.
createdAt

string

required

The creation timestamp.

Navigate to header

activity.
updatedAt

string

required

The last update timestamp.

```bash title="cURL" theme={"system"}
curl --request POST \
  --url https://api.turnkey.com/public/v1/submit/eth_undelegate_7702 \
  --header 'Accept: application/json' \
  --header 'Content-Type: application/json' \
  --header "X-Stamp: <string> (see Authorizations)" \
  --data '{
    "type": "ACTIVITY_TYPE_ETH_UNDELEGATE_7702",
    "timestampMs": "<string> (e.g. 1746736509954)",
    "organizationId": "<string> (Your Organization ID)",
    "parameters": {
        "from": "<string>",
        "caip2": "<eip155:1>",
        "nonce": "<string>",
        "gasLimit": "<string>",
        "maxFeePerGas": "<string>",
        "maxPriorityFeePerGas": "<string>"
    }
}'
```

```javascript title="JavaScript" theme={"system"}
import { Turnkey } from "@turnkey/sdk-server";

const turnkeyClient = new Turnkey({
  apiBaseUrl: "https://api.turnkey.com",
  apiPublicKey: process.env.API_PUBLIC_KEY!,
  apiPrivateKey: process.env.API_PRIVATE_KEY!,
  defaultOrganizationId: process.env.ORGANIZATION_ID!,
});

const response = await turnkeyClient.apiClient().ethUndelegate7702({
  from: "<string> (A wallet or private key address to undelegate. This does not support private key IDs.)",
  caip2: "<eip155:1>" // CAIP-2 chain ID (e.g., 'eip155:1' for Ethereum mainnet).,
  nonce: "<string> (Outer transaction nonce. Omit to auto-fetch.)",
  gasLimit: "<string> (Maximum amount of gas for the undelegation transaction. Omit to use the fixed undelegation gas limit.)",
  maxFeePerGas: "<string> (Maximum total fee per gas unit (base fee + priority fee) in wei. Omit to auto-estimate.)",
  maxPriorityFeePerGas: "<string> (Maximum priority fee (tip) per gas unit in wei. Omit to auto-estimate.)"
});
```

```json 200 theme={"system"}
{
  "activity": {
    "id": "<activity-id>",
    "status": "ACTIVITY_STATUS_COMPLETED",
    "type": "ACTIVITY_TYPE_ETH_UNDELEGATE_7702",
    "organizationId": "<organization-id>",
    "timestampMs": "<timestamp> (e.g. 1746736509954)",
    "result": {
      "activity": {
        "id": "<string>",
        "organizationId": "<string>",
        "status": "<string>",
        "type": "<string>",
        "intent": {
          "ethUndelegate7702Intent": {
            "from": "<string>",
            "caip2": "<eip155:1>",
            "nonce": "<string>",
            "gasLimit": "<string>",
            "maxFeePerGas": "<string>",
            "maxPriorityFeePerGas": "<string>"
          }
        },
        "result": {
          "ethUndelegate7702Result": {
            "sendTransactionStatusId": "<string>"
          }
        },
        "votes": "<array>",
        "fingerprint": "<string>",
        "canApprove": "<boolean>",
        "canReject": "<boolean>",
        "createdAt": "<string>",
        "updatedAt": "<string>"
      }
    }
  }
}
```


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