Algorand Multisig API

The Multisig API from Algorand — 6 operation(s) for multisig.

Operations 6

DELETE /v1/multisig Delete a multisig #
POST /v1/multisig/export Export multisig address metadata #
POST /v1/multisig/import Import a multisig account #
POST /v1/multisig/list List multisig accounts #
POST /v1/multisig/sign Sign a multisig transaction #
POST /v1/multisig/signprogram Sign a program for a multisig account #

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-multisig-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-multisig-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  description: API for KMD (Key Management Daemon)
  title: KMD HTTP Multisig API
  contact:
    email: contact@algorand.com
  version: 0.0.1
servers:
- url: http://localhost/
security:
- api_key: []
tags:
- name: Multisig
paths:
  /v1/multisig:
    delete:
      description: 'Deletes multisig preimage information for the passed address from the wallet.

        '
      summary: Delete a multisig
      operationId: DeleteMultisig
      responses:
        '200':
          $ref: '#/components/responses/DeleteMultisigResponse'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/DeleteMultisigRequest'
        required: true
      tags:
      - Multisig
  /v1/multisig/export:
    post:
      description: 'Given a multisig address whose preimage this wallet stores, returns the information used to generate the address, including public keys, threshold, and multisig version.

        '
      summary: Export multisig address metadata
      operationId: ExportMultisig
      responses:
        '200':
          $ref: '#/components/responses/ExportMultisigResponse'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ExportMultisigRequest'
        required: true
      tags:
      - Multisig
  /v1/multisig/import:
    post:
      description: 'Generates a multisig account from the passed public keys array and multisig metadata, and stores all of this in the wallet.

        '
      summary: Import a multisig account
      operationId: ImportMultisig
      responses:
        '200':
          $ref: '#/components/responses/ImportMultisigResponse'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ImportMultisigRequest'
        required: true
      tags:
      - Multisig
  /v1/multisig/list:
    post:
      description: Lists all of the multisig accounts whose preimages this wallet stores
      summary: List multisig accounts
      operationId: ListMultisg
      responses:
        '200':
          $ref: '#/components/responses/ListMultisigResponse'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ListMultisigRequest'
        required: true
      tags:
      - Multisig
  /v1/multisig/sign:
    post:
      description: 'Start a multisig signature, or add a signature to a partially completed multisig signature object.

        '
      summary: Sign a multisig transaction
      operationId: SignMultisigTransaction
      responses:
        '200':
          $ref: '#/components/responses/SignMultisigResponse'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SignMultisigRequest'
        required: true
      tags:
      - Multisig
  /v1/multisig/signprogram:
    post:
      description: 'Start a multisig signature, or add a signature to a partially completed multisig signature object.

        '
      summary: Sign a program for a multisig account
      operationId: SignMultisigProgram
      responses:
        '200':
          $ref: '#/components/responses/SignProgramMultisigResponse'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SignProgramMultisigRequest'
        required: true
      tags:
      - Multisig
components:
  schemas:
    MultisigSubsig:
      description: 'MultisigSubsig is a struct that holds a pair of public key and signatures

        signatures may be empty'
      type: object
      properties:
        Key:
          $ref: '#/components/schemas/PublicKey'
        Sig:
          $ref: '#/components/schemas/Signature'
      x-go-package: github.com/algorand/go-algorand/crypto
    APIV1POSTMultisigProgramSignResponse:
      description: 'APIV1POSTMultisigProgramSignResponse is the response to `POST /v1/multisig/signdata`

        friendly:SignProgramMultisigResponse'
      type: object
      properties:
        error:
          type: boolean
          x-go-name: Error
        message:
          type: string
          x-go-name: Message
        multisig:
          type: string
          format: byte
          x-go-name: Multisig
      x-go-package: github.com/algorand/go-algorand/daemon/kmd/lib/kmdapi
    PublicKey:
      description: PublicKey is an exported ed25519PublicKey
      $ref: '#/components/schemas/ed25519PublicKey'
    SignMultisigRequest:
      description: APIV1POSTMultisigTransactionSignRequest is the request for `POST /v1/multisig/sign`
      type: object
      properties:
        partial_multisig:
          $ref: '#/components/schemas/MultisigSig'
        public_key:
          $ref: '#/components/schemas/PublicKey'
        signer:
          $ref: '#/components/schemas/Digest'
        transaction:
          type: string
          format: byte
          x-go-name: Transaction
        wallet_handle_token:
          type: string
          x-go-name: WalletHandleToken
        wallet_password:
          type: string
          x-go-name: WalletPassword
      x-go-name: APIV1POSTMultisigTransactionSignRequest
      x-go-package: github.com/algorand/go-algorand/daemon/kmd/lib/kmdapi
    ImportMultisigRequest:
      description: APIV1POSTMultisigImportRequest is the request for `POST /v1/multisig/import`
      type: object
      properties:
        multisig_version:
          type: integer
          format: uint8
          x-go-name: Version
        pks:
          type: array
          items:
            $ref: '#/components/schemas/PublicKey'
          x-go-name: PKs
        threshold:
          type: integer
          format: uint8
          x-go-name: Threshold
        wallet_handle_token:
          type: string
          x-go-name: WalletHandleToken
      x-go-name: APIV1POSTMultisigImportRequest
      x-go-package: github.com/algorand/go-algorand/daemon/kmd/lib/kmdapi
    APIV1DELETEMultisigResponse:
      description: 'APIV1DELETEMultisigResponse is the response to POST /v1/multisig/delete`

        friendly:DeleteMultisigResponse'
      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
    Digest:
      type: array
      title: Digest represents a 32-byte value holding the 256-bit Hash digest.
      items:
        type: integer
        format: uint8
      x-go-package: github.com/algorand/go-algorand/crypto
    Signature:
      description: 'A Signature is a cryptographic signature. It proves that a message was

        produced by a holder of a cryptographic secret.'
      $ref: '#/components/schemas/ed25519Signature'
    ed25519Signature:
      type: array
      title: Classical signatures */
      items:
        type: integer
        format: uint8
      x-go-package: github.com/algorand/go-algorand/crypto
    ExportMultisigRequest:
      description: APIV1POSTMultisigExportRequest is the request for `POST /v1/multisig/export`
      type: object
      properties:
        address:
          type: string
          x-go-name: Address
        wallet_handle_token:
          type: string
          x-go-name: WalletHandleToken
      x-go-name: APIV1POSTMultisigExportRequest
      x-go-package: github.com/algorand/go-algorand/daemon/kmd/lib/kmdapi
    APIV1POSTMultisigListResponse:
      description: 'APIV1POSTMultisigListResponse is the response to `POST /v1/multisig/list`

        friendly:ListMultisigResponse'
      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
    ListMultisigRequest:
      description: APIV1POSTMultisigListRequest is the request for `POST /v1/multisig/list`
      type: object
      properties:
        wallet_handle_token:
          type: string
          x-go-name: WalletHandleToken
      x-go-name: APIV1POSTMultisigListRequest
      x-go-package: github.com/algorand/go-algorand/daemon/kmd/lib/kmdapi
    MultisigSig:
      description: MultisigSig is the structure that holds multiple Subsigs
      type: object
      properties:
        Subsigs:
          type: array
          items:
            $ref: '#/components/schemas/MultisigSubsig'
        Threshold:
          type: integer
          format: uint8
        Version:
          type: integer
          format: uint8
      x-go-package: github.com/algorand/go-algorand/crypto
    DeleteMultisigRequest:
      description: APIV1DELETEMultisigRequest is the request for `DELETE /v1/multisig`
      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: APIV1DELETEMultisigRequest
      x-go-package: github.com/algorand/go-algorand/daemon/kmd/lib/kmdapi
    APIV1POSTMultisigExportResponse:
      description: 'APIV1POSTMultisigExportResponse is the response to `POST /v1/multisig/export`

        friendly:ExportMultisigResponse'
      type: object
      properties:
        error:
          type: boolean
          x-go-name: Error
        message:
          type: string
          x-go-name: Message
        multisig_version:
          type: integer
          format: uint8
          x-go-name: Version
        pks:
          type: array
          items:
            $ref: '#/components/schemas/PublicKey'
          x-go-name: PKs
        threshold:
          type: integer
          format: uint8
          x-go-name: Threshold
      x-go-package: github.com/algorand/go-algorand/daemon/kmd/lib/kmdapi
    SignProgramMultisigRequest:
      description: APIV1POSTMultisigProgramSignRequest is the request for `POST /v1/multisig/signprogram`
      type: object
      properties:
        address:
          type: string
          x-go-name: Address
        data:
          type: string
          format: byte
          x-go-name: Program
        partial_multisig:
          $ref: '#/components/schemas/MultisigSig'
        public_key:
          $ref: '#/components/schemas/PublicKey'
        use_legacy_msig:
          type: boolean
          x-go-name: UseLegacyMsig
        wallet_handle_token:
          type: string
          x-go-name: WalletHandleToken
        wallet_password:
          type: string
          x-go-name: WalletPassword
      x-go-name: APIV1POSTMultisigProgramSignRequest
      x-go-package: github.com/algorand/go-algorand/daemon/kmd/lib/kmdapi
    APIV1POSTMultisigTransactionSignResponse:
      description: 'APIV1POSTMultisigTransactionSignResponse is the response to `POST /v1/multisig/sign`

        friendly:SignMultisigResponse'
      type: object
      properties:
        error:
          type: boolean
          x-go-name: Error
        message:
          type: string
          x-go-name: Message
        multisig:
          type: string
          format: byte
          x-go-name: Multisig
      x-go-package: github.com/algorand/go-algorand/daemon/kmd/lib/kmdapi
    APIV1POSTMultisigImportResponse:
      description: 'APIV1POSTMultisigImportResponse is the response to `POST /v1/multisig/import`

        friendly:ImportMultisigResponse'
      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
    ed25519PublicKey:
      type: array
      items:
        type: integer
        format: uint8
      x-go-package: github.com/algorand/go-algorand/crypto
  responses:
    DeleteMultisigResponse:
      description: Response to POST /v1/multisig/delete
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/APIV1DELETEMultisigResponse'
    ImportMultisigResponse:
      description: Response to `POST /v1/multisig/import`
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/APIV1POSTMultisigImportResponse'
    ListMultisigResponse:
      description: Response to `POST /v1/multisig/list`
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/APIV1POSTMultisigListResponse'
    SignProgramMultisigResponse:
      description: Response to `POST /v1/multisig/signdata`
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/APIV1POSTMultisigProgramSignResponse'
    ExportMultisigResponse:
      description: Response to `POST /v1/multisig/export`
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/APIV1POSTMultisigExportResponse'
    SignMultisigResponse:
      description: Response to `POST /v1/multisig/sign`
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/APIV1POSTMultisigTransactionSignResponse'
  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