Algorand Wallet API

The Wallet API from Algorand — 6 operation(s) for wallet.

Operations 6

POST /v1/wallet Create a wallet #
POST /v1/wallet/info Get wallet info #
POST /v1/wallet/init Initialize a wallet handle token #
POST /v1/wallet/release Release a wallet handle token #
POST /v1/wallet/rename Rename a wallet #
POST /v1/wallet/renew Renew a wallet handle token #

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-wallet-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-wallet-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  description: API for KMD (Key Management Daemon)
  title: KMD HTTP Wallet API
  contact:
    email: contact@algorand.com
  version: 0.0.1
servers:
- url: http://localhost/
security:
- api_key: []
tags:
- name: Wallet
paths:
  /v1/wallet:
    post:
      description: Create a new wallet (collection of keys) with the given parameters.
      summary: Create a wallet
      operationId: CreateWallet
      responses:
        '200':
          $ref: '#/components/responses/CreateWalletResponse'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateWalletRequest'
        required: true
      tags:
      - Wallet
  /v1/wallet/info:
    post:
      description: 'Returns information about the wallet associated with the passed wallet handle token. Additionally returns expiration information about the token itself.

        '
      summary: Get wallet info
      operationId: GetWalletInfo
      responses:
        '200':
          $ref: '#/components/responses/WalletInfoResponse'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/WalletInfoRequest'
        required: true
      tags:
      - Wallet
  /v1/wallet/init:
    post:
      description: 'Unlock the wallet and return a wallet handle token that can be used for subsequent operations. These tokens expire periodically and must be renewed. You can `POST` the token to `/v1/wallet/info` to see how much time remains until expiration, and renew it with `/v1/wallet/renew`. When you''re done, you can invalidate the token with `/v1/wallet/release`.

        '
      summary: Initialize a wallet handle token
      operationId: InitWalletHandleToken
      responses:
        '200':
          $ref: '#/components/responses/InitWalletHandleTokenResponse'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/InitWalletHandleTokenRequest'
        required: true
      tags:
      - Wallet
  /v1/wallet/release:
    post:
      description: Invalidate the passed wallet handle token, making it invalid for use in subsequent requests.
      summary: Release a wallet handle token
      operationId: ReleaseWalletHandleToken
      responses:
        '200':
          $ref: '#/components/responses/ReleaseWalletHandleTokenResponse'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ReleaseWalletHandleTokenRequest'
        required: true
      tags:
      - Wallet
  /v1/wallet/rename:
    post:
      description: Rename the underlying wallet to something else
      summary: Rename a wallet
      operationId: RenameWallet
      responses:
        '200':
          $ref: '#/components/responses/RenameWalletResponse'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/RenameWalletRequest'
        required: true
      tags:
      - Wallet
  /v1/wallet/renew:
    post:
      description: Renew a wallet handle token, increasing its expiration duration to its initial value
      summary: Renew a wallet handle token
      operationId: RenewWalletHandleToken
      responses:
        '200':
          $ref: '#/components/responses/RenewWalletHandleTokenResponse'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/RenewWalletHandleTokenRequest'
        required: true
      tags:
      - Wallet
components:
  responses:
    CreateWalletResponse:
      description: Response to `POST /v1/wallet`
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/APIV1POSTWalletResponse'
    InitWalletHandleTokenResponse:
      description: Response to `POST /v1/wallet/init`
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/APIV1POSTWalletInitResponse'
    RenameWalletResponse:
      description: Response to `POST /v1/wallet/rename`
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/APIV1POSTWalletRenameResponse'
    ReleaseWalletHandleTokenResponse:
      description: Response to `POST /v1/wallet/release`
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/APIV1POSTWalletReleaseResponse'
    WalletInfoResponse:
      description: Response to `POST /v1/wallet/info`
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/APIV1POSTWalletInfoResponse'
    RenewWalletHandleTokenResponse:
      description: Response `POST /v1/wallet/renew`
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/APIV1POSTWalletRenewResponse'
  schemas:
    APIV1POSTWalletReleaseResponse:
      description: 'APIV1POSTWalletReleaseResponse is the response to `POST /v1/wallet/release`

        friendly:ReleaseWalletHandleTokenResponse'
      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
    APIV1POSTWalletResponse:
      description: 'APIV1POSTWalletResponse is the response to `POST /v1/wallet`

        friendly:CreateWalletResponse'
      type: object
      properties:
        error:
          type: boolean
          x-go-name: Error
        message:
          type: string
          x-go-name: Message
        wallet:
          $ref: '#/components/schemas/APIV1Wallet'
      x-go-package: github.com/algorand/go-algorand/daemon/kmd/lib/kmdapi
    APIV1POSTWalletRenameResponse:
      description: 'APIV1POSTWalletRenameResponse is the response to `POST /v1/wallet/rename`

        friendly:RenameWalletResponse'
      type: object
      properties:
        error:
          type: boolean
          x-go-name: Error
        message:
          type: string
          x-go-name: Message
        wallet:
          $ref: '#/components/schemas/APIV1Wallet'
      x-go-package: github.com/algorand/go-algorand/daemon/kmd/lib/kmdapi
    APIV1POSTWalletInitResponse:
      description: 'APIV1POSTWalletInitResponse is the response to `POST /v1/wallet/init`

        friendly:InitWalletHandleTokenResponse'
      type: object
      properties:
        error:
          type: boolean
          x-go-name: Error
        message:
          type: string
          x-go-name: Message
        wallet_handle_token:
          type: string
          x-go-name: WalletHandleToken
      x-go-package: github.com/algorand/go-algorand/daemon/kmd/lib/kmdapi
    WalletInfoRequest:
      description: APIV1POSTWalletInfoRequest is the request for `POST /v1/wallet/info`
      type: object
      properties:
        wallet_handle_token:
          type: string
          x-go-name: WalletHandleToken
      x-go-name: APIV1POSTWalletInfoRequest
      x-go-package: github.com/algorand/go-algorand/daemon/kmd/lib/kmdapi
    RenewWalletHandleTokenRequest:
      description: APIV1POSTWalletRenewRequest is the request for `POST /v1/wallet/renew`
      type: object
      properties:
        wallet_handle_token:
          type: string
          x-go-name: WalletHandleToken
      x-go-name: APIV1POSTWalletRenewRequest
      x-go-package: github.com/algorand/go-algorand/daemon/kmd/lib/kmdapi
    InitWalletHandleTokenRequest:
      description: APIV1POSTWalletInitRequest is the request for `POST /v1/wallet/init`
      type: object
      properties:
        wallet_id:
          type: string
          x-go-name: WalletID
        wallet_password:
          type: string
          x-go-name: WalletPassword
      x-go-name: APIV1POSTWalletInitRequest
      x-go-package: github.com/algorand/go-algorand/daemon/kmd/lib/kmdapi
    APIV1Wallet:
      description: APIV1Wallet is the API's representation of a wallet
      type: object
      properties:
        driver_name:
          type: string
          x-go-name: DriverName
        driver_version:
          type: integer
          format: uint32
          x-go-name: DriverVersion
        id:
          type: string
          x-go-name: ID
        mnemonic_ux:
          type: boolean
          x-go-name: SupportsMnemonicUX
        name:
          type: string
          x-go-name: Name
        supported_txs:
          type: array
          items:
            $ref: '#/components/schemas/TxType'
          x-go-name: SupportedTransactions
      x-go-package: github.com/algorand/go-algorand/daemon/kmd/lib/kmdapi
    APIV1POSTWalletInfoResponse:
      description: 'APIV1POSTWalletInfoResponse is the response to `POST /v1/wallet/info`

        friendly:WalletInfoResponse'
      type: object
      properties:
        error:
          type: boolean
          x-go-name: Error
        message:
          type: string
          x-go-name: Message
        wallet_handle:
          $ref: '#/components/schemas/APIV1WalletHandle'
      x-go-package: github.com/algorand/go-algorand/daemon/kmd/lib/kmdapi
    TxType:
      description: TxType is the type of the transaction written to the ledger
      type: string
      x-go-package: github.com/algorand/go-algorand/protocol
    MasterDerivationKey:
      description: MasterDerivationKey is used to derive ed25519 keys for use in wallets
      type: array
      items:
        type: integer
        format: uint8
      x-go-package: github.com/algorand/go-algorand/crypto
    APIV1POSTWalletRenewResponse:
      description: 'APIV1POSTWalletRenewResponse is the response to `POST /v1/wallet/renew`

        friendly:RenewWalletHandleTokenResponse'
      type: object
      properties:
        error:
          type: boolean
          x-go-name: Error
        message:
          type: string
          x-go-name: Message
        wallet_handle:
          $ref: '#/components/schemas/APIV1WalletHandle'
      x-go-package: github.com/algorand/go-algorand/daemon/kmd/lib/kmdapi
    APIV1WalletHandle:
      description: 'APIV1WalletHandle includes the wallet the handle corresponds to

        and the number of number of seconds to expiration'
      type: object
      properties:
        expires_seconds:
          type: integer
          format: int64
          x-go-name: ExpiresSeconds
        wallet:
          $ref: '#/components/schemas/APIV1Wallet'
      x-go-package: github.com/algorand/go-algorand/daemon/kmd/lib/kmdapi
    CreateWalletRequest:
      description: APIV1POSTWalletRequest is the request for `POST /v1/wallet`
      type: object
      properties:
        master_derivation_key:
          $ref: '#/components/schemas/MasterDerivationKey'
        wallet_driver_name:
          type: string
          x-go-name: WalletDriverName
        wallet_name:
          type: string
          x-go-name: WalletName
        wallet_password:
          type: string
          x-go-name: WalletPassword
      x-go-name: APIV1POSTWalletRequest
      x-go-package: github.com/algorand/go-algorand/daemon/kmd/lib/kmdapi
    RenameWalletRequest:
      description: APIV1POSTWalletRenameRequest is the request for `POST /v1/wallet/rename`
      type: object
      properties:
        wallet_id:
          type: string
          x-go-name: WalletID
        wallet_name:
          type: string
          x-go-name: NewWalletName
        wallet_password:
          type: string
          x-go-name: WalletPassword
      x-go-name: APIV1POSTWalletRenameRequest
      x-go-package: github.com/algorand/go-algorand/daemon/kmd/lib/kmdapi
    ReleaseWalletHandleTokenRequest:
      description: APIV1POSTWalletReleaseRequest is the request for `POST /v1/wallet/release`
      type: object
      properties:
        wallet_handle_token:
          type: string
          x-go-name: WalletHandleToken
      x-go-name: APIV1POSTWalletReleaseRequest
      x-go-package: github.com/algorand/go-algorand/daemon/kmd/lib/kmdapi
  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