Algorand Wallet API

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

OpenAPI Specification

algorand-wallet-api-openapi.yml Raw ↑
openapi: 3.0.1
info:
  contact:
    email: contact@algorand.com
    name: algorand
    url: https://www.algorand.com/get-in-touch/contact
  description: API endpoint for algod operations.
  title: Algod REST API. common Wallet API
  version: 0.0.1
servers:
- url: http://localhost/
- url: https://localhost/
security:
- api_key: []
tags:
- name: Wallet
paths:
  /v1/wallet:
    post:
      description: Create a new wallet (collection of keys) with the given parameters.
      produces:
      - application/json
      summary: Create a wallet
      operationId: CreateWallet
      parameters:
      - name: Create Wallet Request
        in: body
        required: true
        schema:
          $ref: '#/definitions/CreateWalletRequest'
      responses:
        '200':
          $ref: '#/responses/CreateWalletResponse'
      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.

        '
      produces:
      - application/json
      summary: Get wallet info
      operationId: GetWalletInfo
      parameters:
      - name: Get Wallet Info Request
        in: body
        required: true
        schema:
          $ref: '#/definitions/WalletInfoRequest'
      responses:
        '200':
          $ref: '#/responses/WalletInfoResponse'
      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`.

        '
      produces:
      - application/json
      summary: Initialize a wallet handle token
      operationId: InitWalletHandleToken
      parameters:
      - name: Initialize Wallet Handle Token Request
        in: body
        required: true
        schema:
          $ref: '#/definitions/InitWalletHandleTokenRequest'
      responses:
        '200':
          $ref: '#/responses/InitWalletHandleTokenResponse'
      tags:
      - Wallet
  /v1/wallet/release:
    post:
      description: Invalidate the passed wallet handle token, making it invalid for use in subsequent requests.
      produces:
      - application/json
      summary: Release a wallet handle token
      operationId: ReleaseWalletHandleToken
      parameters:
      - name: Release Wallet Handle Token Request
        in: body
        required: true
        schema:
          $ref: '#/definitions/ReleaseWalletHandleTokenRequest'
      responses:
        '200':
          $ref: '#/responses/ReleaseWalletHandleTokenResponse'
      tags:
      - Wallet
  /v1/wallet/rename:
    post:
      description: Rename the underlying wallet to something else
      produces:
      - application/json
      summary: Rename a wallet
      operationId: RenameWallet
      parameters:
      - name: Rename Wallet Request
        in: body
        required: true
        schema:
          $ref: '#/definitions/RenameWalletRequest'
      responses:
        '200':
          $ref: '#/responses/RenameWalletResponse'
      tags:
      - Wallet
  /v1/wallet/renew:
    post:
      description: Renew a wallet handle token, increasing its expiration duration to its initial value
      produces:
      - application/json
      summary: Renew a wallet handle token
      operationId: RenewWalletHandleToken
      parameters:
      - name: Renew Wallet Handle Token Request
        in: body
        required: true
        schema:
          $ref: '#/definitions/RenewWalletHandleTokenRequest'
      responses:
        '200':
          $ref: '#/responses/RenewWalletHandleTokenResponse'
      tags:
      - Wallet
components:
  securitySchemes:
    api_key:
      description: Generated header parameter. This token can be generated using the Goal command line tool. Example value ='b7e384d0317b8050ce45900a94a1931e28540e1f69b2d242b424659c341b4697'
      in: header
      name: X-Algo-API-Token
      type: apiKey
definitions:
  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: '#/definitions/APIV1Wallet'
    x-go-package: github.com/algorand/go-algorand/daemon/kmd/lib/kmdapi
  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
  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
  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: '#/definitions/APIV1Wallet'
    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
  CreateWalletRequest:
    description: APIV1POSTWalletRequest is the request for `POST /v1/wallet`
    type: object
    properties:
      master_derivation_key:
        $ref: '#/definitions/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
  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
  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: '#/definitions/APIV1WalletHandle'
    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: '#/definitions/APIV1WalletHandle'
    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: '#/definitions/TxType'
        x-go-name: SupportedTransactions
    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
  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: '#/definitions/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
  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
responses:
  RenewWalletHandleTokenResponse:
    description: Response `POST /v1/wallet/renew`
    schema:
      $ref: '#/definitions/APIV1POSTWalletRenewResponse'
  RenameWalletResponse:
    description: Response to `POST /v1/wallet/rename`
    schema:
      $ref: '#/definitions/APIV1POSTWalletRenameResponse'
  ReleaseWalletHandleTokenResponse:
    description: Response to `POST /v1/wallet/release`
    schema:
      $ref: '#/definitions/APIV1POSTWalletReleaseResponse'
  InitWalletHandleTokenResponse:
    description: Response to `POST /v1/wallet/init`
    schema:
      $ref: '#/definitions/APIV1POSTWalletInitResponse'
  WalletInfoResponse:
    description: Response to `POST /v1/wallet/info`
    schema:
      $ref: '#/definitions/APIV1POSTWalletInfoResponse'
  CreateWalletResponse:
    description: Response to `POST /v1/wallet`
    schema:
      $ref: '#/definitions/APIV1POSTWalletResponse'
x-original-swagger-version: '2.0'