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

# Edit a session key's off-chain settings

> Updates an existing session key's label, IP allowlist, and/or off-chain scopes for a given wallet; it cannot change on-chain (protocol) scopes, for which you must re-register with private/create_session_key. Editing only the label needs account-info permission, while changing the IP allowlist or off-chain scopes requires admin/owner authorization. Returns the updated session key details.



## OpenAPI

````yaml /openapi.json post /private/edit_session_key
openapi: 3.1.0
info:
  title: Derive v3 API
  version: 0.2.0
  description: JSON-RPC 2.0 methods, served over WebSocket and HTTP POST.
servers:
  - url: https://api.derive.xyz/v3
    description: Production (HTTP POST base)
  - url: https://testnet.api.derive.xyz/v3
    description: Testnet (HTTP POST base)
security: []
tags:
  - name: Subaccounts
    description: >-
      List, inspect, and label subaccounts, portfolios, positions, and
      collateral.
  - name: Session Keys
    description: Register, edit, and list delegated signing keys.
  - name: Account
    description: Wallet-level account information and settings.
  - name: Orderbook
    description: Place, replace, cancel, and query orders, trigger orders, and algos.
  - name: RFQ
    description: 'Request-for-quote: send RFQs, quote, and execute block trades.'
  - name: Vault Shareholders
    description: >-
      Deposit into and withdraw from vaults, and track shares, requests, and
      performance.
  - name: Vault Curators
    description: >-
      Create and operate curated vaults: settle deposit and withdrawal requests,
      and manage vault metadata.
  - name: History
    description: >-
      Per-account historical records: orders, trades, transfers, and
      settlements.
  - name: Market Maker Protection
    description: Configure, read, and reset market-maker protection.
  - name: Transfers & Withdrawals
    description: Move collateral between subaccounts, to other wallets, and on-chain.
  - name: System
    description: Rate limits and transaction lookups.
  - name: Market Data
    description: Instruments, currencies, tickers, and market-wide feeds.
  - name: Referrals
    description: Referral codes and program performance.
  - name: Other
    description: Uncategorized.
paths:
  /private/edit_session_key:
    post:
      tags:
        - Session Keys
      summary: Edit a session key's off-chain settings
      description: >-
        Updates an existing session key's label, IP allowlist, and/or off-chain
        scopes for a given wallet; it cannot change on-chain (protocol) scopes,
        for which you must re-register with private/create_session_key. Editing
        only the label needs account-info permission, while changing the IP
        allowlist or off-chain scopes requires admin/owner authorization.
        Returns the updated session key details.
      operationId: private_edit_session_key
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/EditSessionKeyRequest'
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SessionKey'
        default:
          description: JSON-RPC error (see Error Codes)
components:
  schemas:
    EditSessionKeyRequest:
      type: object
      required:
        - public_session_key
        - wallet
      properties:
        ip_whitelist:
          default: null
          type:
            - array
            - 'null'
          items:
            type: string
        label:
          default: null
          type:
            - string
            - 'null'
        offchain_scopes:
          default: null
          type:
            - array
            - 'null'
          items:
            type: string
        public_session_key:
          type: string
        wallet:
          type: string
    SessionKey:
      type: object
      required:
        - expiry_sec
        - ip_whitelist
        - label
        - offchain_scopes
        - protocol_scopes
        - public_session_key
        - registered_sec
        - subaccount_ids
      properties:
        expiry_sec:
          type: integer
          format: uint64
          minimum: 0
        ip_whitelist:
          type: array
          items:
            type: string
        label:
          type: string
        offchain_scopes:
          description: Off-chain scopes (read-tier capabilities).
          type: array
          items:
            type: string
        protocol_scopes:
          description: Protocol-level (on-chain authority) scopes.
          type: array
          items:
            type: string
        public_session_key:
          type: string
        registered_sec:
          type: integer
          format: uint64
          minimum: 0
        subaccount_ids:
          description: >-
            Subaccounts this key may act on. An empty stored value means "all
            subaccounts" and is expanded to the wallet's current subaccount
            list.
          type: array
          items:
            type: integer
            format: uint64
            minimum: 0

````

## Related topics

- [Session Keys](/authentication/session-keys.md)
- [Migration skill for your coding agent](/migrating/breaking-changes.md)
- [Access Scopes](/authentication/access-scopes.md)
