---
title: "POST /pocket.migration.Msg/ClaimMorseSupplier"
method: POST
path: "/pocket.migration.Msg/ClaimMorseSupplier"
tags: ["Msg"]
---

# POST /pocket.migration.Msg/ClaimMorseSupplier

`POST /pocket.migration.Msg/ClaimMorseSupplier`

## Request body

- PocketMigrationMsgClaimMorseSupplier — - Execute a one-time minting of tokens on Shannon based on tokens owned by the given Morse account - Use the on-chain MorseClaimableAccounts for verification - Credit the minted tokens to the balance of the given Shannon account - Automatically stake that Shannon account as a supplier NOTE: The supplier module's staking fee parameter (at the time of claiming) is deducted from the claimed balance Next free index: 9
  - `morse_node_address` string
  - `morse_public_key` string, byte
  - `morse_signature` string, byte
  - `services` PocketSharedSupplierServiceConfig[] — The services this supplier is staked to provide service for.
    - `endpoints` PocketSharedSupplierEndpoint[]
      - `configs` PocketSharedConfigOption[]
        - `key` 'UNKNOWN_CONFIG' | 'TIMEOUT' — Enum to define configuration options TODO_RESEARCH: Should these be configs, SLAs or something else? There will be more discussion once we get closer to implementing onchain QoS. - UNKNOWN_CONFIG: Undefined config option - TIMEOUT: Timeout setting
        - `value` string
      - `rpc_type` 'UNKNOWN_RPC' | 'GRPC' | 'WEBSOCKET' | 'JSON_RPC' | 'REST' — - UNKNOWN_RPC: Undefined RPC type - GRPC: gRPC - WEBSOCKET: WebSocket - JSON_RPC: JSON-RPC - REST: REST
      - `url` string
    - `rev_share` PocketSharedServiceRevenueShare[]
      - `address` string
      - `rev_share_percentage` string, uint64
    - `service_id` string
  - `shannon_operator_address` string — The bech32-encoded address of the Shannon account to which will become the supplier operator. If empty, the shannon_owner_address will be used. See: https://dev.poktroll.com/operate/configs/supplier_staking_config#staking-types.
  - `shannon_owner_address` string — The bech32-encoded address of the Shannon account to which the claimed tokens will be minted and which become the supplier owner. See: https://dev.poktroll.com/operate/configs/supplier_staking_config#staking-types.
  - `shannon_signing_address` string — The bech32-encoded address of the Shannon account which is signing for this message. This account is liable for any fees incurred by violating the constraints of Morse account/actor claim message fee waiving; the tx contains ONE OR MORE Morse account/actor claim messages AND has EXACTLY ONE signer.
  - `signer_is_output_address` boolean — Set to true if the private key corresponding to the morse_output_address is producing the morse_signature. For non-custodial claiming: - This MUST be true. - The morse_public_key MUST correspond to morse_output_address. - The morse_signature MUST correspond to morse_output_address.

## Response `200`

A successful response.

- PocketMigrationMsgClaimMorseSupplierResponse — MsgClaimMorseSupplierResponse is returned from MsgClaimMorseSupplier. - Indicates the morse_operator_address of the claimed account - Reports the unstaked balance claimed, session end height, and staked supplier - Includes claim signer type and signer address Next free index: 10
  - `claim_signer_type` 'MORSE_SUPPLIER_CLAIM_SIGNER_TYPE_UNSPECIFIED' | 'MORSE_SUPPLIER_CLAIM_SIGNER_TYPE_CUSTODIAL_SIGNED_BY_NODE_ADDR' | 'MORSE_SUPPLIER_CLAIM_SIGNER_TYPE_NON_CUSTODIAL_SIGNED_BY_NODE_ADDR' | 'MORSE_SUPPLIER_CLAIM_SIGNER_TYPE_NON_CUSTODIAL_SIGNED_BY_OWNER' — - MORSE_SUPPLIER_CLAIM_SIGNER_TYPE_UNSPECIFIED: Unspecified signer type - MORSE_SUPPLIER_CLAIM_SIGNER_TYPE_CUSTODIAL_SIGNED_BY_NODE_ADDR: signer === addr === operator === owner Custodial signer type - The Morse node address is NOT EMPTY (i.e. operator) - The Morse output address is EMPTY (i.e. owner) - Implies that the operator and owner are THE SAME offchain identity - MORSE_SUPPLIER_CLAIM_SIGNER_TYPE_NON_CUSTODIAL_SIGNED_BY_NODE_ADDR: signer === operator === addr && owner !== operator Non-custodial signer type - The Morse node address is NOT EMPTY (i.e. operator) - The Morse output address is NOT EMPTY (i.e. owner) - Implies that the operator and owner are MOST LIKELY DIFFERENT offchain identities - The operator is the one signing the supplier claim - MORSE_SUPPLIER_CLAIM_SIGNER_TYPE_NON_CUSTODIAL_SIGNED_BY_OWNER: signer === owner && owner !== addr Owner non-custodial signer type - The Morse node address is EMPTY (i.e. operator) - The Morse output address is NOT EMPTY (i.e. owner) - Implies that the operator and owner are MOST LIKELY different offchain identities - The owner is the one signing the supplier claim
  - `claimed_balance` CosmosBaseV1beta1Coin — Coin defines a token with a denomination and an amount. NOTE: The amount field is an Int which implements the custom method signatures required by gogoproto.
    - `amount` string
    - `denom` string
  - `claimed_supplier_stake` CosmosBaseV1beta1Coin — Coin defines a token with a denomination and an amount. NOTE: The amount field is an Int which implements the custom method signatures required by gogoproto.
    - `amount` string
    - `denom` string
  - `morse_node_address` string
  - `morse_output_address` string — Hex-encoded address of the Morse output account/wallet associated with the Morse node/supplier. - E.g.: 00f9900606fa3d5c9179fc0c8513078a53a2073e - Morse custodial (i.e. owner) address, which owns the staked tokens of the operator. See 'pocket nodes --help' for more information. Note that this refers to the Morse CLI.
  - `session_end_height` string, int64 — The session end height (on Shannon) in which the claim was committed (i.e. claimed).
  - `supplier` PocketSharedSupplier
    - `operator_address` string — Operator address managing the offchain server Immutable for supplier's lifespan - requires unstake/re-stake to change. Can update supplier configs except for owner address.
    - `owner_address` string
    - `service_config_history` PocketSharedServiceConfigUpdate[] — List of historical service configuration updates, tracking the suppliers services update and corresponding activation heights.
      - `activation_height` string, int64
      - `deactivation_height` string, int64
      - `operator_address` string
      - `service` PocketSharedSupplierServiceConfig
        - `endpoints` PocketSharedSupplierEndpoint[]
          - `configs` PocketSharedConfigOption[]
            - `key` 'UNKNOWN_CONFIG' | 'TIMEOUT' — Enum to define configuration options TODO_RESEARCH: Should these be configs, SLAs or something else? There will be more discussion once we get closer to implementing onchain QoS. - UNKNOWN_CONFIG: Undefined config option - TIMEOUT: Timeout setting
            - `value` string
          - `rpc_type` 'UNKNOWN_RPC' | 'GRPC' | 'WEBSOCKET' | 'JSON_RPC' | 'REST' — - UNKNOWN_RPC: Undefined RPC type - GRPC: gRPC - WEBSOCKET: WebSocket - JSON_RPC: JSON-RPC - REST: REST
          - `url` string
        - `rev_share` PocketSharedServiceRevenueShare[]
          - `address` string
          - `rev_share_percentage` string, uint64
        - `service_id` string
    - `services` PocketSharedSupplierServiceConfig[]
      - `endpoints` PocketSharedSupplierEndpoint[]
        - `configs` PocketSharedConfigOption[]
          - `key` 'UNKNOWN_CONFIG' | 'TIMEOUT' — Enum to define configuration options TODO_RESEARCH: Should these be configs, SLAs or something else? There will be more discussion once we get closer to implementing onchain QoS. - UNKNOWN_CONFIG: Undefined config option - TIMEOUT: Timeout setting
          - `value` string
        - `rpc_type` 'UNKNOWN_RPC' | 'GRPC' | 'WEBSOCKET' | 'JSON_RPC' | 'REST' — - UNKNOWN_RPC: Undefined RPC type - GRPC: gRPC - WEBSOCKET: WebSocket - JSON_RPC: JSON-RPC - REST: REST
        - `url` string
      - `rev_share` PocketSharedServiceRevenueShare[]
        - `address` string
        - `rev_share_percentage` string, uint64
      - `service_id` string
    - `stake` CosmosBaseV1beta1Coin — Coin defines a token with a denomination and an amount. NOTE: The amount field is an Int which implements the custom method signatures required by gogoproto.
      - `amount` string
      - `denom` string
    - `unstake_session_end_height` string, uint64

## Other responses

- `default` — An unexpected error response.

## Changes

- **2025-03-27** `4f349536c8f3` — 1 info
  - endpoint added
- **2023-11-01** `3f51f9b9a127` — 1 breaking
  - api path removed without deprecation

[Change history](https://skmtc.dev/pokt-network/apis/http-api-console/changes/pocket.migration.Msg/ClaimMorseSupplier/post.md)

---

[API](https://skmtc.dev/pokt-network/apis/http-api-console.md) · [All operations](https://skmtc.dev/pokt-network/apis/http-api-console/llms.txt) · [OpenAPI document](https://skmtc.dev/pokt-network/apis/http-api-console/revisions/671fab54b729?raw)
