Algorand Key API

The Key API from Algorand — 4 operation(s) for key.

Operations 5

POST /v1/key Generate a key #
DELETE /v1/key Delete a key #
POST /v1/key/export Export a key #
POST /v1/key/import Import a key #
POST /v1/key/list List keys in wallet #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/algorand-key-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

algorand-key-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  description: API for KMD (Key Management Daemon)
  title: KMD HTTP Key API
  contact:
    email: contact@algorand.com
  version: 0.0.1
servers:
- url: http://localhost/
security:
- api_key: []
tags:
- name: Key
paths:
  /v1/key:
    post:
      description: 'Generates the next key in the deterministic key sequence (as determined by the master derivation key) and adds it to the wallet, returning the public key.

        '
      summary: Generate a key
      operationId: GenerateKey
      responses:
        '200':
          $ref: '#/components/responses/GenerateKeyResponse'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/GenerateKeyRequest'
        required: true
      tags:
      - Key
    delete:
      description: Deletes the key with the passed public key from the wallet.
      summary: Delete a key
      operationId: DeleteKey
      responses:
        '200':
          $ref: '#/components/responses/DeleteKeyResponse'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/DeleteKeyRequest'
        required: true
      tags:
      - Key
  /v1/key/export:
    post:
      description: Export the secret key associated with the passed public key.
      summary: Export a key
      operationId: ExportKey
      responses:
        '200':
          $ref: '#/components/responses/ExportKeyResponse'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ExportKeyRequest'
        required: true
      tags:
      - Key
  /v1/key/import:
    post:
      description: 'Import an externally generated key into the wallet. Note that if you wish to back up the imported key, you must do so by backing up the entire wallet database, because imported keys were not derived from the wallet''s master derivation key.

        '
      summary: Import a key
      operationId: ImportKey
      responses:
        '200':
          $ref: '#/components/responses/ImportKeyResponse'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ImportKeyRequest'
        required: true
      tags:
      - Key
  /v1/key/list:
    post:
      description: Lists all of the public keys in this wallet. All of them have a stored private key.
      summary: List keys in wallet
      operationId: ListKeysInWallet
      responses:
        '200':
          $ref: '#/components/responses/ListKeysResponse'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ListKeysRequest'
        required: true
      tags:
      - Key
components:
  schemas:
    ExportKeyRequest:
      description: APIV1POSTKeyExportRequest is the request for `POST /v1/key/export`
      type: object
      properties:
        address:
          type: string
          x-go-name: Address
        wallet_handle_token:
          type: string
          x-go-name: WalletHandleToken
        wallet_password:
          type: string
          x-go-name: WalletPassword
      x-go-name: APIV1POSTKeyExportRequest
      x-go-package: github.com/algorand/go-algorand/daemon/kmd/lib/kmdapi
    APIV1POSTKeyListResponse:
      description: 'APIV1POSTKeyListResponse is the response to `POST /v1/key/list`

        friendly:ListKeysResponse'
      type: object
      properties:
        addresses:
          type: array
          items:
            type: string
          x-go-name: Addresses
        error:
          type: boolean
          x-go-name: Error
        message:
          type: string
          x-go-name: Message
      x-go-package: github.com/algorand/go-algorand/daemon/kmd/lib/kmdapi
    DeleteKeyRequest:
      description: APIV1DELETEKeyRequest is the request for `DELETE /v1/key`
      type: object
      properties:
        address:
          type: string
          x-go-name: Address
        wallet_handle_token:
          type: string
          x-go-name: WalletHandleToken
        wallet_password:
          type: string
          x-go-name: WalletPassword
      x-go-name: APIV1DELETEKeyRequest
      x-go-package: github.com/algorand/go-algorand/daemon/kmd/lib/kmdapi
    APIV1POSTKeyExportResponse:
      description: 'APIV1POSTKeyExportResponse is the response to `POST /v1/key/export`

        friendly:ExportKeyResponse'
      type: object
      properties:
        error:
          type: boolean
          x-go-name: Error
        message:
          type: string
          x-go-name: Message
        private_key:
          $ref: '#/components/schemas/PrivateKey'
      x-go-package: github.com/algorand/go-algorand/daemon/kmd/lib/kmdapi
    PrivateKey:
      description: PrivateKey is an exported ed25519PrivateKey
      $ref: '#/components/schemas/ed25519PrivateKey'
    APIV1POSTKeyResponse:
      description: 'APIV1POSTKeyResponse is the response to `POST /v1/key`

        friendly:GenerateKeyResponse'
      type: object
      properties:
        address:
          type: string
          x-go-name: Address
        error:
          type: boolean
          x-go-name: Error
        message:
          type: string
          x-go-name: Message
      x-go-package: github.com/algorand/go-algorand/daemon/kmd/lib/kmdapi
    ed25519PrivateKey:
      type: array
      items:
        type: integer
        format: uint8
      x-go-package: github.com/algorand/go-algorand/crypto
    ImportKeyRequest:
      description: APIV1POSTKeyImportRequest is the request for `POST /v1/key/import`
      type: object
      properties:
        private_key:
          $ref: '#/components/schemas/PrivateKey'
        wallet_handle_token:
          type: string
          x-go-name: WalletHandleToken
      x-go-name: APIV1POSTKeyImportRequest
      x-go-package: github.com/algorand/go-algorand/daemon/kmd/lib/kmdapi
    GenerateKeyRequest:
      description: APIV1POSTKeyRequest is the request for `POST /v1/key`
      type: object
      properties:
        display_mnemonic:
          type: boolean
          x-go-name: DisplayMnemonic
        wallet_handle_token:
          type: string
          x-go-name: WalletHandleToken
      x-go-name: APIV1POSTKeyRequest
      x-go-package: github.com/algorand/go-algorand/daemon/kmd/lib/kmdapi
    APIV1POSTKeyImportResponse:
      description: 'APIV1POSTKeyImportResponse is the response to `POST /v1/key/import`

        friendly:ImportKeyResponse'
      type: object
      properties:
        address:
          type: string
          x-go-name: Address
        error:
          type: boolean
          x-go-name: Error
        message:
          type: string
          x-go-name: Message
      x-go-package: github.com/algorand/go-algorand/daemon/kmd/lib/kmdapi
    APIV1DELETEKeyResponse:
      description: 'APIV1DELETEKeyResponse is the response to `DELETE /v1/key`

        friendly:DeleteKeyResponse'
      type: object
      properties:
        error:
          type: boolean
          x-go-name: Error
        message:
          type: string
          x-go-name: Message
      x-go-package: github.com/algorand/go-algorand/daemon/kmd/lib/kmdapi
    ListKeysRequest:
      description: APIV1POSTKeyListRequest is the request for `POST /v1/key/list`
      type: object
      properties:
        wallet_handle_token:
          type: string
          x-go-name: WalletHandleToken
      x-go-name: APIV1POSTKeyListRequest
      x-go-package: github.com/algorand/go-algorand/daemon/kmd/lib/kmdapi
  responses:
    ExportKeyResponse:
      description: Response to `POST /v1/key/export`
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/APIV1POSTKeyExportResponse'
    ListKeysResponse:
      description: Response to `POST /v1/key/list`
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/APIV1POSTKeyListResponse'
    GenerateKeyResponse:
      description: Response to `POST /v1/key`
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/APIV1POSTKeyResponse'
    DeleteKeyResponse:
      description: Response to `DELETE /v1/key`
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/APIV1DELETEKeyResponse'
    ImportKeyResponse:
      description: Response to `POST /v1/key/import`
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/APIV1POSTKeyImportResponse'
  securitySchemes:
    api_key:
      description: 'Generated header parameter. This value can be found in `/kmd/data/dir/kmd.token`. Example value: ''330b2e4fc9b20f4f89812cf87f1dabeb716d23e3f11aec97a61ff5f750563b78'''
      type: apiKey
      name: X-KMD-API-Token
      in: header
      x-example: 330b2e4fc9b20f4f89812cf87f1dabeb716d23e3f11aec97a61ff5f750563b78