openapi: 3.0.3 info: title: PATH - Path & Toolkit Harness API Msg API description: PATH (Path API & Toolkit Harness) is an open source framework for enabling access to a decentralized supply network. It provides various tools and libraries to streamline the integration and interaction with decentralized protocols. version: 1.0.0 contact: name: Grove Engineering email: engineering@grove.city servers: - url: https://{serviceId}.rpc.grove.city description: Production PATH URL with service-specific subdomain variables: serviceId: default: eth description: The service ID that determines the subdomain enum: - arb-one - arb-sepolia-testnet - avax - avax-dfk - base - base-sepolia-testnet - bera - bitcoin - blast - boba - bsc - celo - eth - eth-holesky-testnet - eth-sepolia-testnet - fantom - fraxtal - fuse - gnosis - harmony - ink - iotex - kaia - kava - linea - mantle - metis - moonbeam - moonriver - near - oasys - op - op-sepolia-testnet - opbnb - pocket - poly - poly-amoy-testnet - poly-zkevm - radix - scroll - sei - sonic - sui - taiko - taiko-hekla-testnet - tron - xrplevm - xrplevm-testnet - zklink-nova - zksync-era - url: http://localhost:3069 description: Local PATH instance security: - ApiKeyAuth: [] tags: - name: Msg paths: /pocket.application.Msg/DelegateToGateway: post: tags: - Msg operationId: GithubCompoktNetworkpoktrollMsg_DelegateToGateway parameters: - name: body in: body required: true schema: $ref: '#/definitions/pocket.application.MsgDelegateToGateway' responses: '200': description: A successful response. schema: $ref: '#/definitions/pocket.application.MsgDelegateToGatewayResponse' default: description: An unexpected error response. schema: $ref: '#/definitions/google.rpc.Status' /pocket.application.Msg/StakeApplication: post: tags: - Msg operationId: GithubCompoktNetworkpoktrollMsg_StakeApplication parameters: - name: body in: body required: true schema: $ref: '#/definitions/pocket.application.MsgStakeApplication' responses: '200': description: A successful response. schema: $ref: '#/definitions/pocket.application.MsgStakeApplicationResponse' default: description: An unexpected error response. schema: $ref: '#/definitions/google.rpc.Status' /pocket.application.Msg/TransferApplication: post: tags: - Msg operationId: GithubCompoktNetworkpoktrollMsg_TransferApplication parameters: - name: body in: body required: true schema: $ref: '#/definitions/pocket.application.MsgTransferApplication' responses: '200': description: A successful response. schema: $ref: '#/definitions/pocket.application.MsgTransferApplicationResponse' default: description: An unexpected error response. schema: $ref: '#/definitions/google.rpc.Status' /pocket.application.Msg/UndelegateFromGateway: post: tags: - Msg operationId: GithubCompoktNetworkpoktrollMsg_UndelegateFromGateway parameters: - name: body in: body required: true schema: $ref: '#/definitions/pocket.application.MsgUndelegateFromGateway' responses: '200': description: A successful response. schema: $ref: '#/definitions/pocket.application.MsgUndelegateFromGatewayResponse' default: description: An unexpected error response. schema: $ref: '#/definitions/google.rpc.Status' /pocket.application.Msg/UnstakeApplication: post: tags: - Msg operationId: GithubCompoktNetworkpoktrollMsg_UnstakeApplication parameters: - name: body in: body required: true schema: $ref: '#/definitions/pocket.application.MsgUnstakeApplication' responses: '200': description: A successful response. schema: $ref: '#/definitions/pocket.application.MsgUnstakeApplicationResponse' default: description: An unexpected error response. schema: $ref: '#/definitions/google.rpc.Status' /pocket.application.Msg/UpdateParam: post: tags: - Msg operationId: GithubCompoktNetworkpoktrollMsg_UpdateParam parameters: - name: body in: body required: true schema: $ref: '#/definitions/pocket.application.MsgUpdateParam' responses: '200': description: A successful response. schema: $ref: '#/definitions/pocket.application.MsgUpdateParamResponse' default: description: An unexpected error response. schema: $ref: '#/definitions/google.rpc.Status' /pocket.application.Msg/UpdateParams: post: tags: - Msg summary: 'UpdateParams defines a (governance) operation for updating the module parameters. The authority defaults to the x/gov module account.' operationId: GithubCompoktNetworkpoktrollMsg_UpdateParams parameters: - description: MsgUpdateParams is the Msg/UpdateParams request type. name: body in: body required: true schema: $ref: '#/definitions/pocket.application.MsgUpdateParams' responses: '200': description: A successful response. schema: $ref: '#/definitions/pocket.application.MsgUpdateParamsResponse' default: description: An unexpected error response. schema: $ref: '#/definitions/google.rpc.Status' /pocket.gateway.Msg/StakeGateway: post: tags: - Msg operationId: GithubCompoktNetworkpoktrollMsg_StakeGateway parameters: - name: body in: body required: true schema: $ref: '#/definitions/pocket.gateway.MsgStakeGateway' responses: '200': description: A successful response. schema: $ref: '#/definitions/pocket.gateway.MsgStakeGatewayResponse' default: description: An unexpected error response. schema: $ref: '#/definitions/google.rpc.Status' /pocket.gateway.Msg/UnstakeGateway: post: tags: - Msg operationId: GithubCompoktNetworkpoktrollMsg_UnstakeGateway parameters: - name: body in: body required: true schema: $ref: '#/definitions/pocket.gateway.MsgUnstakeGateway' responses: '200': description: A successful response. schema: $ref: '#/definitions/pocket.gateway.MsgUnstakeGatewayResponse' default: description: An unexpected error response. schema: $ref: '#/definitions/google.rpc.Status' /pocket.gateway.Msg/UpdateParam: post: tags: - Msg operationId: GithubCompoktNetworkpoktrollMsg_UpdateParamMixin10 parameters: - description: MsgUpdateParam is the Msg/UpdateParam request type to update a single param. name: body in: body required: true schema: $ref: '#/definitions/pocket.gateway.MsgUpdateParam' responses: '200': description: A successful response. schema: $ref: '#/definitions/pocket.gateway.MsgUpdateParamResponse' default: description: An unexpected error response. schema: $ref: '#/definitions/google.rpc.Status' /pocket.gateway.Msg/UpdateParams: post: tags: - Msg summary: 'UpdateParams defines a (governance) operation for updating the module parameters. The authority defaults to the x/gov module account.' operationId: GithubCompoktNetworkpoktrollMsg_UpdateParamsMixin10 parameters: - description: MsgUpdateParams is the Msg/UpdateParams request type. name: body in: body required: true schema: $ref: '#/definitions/pocket.gateway.MsgUpdateParams' responses: '200': description: A successful response. schema: $ref: '#/definitions/pocket.gateway.MsgUpdateParamsResponse' default: description: An unexpected error response. schema: $ref: '#/definitions/google.rpc.Status' /pocket.migration.Msg/ClaimMorseAccount: post: tags: - Msg operationId: GithubCompoktNetworkpoktrollMsg_ClaimMorseAccount parameters: - description: '- Execute a claim (one-time minting of tokens on Shannon) - Claim the balance of a given Morse account per on-chain MorseClaimableAccounts - Mint claimed balance to the given Shannon account NOTE: - A transaction can contain ONE OR MORE Morse account/actor claim messages AND has EXACTLY ONE signer. - The Shannon account specified must be the message signer - Authz grants MAY be used to delegate claiming authority to other Shannon accounts' name: body in: body required: true schema: $ref: '#/definitions/pocket.migration.MsgClaimMorseAccount' responses: '200': description: A successful response. schema: $ref: '#/definitions/pocket.migration.MsgClaimMorseAccountResponse' default: description: An unexpected error response. schema: $ref: '#/definitions/google.rpc.Status' /pocket.migration.Msg/ClaimMorseApplication: post: tags: - Msg operationId: GithubCompoktNetworkpoktrollMsg_ClaimMorseApplication parameters: - description: '- Execute a claim (one-time minting of tokens on Shannon) of total tokens owned by a Morse account - Mint claimed tokens to the given Shannon account - Stake that Shannon account as an application for the given service_config and same stake amount Next free index: 7' name: body in: body required: true schema: $ref: '#/definitions/pocket.migration.MsgClaimMorseApplication' responses: '200': description: A successful response. schema: $ref: '#/definitions/pocket.migration.MsgClaimMorseApplicationResponse' default: description: An unexpected error response. schema: $ref: '#/definitions/google.rpc.Status' /pocket.migration.Msg/ClaimMorseSupplier: post: tags: - Msg operationId: GithubCompoktNetworkpoktrollMsg_ClaimMorseSupplier parameters: - description: '- 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' name: body in: body required: true schema: $ref: '#/definitions/pocket.migration.MsgClaimMorseSupplier' responses: '200': description: A successful response. schema: $ref: '#/definitions/pocket.migration.MsgClaimMorseSupplierResponse' default: description: An unexpected error response. schema: $ref: '#/definitions/google.rpc.Status' /pocket.migration.Msg/ImportMorseClaimableAccounts: post: tags: - Msg operationId: GithubCompoktNetworkpoktrollMsg_ImportMorseClaimableAccounts parameters: - description: '- Create the on-chain MorseClaimableAccounts ONLY AND EXACTLY ONCE (per network / re-genesis) - Import Morse account state derived from Morse state export Next free index: 4' name: body in: body required: true schema: $ref: '#/definitions/pocket.migration.MsgImportMorseClaimableAccounts' responses: '200': description: A successful response. schema: $ref: '#/definitions/pocket.migration.MsgImportMorseClaimableAccountsResponse' default: description: An unexpected error response. schema: $ref: '#/definitions/google.rpc.Status' /pocket.migration.Msg/RecoverMorseAccount: post: tags: - Msg operationId: GithubCompoktNetworkpoktrollMsg_RecoverMorseAccount parameters: - description: '- Execute a one-time minting of tokens on Shannon based on tokens owned by the given Morse account - Credit the minted tokens to the balance of the given Shannon account - Migrate unclaimable staked and liquid Morse tokens as liquid Shannon tokens - MAY ONLY be executed by the authority - ONLY intended for use on accounts with invalid addresses and/or known lost private keys Next free index: 4' name: body in: body required: true schema: $ref: '#/definitions/pocket.migration.MsgRecoverMorseAccount' responses: '200': description: A successful response. schema: $ref: '#/definitions/pocket.migration.MsgRecoverMorseAccountResponse' default: description: An unexpected error response. schema: $ref: '#/definitions/google.rpc.Status' /pocket.migration.Msg/UpdateParams: post: tags: - Msg summary: 'UpdateParams defines a (governance) operation for updating the module parameters. The authority defaults to the x/gov module account.' operationId: GithubCompoktNetworkpoktrollMsg_UpdateParamsMixin18 parameters: - description: 'MsgUpdateParams is the Msg/UpdateParams request type. - Used for updating the migration module parameters via governance - All parameters must be supplied Next free index: 3' name: body in: body required: true schema: $ref: '#/definitions/pocket.migration.MsgUpdateParams' responses: '200': description: A successful response. schema: $ref: '#/definitions/pocket.migration.MsgUpdateParamsResponse' default: description: An unexpected error response. schema: $ref: '#/definitions/google.rpc.Status' /pocket.proof.Msg/CreateClaim: post: tags: - Msg operationId: GithubCompoktNetworkpoktrollMsg_CreateClaim parameters: - name: body in: body required: true schema: $ref: '#/definitions/pocket.proof.MsgCreateClaim' responses: '200': description: A successful response. schema: $ref: '#/definitions/pocket.proof.MsgCreateClaimResponse' default: description: An unexpected error response. schema: $ref: '#/definitions/google.rpc.Status' /pocket.proof.Msg/SubmitProof: post: tags: - Msg operationId: GithubCompoktNetworkpoktrollMsg_SubmitProof parameters: - name: body in: body required: true schema: $ref: '#/definitions/pocket.proof.MsgSubmitProof' responses: '200': description: A successful response. schema: $ref: '#/definitions/pocket.proof.MsgSubmitProofResponse' default: description: An unexpected error response. schema: $ref: '#/definitions/google.rpc.Status' /pocket.proof.Msg/UpdateParam: post: tags: - Msg operationId: GithubCompoktNetworkpoktrollMsg_UpdateParamMixin23 parameters: - description: MsgUpdateParam is the Msg/UpdateParam request type to update a single param. name: body in: body required: true schema: $ref: '#/definitions/pocket.proof.MsgUpdateParam' responses: '200': description: A successful response. schema: $ref: '#/definitions/pocket.proof.MsgUpdateParamResponse' default: description: An unexpected error response. schema: $ref: '#/definitions/google.rpc.Status' /pocket.proof.Msg/UpdateParams: post: tags: - Msg summary: 'UpdateParams defines a (governance) operation for updating the module parameters. The authority defaults to the x/gov module account.' operationId: GithubCompoktNetworkpoktrollMsg_UpdateParamsMixin23 parameters: - description: MsgUpdateParams is the Msg/UpdateParams request type to update all params at once. name: body in: body required: true schema: $ref: '#/definitions/pocket.proof.MsgUpdateParams' responses: '200': description: A successful response. schema: $ref: '#/definitions/pocket.proof.MsgUpdateParamsResponse' default: description: An unexpected error response. schema: $ref: '#/definitions/google.rpc.Status' /pocket.service.Msg/AddService: post: tags: - Msg operationId: GithubCompoktNetworkpoktrollMsg_AddService parameters: - description: 'MsgAddService defines a message for adding a new message to the network. Services can be added by any actor in the network making them truly permissionless.' name: body in: body required: true schema: $ref: '#/definitions/pocket.service.MsgAddService' responses: '200': description: A successful response. schema: $ref: '#/definitions/pocket.service.MsgAddServiceResponse' default: description: An unexpected error response. schema: $ref: '#/definitions/google.rpc.Status' /pocket.service.Msg/UpdateParam: post: tags: - Msg operationId: GithubCompoktNetworkpoktrollMsg_UpdateParamMixin31 parameters: - description: MsgUpdateParam is the Msg/UpdateParam request type to update a single param. name: body in: body required: true schema: $ref: '#/definitions/pocket.service.MsgUpdateParam' responses: '200': description: A successful response. schema: $ref: '#/definitions/pocket.service.MsgUpdateParamResponse' default: description: An unexpected error response. schema: $ref: '#/definitions/google.rpc.Status' /pocket.service.Msg/UpdateParams: post: tags: - Msg summary: 'UpdateParams defines a (governance) operation for updating the module parameters. The authority defaults to the x/gov module account.' operationId: GithubCompoktNetworkpoktrollMsg_UpdateParamsMixin31 parameters: - description: MsgUpdateParams is the Msg/UpdateParams request type. name: body in: body required: true schema: $ref: '#/definitions/pocket.service.MsgUpdateParams' responses: '200': description: A successful response. schema: $ref: '#/definitions/pocket.service.MsgUpdateParamsResponse' default: description: An unexpected error response. schema: $ref: '#/definitions/google.rpc.Status' /pocket.session.Msg/UpdateParam: post: tags: - Msg operationId: GithubCompoktNetworkpoktrollMsg_UpdateParamMixin35 parameters: - name: body in: body required: true schema: $ref: '#/definitions/pocket.session.MsgUpdateParam' responses: '200': description: A successful response. schema: $ref: '#/definitions/pocket.session.MsgUpdateParamResponse' default: description: An unexpected error response. schema: $ref: '#/definitions/google.rpc.Status' /pocket.session.Msg/UpdateParams: post: tags: - Msg summary: 'UpdateParams defines a (governance) operation for updating the module parameters. The authority defaults to the x/gov module account.' operationId: GithubCompoktNetworkpoktrollMsg_UpdateParamsMixin35 parameters: - description: MsgUpdateParams is the Msg/UpdateParams request type. name: body in: body required: true schema: $ref: '#/definitions/pocket.session.MsgUpdateParams' responses: '200': description: A successful response. schema: $ref: '#/definitions/pocket.session.MsgUpdateParamsResponse' default: description: An unexpected error response. schema: $ref: '#/definitions/google.rpc.Status' /pocket.shared.Msg/UpdateParam: post: tags: - Msg operationId: GithubCompoktNetworkpoktrollMsg_UpdateParamMixin42 parameters: - description: MsgUpdateParam is the Msg/UpdateParam request type to update a single param. name: body in: body required: true schema: $ref: '#/definitions/pocket.shared.MsgUpdateParam' responses: '200': description: A successful response. schema: $ref: '#/definitions/pocket.shared.MsgUpdateParamResponse' default: description: An unexpected error response. schema: $ref: '#/definitions/google.rpc.Status' /pocket.shared.Msg/UpdateParams: post: tags: - Msg summary: 'UpdateParams defines a (governance) operation for updating the module parameters. The authority defaults to the x/gov module account.' operationId: GithubCompoktNetworkpoktrollMsg_UpdateParamsMixin42 parameters: - description: MsgUpdateParams is the Msg/UpdateParams request type. name: body in: body required: true schema: $ref: '#/definitions/pocket.shared.MsgUpdateParams' responses: '200': description: A successful response. schema: $ref: '#/definitions/pocket.shared.MsgUpdateParamsResponse' default: description: An unexpected error response. schema: $ref: '#/definitions/google.rpc.Status' /pocket.supplier.Msg/StakeSupplier: post: tags: - Msg operationId: GithubCompoktNetworkpoktrollMsg_StakeSupplier parameters: - name: body in: body required: true schema: $ref: '#/definitions/pocket.supplier.MsgStakeSupplier' responses: '200': description: A successful response. schema: $ref: '#/definitions/pocket.supplier.MsgStakeSupplierResponse' default: description: An unexpected error response. schema: $ref: '#/definitions/google.rpc.Status' /pocket.supplier.Msg/UnstakeSupplier: post: tags: - Msg operationId: GithubCompoktNetworkpoktrollMsg_UnstakeSupplier parameters: - name: body in: body required: true schema: $ref: '#/definitions/pocket.supplier.MsgUnstakeSupplier' responses: '200': description: A successful response. schema: $ref: '#/definitions/pocket.supplier.MsgUnstakeSupplierResponse' default: description: An unexpected error response. schema: $ref: '#/definitions/google.rpc.Status' /pocket.supplier.Msg/UpdateParam: post: tags: - Msg operationId: GithubCompoktNetworkpoktrollMsg_UpdateParamMixin47 parameters: - description: MsgUpdateParam is the Msg/UpdateParam request type to update a single param. name: body in: body required: true schema: $ref: '#/definitions/pocket.supplier.MsgUpdateParam' responses: '200': description: A successful response. schema: $ref: '#/definitions/pocket.supplier.MsgUpdateParamResponse' default: description: An unexpected error response. schema: $ref: '#/definitions/google.rpc.Status' /pocket.supplier.Msg/UpdateParams: post: tags: - Msg summary: 'UpdateParams defines a (governance) operation for updating the module parameters. The authority defaults to the x/gov module account.' operationId: GithubCompoktNetworkpoktrollMsg_UpdateParamsMixin47 parameters: - description: MsgUpdateParams is the Msg/UpdateParams request type. name: body in: body required: true schema: $ref: '#/definitions/pocket.supplier.MsgUpdateParams' responses: '200': description: A successful response. schema: $ref: '#/definitions/pocket.supplier.MsgUpdateParamsResponse' default: description: An unexpected error response. schema: $ref: '#/definitions/google.rpc.Status' /pocket.tokenomics.Msg/UpdateParam: post: tags: - Msg operationId: GithubCompoktNetworkpoktrollMsg_UpdateParamMixin52 parameters: - description: MsgUpdateParam is the Msg/UpdateParam request type to update a single param. name: body in: body required: true schema: $ref: '#/definitions/pocket.tokenomics.MsgUpdateParam' responses: '200': description: A successful response. schema: $ref: '#/definitions/pocket.tokenomics.MsgUpdateParamResponse' default: description: An unexpected error response. schema: $ref: '#/definitions/google.rpc.Status' /pocket.tokenomics.Msg/UpdateParams: post: tags: - Msg summary: 'UpdateParams defines a (governance) operation for updating the module parameters. The authority defaults to the x/gov module account.' operationId: GithubCompoktNetworkpoktrollMsg_UpdateParamsMixin52 parameters: - description: MsgUpdateParams is the Msg/UpdateParams request type to update all params at once. name: body in: body required: true schema: $ref: '#/definitions/pocket.tokenomics.MsgUpdateParams' responses: '200': description: A successful response. schema: $ref: '#/definitions/pocket.tokenomics.MsgUpdateParamsResponse' default: description: An unexpected error response. schema: $ref: '#/definitions/google.rpc.Status' definitions: pocket.tokenomics.MsgUpdateParams: description: MsgUpdateParams is the Msg/UpdateParams request type to update all params at once. type: object properties: authority: description: authority is the address that controls the module (defaults to x/gov unless overwritten). type: string params: description: params defines the tokenomics parameters to update. $ref: '#/definitions/pocket.tokenomics.Params' pocket.proof.MsgCreateClaimResponse: type: object pocket.gateway.MsgStakeGateway: type: object properties: address: type: string title: The Bech32 address of the gateway stake: title: The total amount of uPOKT the gateway is staking. Must be ≥ to the current amount that the gateway has staked (if any) $ref: '#/definitions/cosmos.base.v1beta1.Coin' pocket.application.MsgUndelegateFromGateway: type: object properties: app_address: description: The Bech32 address of the application. type: string gateway_address: description: The Bech32 address of the gateway the application wants to undelegate from. type: string pocket.service.MsgUpdateParamsResponse: description: 'MsgUpdateParamsResponse defines the response structure for executing a MsgUpdateParams message.' type: object pocket.proof.MsgUpdateParams: description: MsgUpdateParams is the Msg/UpdateParams request type to update all params at once. type: object properties: authority: description: authority is the address that controls the module (defaults to x/gov unless overwritten). type: string params: description: 'params defines the x/proof parameters to update. NOTE: All parameters must be supplied.' $ref: '#/definitions/pocket.proof.Params' pocket.service.MsgUpdateParams: description: MsgUpdateParams is the Msg/UpdateParams request type. type: object properties: authority: description: authority is the address that controls the module (defaults to x/gov unless overwritten). type: string params: description: 'params defines the x/service parameters to update. NOTE: All parameters must be supplied.' $ref: '#/definitions/pocket.service.Params' pocket.supplier.MsgUnstakeSupplier: type: object properties: operator_address: type: string title: The Bech32 address of the operator (i.e. provider, non-custodial) signer: type: string title: The Bech32 address of the message signer (i.e. owner or operator) pocket.application.MsgDelegateToGateway: type: object properties: app_address: description: The Bech32 address of the application. type: string gateway_address: description: The Bech32 address of the gateway the application wants to delegate to. type: string pocket.application.MsgUpdateParams: description: MsgUpdateParams is the Msg/UpdateParams request type. type: object properties: authority: description: authority is the address that controls the module (defaults to x/gov unless overwritten). type: string params: description: 'params defines the x/application parameters to update. NOTE: All parameters must be supplied.' $ref: '#/definitions/pocket.application.Params' pocket.proof.MsgUpdateParamResponse: description: 'MsgUpdateParamResponse defines the response structure for executing a MsgUpdateParam message after a single param update.' type: object pocket.application.MsgDelegateToGatewayResponse: type: object pocket.application.MsgTransferApplication: type: object properties: destination_address: type: string source_address: type: string pocket.service.MsgAddService: description: 'MsgAddService defines a message for adding a new message to the network. Services can be added by any actor in the network making them truly permissionless.' type: object properties: owner_address: description: The Bech32 address of the service owner. type: string service: title: The Service being added to the network, including optional experimental metadata $ref: '#/definitions/pocket.shared.Service' pocket.application.MsgUnstakeApplication: type: object properties: address: type: string pocket.gateway.MsgStakeGatewayResponse: type: object pocket.supplier.MsgStakeSupplierResponse: type: object pocket.supplier.MsgStakeSupplier: type: object properties: operator_address: type: string title: The Bech32 address of the operator (i.e. provider, non-custodial) owner_address: type: string title: The Bech32 address of the owner (i.e. custodial, staker) services: type: array title: The list of services this supplier is staked to provide service for items: type: object $ref: '#/definitions/pocket.shared.SupplierServiceConfig' signer: type: string title: The Bech32 address of the message signer (i.e. owner or operator) stake: title: The total amount of uPOKT the supplier has staked. Must be ≥ to the current amount that the supplier has staked (if any) $ref: '#/definitions/cosmos.base.v1beta1.Coin' pocket.shared.MsgUpdateParam: description: MsgUpdateParam is the Msg/UpdateParam request type to update a single param. type: object properties: as_bytes: type: string format: byte as_string: type: string as_uint64: type: string format: uint64 authority: description: authority is the address that controls the module (defaults to x/gov unless overwritten). type: string name: type: string pocket.shared.ConfigOptions: description: "Enum to define configuration options\nTODO_RESEARCH: Should these be configs, SLAs or something else? There will be more discussion once we get closer to implementing onchain QoS.\n\n - UNKNOWN_CONFIG: Undefined config option\n - TIMEOUT: Timeout setting" type: string default: UNKNOWN_CONFIG enum: - UNKNOWN_CONFIG - TIMEOUT pocket.service.MsgUpdateParamResponse: description: 'MsgUpdateParamResponse defines the response structure for executing a MsgUpdateParam message after a single param update.' type: object cosmos.base.v1beta1.Coin: description: '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.' type: object properties: amount: type: string denom: type: string pocket.proof.MsgCreateClaim: type: object properties: root_hash: type: string format: byte title: root returned from smt.SMST#Root() session_header: $ref: '#/definitions/pocket.session.SessionHeader' supplier_operator_address: type: string pocket.service.MsgUpdateParam: description: MsgUpdateParam is the Msg/UpdateParam request type to update a single param. type: object properties: as_coin: $ref: '#/definitions/cosmos.base.v1beta1.Coin' as_uint64: type: string format: uint64 authority: description: authority is the address that controls the module (defaults to x/gov unless overwritten). type: string name: type: string title: 'The (name, as_type) tuple must match the corresponding name and type as specified in the `Params` message in `proof/params.proto.`' pocket.session.MsgUpdateParamsResponse: description: 'MsgUpdateParamsResponse defines the response structure for executing a MsgUpdateParams message.' type: object pocket.migration.MsgRecoverMorseAccount: description: '- Execute a one-time minting of tokens on Shannon based on tokens owned by the given Morse account - Credit the minted tokens to the balance of the given Shannon account - Migrate unclaimable staked and liquid Morse tokens as liquid Shannon tokens - MAY ONLY be executed by the authority - ONLY intended for use on accounts with invalid addresses and/or known lost private keys Next free index: 4' type: object title: 'MsgRecoverMorseAccount is used to:' properties: authority: description: 'The bech32-encoded address of the migration module authority account ("gov" module address by default). ONLY the authority, or its delegates, MAY recover Morse recoverable accounts.' type: string morse_src_address: type: string title: "EITHER:\n- The hex-encoded address of the recoverable Morse account whose stake(s) and/or balance(s) will be recovered.\n This address MAY be invalid but NEVER empty.\n E.g.: 00f9900606fa3d5c9179fc0c8513078a53a2073e\n- The name of a Morse module account whose balance will be recovered.\n E.g. \"dao\" or \"fee-collector\"" shannon_dest_address: description: 'The bech32-encoded address of the Shannon account to which the Morse account''s stake(s) and/or balance(s) will be minted (recovered) as liquid Shannon tokens.' type: string pocket.tokenomics.Params: description: Params defines the parameters for the tokenomics module. type: object properties: dao_reward_address: description: 'dao_reward_address is where the DAO''s portion of claims submitted are distributed. Bech32 cosmos address' type: string global_inflation_per_claim: description: 'global_inflation_per_claim is the percentage of a claim''s claimable uPOKT amount to be minted on settlement. GlobalMintTLM: Only used by the GlobalMintTLM at the end of claim settlement.' type: number format: double mint_allocation_percentages: description: 'mint_allocation_percentages represents the distribution of newly minted tokens. GlobalMintTLM: Only used by the GlobalMintTLM at the end of claim settlement.' $ref: '#/definitions/pocket.tokenomics.MintAllocationPercentages' mint_equals_burn_claim_distribution: description: 'mint_equals_burn_claim_distribution controls how the settlement amount is distributed when global inflation is disabled (global_inflation_per_claim = 0). MintEqualsBurnTLM: Only used by the MintEqualsBurnTLM at the end of claim settlement.' $ref: '#/definitions/pocket.tokenomics.MintEqualsBurnClaimDistribution' pocket.proof.MsgSubmitProofResponse: type: object pocket.migration.MsgRecoverMorseAccountResponse: description: 'MsgRecoverMorseAccountResponse is returned from MsgRecoverMorseAccount. - Indicates the morse_src_address of the recovered account - Reports the sum of any actor stakes and unstaked balance recovered - Reports the session end height in which the recovery was committed - Returns the destination Shannon address Next free index: 5' type: object pocket.shared.ConfigOption: type: object title: Key-value wrapper for config options, as proto maps can't be keyed by enums properties: key: title: Config option key $ref: '#/definitions/pocket.shared.ConfigOptions' value: type: string title: Config option value pocket.migration.MsgClaimMorseAccountResponse: description: 'MsgClaimMorseAccountResponse is returned from MsgClaimMorseAccount. - Indicates the morse_src_address of the claimed account - Reports the claimed balance and commit height Next free index: 4' type: object pocket.proof.MsgUpdateParamsResponse: description: 'MsgUpdateParamsResponse defines the response structure for executing a MsgUpdateParams message.' type: object pocket.migration.MsgImportMorseClaimableAccounts: description: '- Create the on-chain MorseClaimableAccounts ONLY AND EXACTLY ONCE (per network / re-genesis) - Import Morse account state derived from Morse state export Next free index: 4' type: object title: 'MsgImportMorseClaimableAccounts is used to:' properties: authority: description: authority is the address that controls the module (defaults to x/gov unless overwritten). type: string morse_account_state: title: Account state derived from Morse state export and `pocketd tx migration collect-morse-accounts` $ref: '#/definitions/pocket.migration.MorseAccountState' morse_account_state_hash: description: "Verification (high-level):\n $ pocketd tx migration collect-morse-accounts $<(pocket util export-genesis-for-reset)\n\nAdditional docs:\n - pocket util export-genesis-for-migration --help\n - pocketd tx migration collect-morse-accounts --help" type: string format: byte title: 'Validates the morse_account_state sha256 hash: - Transaction fails if hash doesn''t match on-chain computation - Off-chain social consensus should be reached before verification' pocket.session.Params: description: Params defines the parameters for the module. type: object properties: num_suppliers_per_session: description: 'num_suppliers_per_session is the maximum number of suppliers per session (application:supplier pair for a given session number).' type: string format: uint64 pocket.supplier.MsgUpdateParamResponse: type: object pocket.application.MsgUpdateParam: type: object properties: as_coin: $ref: '#/definitions/cosmos.base.v1beta1.Coin' as_uint64: type: string format: uint64 authority: description: authority is the address that controls the module (defaults to x/gov unless overwritten). type: string name: type: string pocket.shared.SupplierServiceConfig: type: object title: SupplierServiceConfig holds the service configuration the supplier stakes for properties: endpoints: type: array title: List of endpoints for the service items: type: object $ref: '#/definitions/pocket.shared.SupplierEndpoint' rev_share: type: array title: List of revenue share configurations for the service items: type: object $ref: '#/definitions/pocket.shared.ServiceRevenueShare' service_id: type: string title: The Service ID for which the supplier is configured pocket.supplier.MsgUpdateParam: description: MsgUpdateParam is the Msg/UpdateParam request type to update a single param. type: object properties: as_coin: $ref: '#/definitions/cosmos.base.v1beta1.Coin' authority: description: authority is the address that controls the module (defaults to x/gov unless overwritten). type: string name: type: string pocket.gateway.MsgUpdateParams: description: MsgUpdateParams is the Msg/UpdateParams request type. type: object properties: authority: description: authority is the address that controls the module (defaults to x/gov unless overwritten). type: string params: description: 'params defines the x/gateway parameters to update. NOTE: All parameters must be supplied.' $ref: '#/definitions/pocket.gateway.Params' pocket.shared.MsgUpdateParamResponse: description: 'MsgUpdateParamResponse defines the response structure for executing a MsgUpdateParam message after a single param update.' type: object pocket.session.MsgUpdateParam: type: object properties: as_uint64: type: string format: uint64 authority: description: authority is the address that controls the module (defaults to x/gov unless overwritten). type: string name: type: string pocket.tokenomics.MintEqualsBurnClaimDistribution: description: 'MintEqualsBurnClaimDistribution captures the distribution of claimable tokens. The sum of all tokens being burnt from the application''s stake must equal 1. GlobalMintEqualsBurnTLM: Only used by the GlobalMintEqualsBurnTLM at the end of claim settlement.' type: object properties: application: description: application - % of claimable tokens sent to the application account address. type: number format: double dao: description: dao - % of claimable tokens sent to the DAO reward address. type: number format: double proposer: description: 'TODO_TECHDEBT: Rename "proposer" to "validators" to reflect the work done in #1753. This will span all references to the term "proposer" across documentation, functions, protobufs, variables, tooling, etc.. proposer - % of claimable tokens sent to the block proposer (i.e. validator0) account address.' type: number format: double source_owner: description: source_owner - % of claimable tokens sent to the service source owner account address. type: number format: double supplier: description: supplier - % of claimable tokens sent to the block supplier account address. type: number format: double pocket.gateway.MsgUpdateParamsResponse: description: 'MsgUpdateParamsResponse defines the response structure for executing a MsgUpdateParams message.' type: object pocket.migration.MsgClaimMorseApplication: description: '- Execute a claim (one-time minting of tokens on Shannon) of total tokens owned by a Morse account - Mint claimed tokens to the given Shannon account - Stake that Shannon account as an application for the given service_config and same stake amount Next free index: 7' type: object title: 'MsgClaimMorseApplication is used to:' properties: morse_public_key: description: The ed25519 public key of the morse account with morse_src_address. type: string format: byte morse_signature: type: string format: byte title: 'The hex-encoded signature, by the Morse account, of this message (where this field is nil). I.e.: morse_signature = private_key.sign(marshal(MsgClaimMorseAccount{morse_signature: nil, ...}))' service_config: description: 'The services this application is staked to request service for. NOTE: This is not a repeated field, as in MsgStakeApplication, because an application can only be staked for one service.' $ref: '#/definitions/pocket.shared.ApplicationServiceConfig' shannon_dest_address: description: 'The bech32-encoded address of the Shannon account to which the claimed tokens will be minted and from which the application will be staked.' type: string shannon_signing_address: description: '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.' type: string pocket.migration.MsgUpdateParamsResponse: description: 'MsgUpdateParamsResponse defines the response structure for executing a MsgUpdateParams message. - Empty response on success' type: object pocket.migration.Params: description: 'Params defines the parameters for the module. Next free index: 4' type: object properties: allow_morse_account_import_overwrite: description: 'allow_morse_account_import_overwrite is a feature flag which is used to enable/disable the re-importing of Morse claimable accounts by the authority. Such a re-import will: - Ignore (i.e. leave) ALL claimed destination Shannon accounts/actors - Delete ALL existing onchain MorseClaimableAccounts - Import the new set of MorseClaimableAccounts from the provided MsgImportMorseClaimableAccounts This is useful for testing purposes, but should be disabled in production.' type: boolean morse_account_claiming_enabled: description: 'morse_account_claiming_enabled is a feature flag which is used to enable/disable the processing of Morse account/actor claim messages (i.e. `MsgClaimMorseAccount`, `MorseClaimApplication`, and `MorseClaimSupplier`).' type: boolean waive_morse_claim_gas_fees: type: boolean title: 'waive_morse_claim_gas_fees is a feature flag used to enable/disable the waiving of gas fees for txs that: - Contain exactly one secp256k1 signer - Contain at least one Morse account/actor claim messages - Do not contain any other messages other than Morse account/actor claim messages' pocket.shared.Service: type: object title: Service message to encapsulate unique and semantic identifiers for a service on the network properties: compute_units_per_relay: description: Compute units required per relay for this service type: string format: uint64 title: 'The cost of a single relay for this service in terms of compute units. Must be used alongside the global ''compute_units_to_tokens_multiplier'' to calculate the cost of a relay for this service. cost_per_relay_for_specific_service = compute_units_per_relay_for_specific_service * compute_units_to_tokens_multiplier_global_value' id: description: Unique identifier for the service type: string title: For example, what if we want to request a session for a certain service but with some additional configs that identify it? metadata: description: 'Optional metadata containing an experimental API specification for the service. When exposed via JSON, this field is base64 encoded and MUST be <= 100 KiB when decoded.' $ref: '#/definitions/pocket.shared.Metadata' name: description: (Optional) Human readable description of the service type: string title: 'TODO_POST_MAINNET: Rename service.name to service.description' owner_address: description: 'The owner address that created the service. It is the address that receives rewards based on the Service''s onchain usage It is the only address that can update the service configuration (e.g. compute_units_per_relay), or make other updates to it. The Bech32 address of the service owner / creator' type: string pocket.application.Params: description: Params defines the parameters for the module. type: object properties: max_delegated_gateways: description: 'max_delegated_gateways defines the maximum number of gateways that a single application can delegate to. This is used to prevent performance issues in case the relay ring signature becomes too large.' type: string format: uint64 min_stake: description: min_stake is the minimum stake in upokt that an application must have to remain staked. $ref: '#/definitions/cosmos.base.v1beta1.Coin' pocket.gateway.Params: description: Params defines the parameters for the module. type: object properties: min_stake: description: min_stake is the minimum amount of uPOKT that a gateway must stake. $ref: '#/definitions/cosmos.base.v1beta1.Coin' pocket.application.MsgUndelegateFromGatewayResponse: type: object pocket.migration.MsgClaimMorseApplicationResponse: description: 'MsgClaimMorseApplicationResponse is returned from MsgClaimMorseApplication. - Indicates the morse_src_address of the claimed account - Reports the unstaked balance claimed, application stake, and commit height - Returns the staked application Next free index: 6' type: object google.rpc.Status: type: object properties: code: type: integer format: int32 details: type: array items: type: object $ref: '#/definitions/google.protobuf.Any' message: type: string pocket.service.MsgAddServiceResponse: type: object pocket.shared.MsgUpdateParams: description: MsgUpdateParams is the Msg/UpdateParams request type. type: object properties: authority: description: authority is the address that controls the module (defaults to x/gov unless overwritten). type: string params: description: 'NOTE: All parameters must be supplied.' $ref: '#/definitions/pocket.shared.Params' pocket.application.MsgStakeApplication: type: object properties: address: description: The Bech32 address of the application. type: string services: type: array title: The list of services this application is staked to request service for items: type: object $ref: '#/definitions/pocket.shared.ApplicationServiceConfig' stake: title: The total amount of uPOKT the application has staked. Must be ≥ to the current amount that the application has staked (if any) $ref: '#/definitions/cosmos.base.v1beta1.Coin' pocket.migration.MsgClaimMorseSupplierResponse: description: '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' type: object pocket.tokenomics.MintAllocationPercentages: description: 'MintAllocationPercentages captures the distribution of newly minted tokens. The sum of all new tokens minted must equal 1. GlobalMintTLM: Only used by the GlobalMintTLM at the end of claim settlement. TODO_DISTANT_FUTURE: Remove this once global inflation is disabled in perpetuity.' type: object properties: application: description: application - % of newley minted tokens sent to the application account address. type: number format: double dao: description: dao - % of newley minted tokens sent to the DAO reward address. type: number format: double proposer: description: proposer - % of newley minted tokens sent to the block proposer (i.e. validator0 account address. type: number format: double source_owner: description: source_owner - % of newley minted tokens sent to the service source owner account address. type: number format: double supplier: description: supplier - % of newley minted tokens sent to the block supplier account address. type: number format: double pocket.migration.MsgClaimMorseAccount: description: '- Execute a claim (one-time minting of tokens on Shannon) - Claim the balance of a given Morse account per on-chain MorseClaimableAccounts - Mint claimed balance to the given Shannon account NOTE: - A transaction can contain ONE OR MORE Morse account/actor claim messages AND has EXACTLY ONE signer. - The Shannon account specified must be the message signer - Authz grants MAY be used to delegate claiming authority to other Shannon accounts' type: object title: 'MsgClaimMorseAccount is used to:' properties: morse_public_key: description: The ed25519 public key of the morse account with morse_src_address. type: string format: byte morse_signature: type: string format: byte title: 'The hex-encoded signature, by the Morse account, of this message (where this field is nil). I.e.: morse_signature = private_key.sign(marshal(MsgClaimMorseAccount{morse_signature: nil, ...}))' shannon_dest_address: description: The bech32-encoded address of the Shannon account to which the claimed balance will be minted. type: string shannon_signing_address: description: '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.' type: string pocket.migration.MsgImportMorseClaimableAccountsResponse: description: 'MsgImportMorseClaimableAccountsResponse is returned from MsgImportMorseClaimableAccounts. - Indicates the canonical hash of the imported MorseAccountState - Reports the number of claimable accounts imported Next free index: 3' type: object pocket.application.MsgUpdateParamsResponse: description: 'MsgUpdateParamsResponse defines the response structure for executing a MsgUpdateParams message.' type: object pocket.session.MsgUpdateParams: description: MsgUpdateParams is the Msg/UpdateParams request type. type: object properties: authority: description: authority is the address that controls the module (defaults to x/gov unless overwritten). type: string params: description: 'params defines the x/session parameters to update. NOTE: All parameters must be supplied.' $ref: '#/definitions/pocket.session.Params' pocket.supplier.MsgUpdateParams: description: MsgUpdateParams is the Msg/UpdateParams request type. type: object properties: authority: description: authority is the address that controls the module (defaults to x/gov unless overwritten). type: string params: description: 'params defines the x/supplier parameters to update. NOTE: All parameters must be supplied.' $ref: '#/definitions/pocket.supplier.Params' pocket.session.MsgUpdateParamResponse: type: object pocket.application.MsgStakeApplicationResponse: type: object pocket.supplier.MsgUnstakeSupplierResponse: type: object pocket.migration.MorseClaimableAccount: description: 'Next free index: 11' type: object title: "MorseClaimableAccount\n- Onchain (persisted) representation of a Morse account claimable as part of Morse -> Shannon migration\n- Created during MorseAccountState import (see: MsgImportMorseClaimableAccount)\n- Created ONLY ONCE and NEVER deleted (per morse_src_address per network / re-genesis),\n unless the allow_morse_account_import_overwrite migration param is enabled\n- Updated ONLY ONCE, when claimed (per morse_src_address per network / re-genesis)" properties: application_stake: title: Staked tokens for application actor corresponding to this account address $ref: '#/definitions/cosmos.base.v1beta1.Coin' claimed_at_height: type: string format: int64 title: 'Shannon height at which the account was claimed Intended to remain empty until the account is claimed' morse_output_address: description: "ONLY applicable to Morse node/supplier accounts.\nHex-encoded address of the Morse output account/wallet associated with the Morse node/supplier.\n- E.g.: 00f9900606fa3d5c9179fc0c8513078a53a2073e\n- Morse custodial (i.e. owner) address, which owns the staked tokens of the operator.\n See 'pocket nodes --help' for more information. Note that this refers to the Morse CLI." type: string morse_src_address: description: "Hex-encoded address of the Morse account whose balance will be claimed.\nIf this MorseClaimableAccount represents a Morse node/supplier:\n - Morse non-custodial (i.e. operator) address.\n - If morse_output_address is not set, this is the custodial address.\n - See 'pocket nodes --help' for more information. Note that this refers to the Morse CLI." type: string shannon_dest_address: type: string title: 'bech32-encoded address of the Shannon account to mint claimed balance Intended to remain empty until the account is claimed' supplier_stake: title: 'Staked tokens for supplier actor corresponding to this account address DEV_NOTE: Context for Morse: - Supplier = Servicer or Node (not a full node) in Morse - All Validators are Servicers; not all Servicers are Validators - Top 100 staked Servicers are validators (automatic) - Only accounts for servicer stake balance transition TODO_MAINNET(@Olshansk): Develop strategy for bootstrapping validators in Shannon with cosmos ecosystem' $ref: '#/definitions/cosmos.base.v1beta1.Coin' unstaked_balance: title: Unstaked upokt tokens (account balance) available for claiming $ref: '#/definitions/cosmos.base.v1beta1.Coin' unstaking_time: description: 'The ISO 8601 UTC timestamp after which the Morse node/supplier unbonding period will have elapsed. It reflects the "unbonding completion time" of the Morse node/supplier, but is called "unstaking time" to comply with necessary Morse data structures.' type: string format: date-time pocket.service.Params: description: Params defines the parameters for the module. type: object properties: add_service_fee: description: 'The amount of uPOKT required to add a new service. This will be deducted from the signer''s account balance, and transferred to the pocket network foundation.' $ref: '#/definitions/cosmos.base.v1beta1.Coin' target_num_relays: description: 'target_num_relays is the target for the EMA of the number of relays per session. Per service, onchain relay mining difficulty will be adjusted to maintain this target.' type: string format: uint64 pocket.migration.MsgUpdateParams: description: 'MsgUpdateParams is the Msg/UpdateParams request type. - Used for updating the migration module parameters via governance - All parameters must be supplied Next free index: 3' type: object properties: authority: description: authority is the address that controls the module (defaults to x/gov unless overwritten). type: string params: title: 'Module parameters to update NOTE: All parameters must be supplied' $ref: '#/definitions/pocket.migration.Params' pocket.proof.MsgUpdateParam: description: MsgUpdateParam is the Msg/UpdateParam request type to update a single param. type: object properties: as_bytes: type: string format: byte as_coin: $ref: '#/definitions/cosmos.base.v1beta1.Coin' as_float: type: number format: double authority: description: authority is the address that controls the module (defaults to x/gov unless overwritten). type: string name: type: string title: 'The (name, as_type) tuple must match the corresponding name and type as specified in the `Params`` message in `proof/params.proto.`' pocket.session.SessionHeader: description: 'SessionHeader is a lightweight header for a session that can be passed around. It is the minimal amount of data required to hydrate & retrieve all data relevant to the session.' type: object properties: application_address: description: The Bech32 address of the application. type: string service_id: type: string title: The service id this session is for session_end_block_height: description: 'Note that`session_end_block_height` is a derivative of (`start` + `num_blocks_per_session`) as governed by onchain params at the time of the session start. It is stored as an additional field to simplify business logic in case the number of blocks_per_session changes during the session. The height at which this session ended, this is the last block of the session' type: string format: int64 session_id: description: A unique pseudorandom ID for this session type: string title: 'NOTE: session_id can be derived from the above values using onchain but is included in the header for convenience' session_start_block_height: type: string format: int64 title: The height at which this session started pocket.migration.MsgClaimMorseSupplier: description: '- 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' type: object title: 'MsgClaimMorseSupplier is used to:' properties: morse_node_address: type: string title: 'The hex-encoded address of the Morse non-custodial (i.e. operator) account. - Unstaked balance will be migrated 1:1 - Stake will be migrated 1:1 from morse_node_address to shannon_operator_address - Morse non-custodial (i.e. operator) address. If morse_output_address is not set, this is the custodial address. - See ''pocket nodes --help'' for more information. Note that this refers to the Morse CLI. E.g.: 00f9900606fa3d5c9179fc0c8513078a53a2073e' morse_public_key: type: string format: byte title: "The ed25519 public key of EITHER the Morse node/supplier operator OR owner account.\n- MUST correspond to the private key which was used to produce the morse_signature.\n- MUST correspond to ONE OF THE FOLLOWING:\n - morse_node_address\n - morse_output_address" morse_signature: type: string format: byte title: "The hex-encoded signature, of this message (where this field is nil).\nI.e.: morse_signature = private_key.sign(marshal(MsgClaimMorseSupplier{morse_signature: nil, ...}))\n- MUST match morse_public_key.\n- MUST be signed by ONE OF THE FOLLOWING:\n - Morse node account (i.e. operator); if signer_is_output_address is false\n - Morse output account (i.e. owner); if signer_is_output_address is true" services: description: The services this supplier is staked to provide service for. type: array items: type: object $ref: '#/definitions/pocket.shared.SupplierServiceConfig' shannon_operator_address: description: '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.' type: string shannon_owner_address: description: '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.' type: string shannon_signing_address: description: '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.' type: string signer_is_output_address: description: '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.' type: boolean pocket.application.MsgUpdateParamResponse: type: object pocket.application.MsgTransferApplicationResponse: type: object pocket.gateway.MsgUnstakeGateway: type: object properties: address: type: string title: The Bech32 address of the gateway pocket.proof.Params: description: Params defines the parameters for the module. type: object properties: proof_missing_penalty: description: 'proof_missing_penalty is the number of tokens (uPOKT) which should be slashed from a supplier when a proof is required (either via proof_requirement_threshold or proof_missing_penalty) but is not provided. TODO_MAINNET_MIGRATION: Consider renaming this to `proof_missing_penalty_upokt`.' $ref: '#/definitions/cosmos.base.v1beta1.Coin' proof_request_probability: description: 'proof_request_probability is the probability of a session requiring a proof if it''s cost (i.e. compute unit consumption) is below the ProofRequirementThreshold.' type: number format: double proof_requirement_threshold: description: 'proof_requirement_threshold is the session cost (i.e. compute unit consumption) threshold which asserts that a session MUST have a corresponding proof when its cost is equal to or above the threshold. This is in contrast to the this requirement being determined probabilistically via ProofRequestProbability. TODO_MAINNET_MIGRATION: Consider renaming this to `proof_requirement_threshold_upokt`.' $ref: '#/definitions/cosmos.base.v1beta1.Coin' proof_submission_fee: description: 'proof_submission_fee is the number of tokens (uPOKT) which should be paid by the supplier operator when submitting a proof. This is needed to account for the cost of storing proofs onchain and prevent spamming (i.e. sybil bloat attacks) the network with non-required proofs. TODO_MAINNET_MIGRATION: Consider renaming this to `proof_submission_fee_upokt`.' $ref: '#/definitions/cosmos.base.v1beta1.Coin' pocket.shared.ServiceRevenueShare: type: object title: ServiceRevenueShare message to hold revenue share configuration details properties: address: type: string title: The Bech32 address of the revenue share recipient rev_share_percentage: type: string format: uint64 title: The percentage of revenue share the recipient will receive pocket.supplier.Params: description: Params defines the parameters for the module. type: object properties: min_stake: description: 'min_stake is the minimum amount of uPOKT that a supplier must stake to be included in network sessions and remain staked.' $ref: '#/definitions/cosmos.base.v1beta1.Coin' staking_fee: description: staking_fee is the fee charged by the protocol for staking a supplier. $ref: '#/definitions/cosmos.base.v1beta1.Coin' pocket.gateway.MsgUnstakeGatewayResponse: type: object pocket.proof.MsgSubmitProof: type: object properties: proof: type: string format: byte title: serialized version of *smt.SparseCompactMerkleClosestProof session_header: $ref: '#/definitions/pocket.session.SessionHeader' supplier_operator_address: type: string pocket.shared.RPCType: description: "- UNKNOWN_RPC: Undefined RPC type\n - GRPC: gRPC\n - WEBSOCKET: WebSocket\n - JSON_RPC: JSON-RPC\n - REST: REST\n - COMET_BFT: CometBFT (REST + JSON-RPC)" type: string title: Enum to define RPC types default: UNKNOWN_RPC enum: - UNKNOWN_RPC - GRPC - WEBSOCKET - JSON_RPC - REST - COMET_BFT pocket.shared.ApplicationServiceConfig: type: object title: ApplicationServiceConfig holds the service configuration the application stakes for properties: service_id: type: string title: The Service ID for which the application is configured pocket.tokenomics.MsgUpdateParam: description: MsgUpdateParam is the Msg/UpdateParam request type to update a single param. type: object properties: as_float: type: number format: double as_mint_allocation_percentages: $ref: '#/definitions/pocket.tokenomics.MintAllocationPercentages' as_mint_equals_burn_claim_distribution: $ref: '#/definitions/pocket.tokenomics.MintEqualsBurnClaimDistribution' as_string: type: string authority: description: authority is the address that controls the module (defaults to x/gov unless overwritten). type: string name: type: string title: The (name, as_type) tuple must match the corresponding name and type as specified in the `Params` message in `proof/params.proto.` pocket.shared.MsgUpdateParamsResponse: description: 'MsgUpdateParamsResponse defines the response structure for executing a MsgUpdateParams message.' type: object pocket.tokenomics.MsgUpdateParamResponse: description: MsgUpdateParamResponse defines the response structure for executing a MsgUpdateParam message after a single param update. type: object pocket.gateway.MsgUpdateParamResponse: type: object google.protobuf.Any: type: object properties: '@type': type: string additionalProperties: {} pocket.supplier.MsgUpdateParamsResponse: description: 'MsgUpdateParamsResponse defines the response structure for executing a MsgUpdateParams message.' type: object pocket.shared.Params: description: Params defines the parameters for the module. type: object properties: application_unbonding_period_sessions: description: 'application_unbonding_period_sessions is the number of sessions that an application must wait after unstaking before their staked assets are moved to their account balance. Onchain business logic requires, and ensures, that the corresponding block count of the application unbonding period will exceed the end of its corresponding proof window close height.' type: string format: uint64 claim_window_close_offset_blocks: description: 'claim_window_close_offset_blocks is the number of blocks after the claim window open height, at which the claim window closes.' type: string format: uint64 claim_window_open_offset_blocks: description: 'claim_window_open_offset_blocks is the number of blocks after the session grace period height, at which the claim window opens.' type: string format: uint64 compute_unit_cost_granularity: description: "compute_unit_cost_granularity is the fraction of the base unit (uPOKT) used\nto represent the smallest price of a single compute unit.\ncompute_unit_cost_granularity defines the smallest fraction of uPOKT that can represent\nthe cost of a single compute unit.\n\nIt acts as a denominator in the formula:\n\n compute_unit_cost_in_uPOKT = compute_units_to_tokens_multiplier / compute_unit_cost_granularity\n\nThis enables high-precision pricing of compute units using integer math.\nFor example:\n\n+-------------------------------+---------------------------------------------+\n| compute_unit_cost_granularity | compute_units_to_tokens_multiplier unit |\n+-------------------------------+---------------------------------------------+\n| 1 | uPOKT |\n| 1_000 | nPOKT (nanoPOKT, 1e-3 uPOKT) |\n| 1_000_000 | pPOKT (picoPOKT, 1e-6 uPOKT) |\n+-------------------------------+---------------------------------------------+\n\n⚠️ Note: This value is a configurable global network parameter (not a constant).\nIt must be a power of 10, allowing precise denomination shifts without affecting\nongoing sessions. This prevents sessions from settling using parameters that\nwere not in effect during their creation." type: string format: uint64 compute_units_to_tokens_multiplier: description: 'The amount of tokens that a compute unit should translate to when settling a session. It is denominated in fractional uPOKT (1/compute_unit_cost_granularity) DEV_NOTE: This used to be under x/tokenomics but has been moved here to avoid cyclic dependencies.' type: string format: uint64 gateway_unbonding_period_sessions: description: 'gateway_unbonding_period_sessions is the number of sessions that a gateway must wait after unstaking before their staked assets are moved to its account balance.' type: string format: uint64 grace_period_end_offset_blocks: description: 'grace_period_end_offset_blocks is the number of blocks, after the session end height, during which the supplier can still service payable relays. Suppliers will need to recreate a claim for the previous session (if already created) to get paid for the additional relays.' type: string format: uint64 num_blocks_per_session: description: num_blocks_per_session is the number of blocks between the session start & end heights. type: string format: uint64 proof_window_close_offset_blocks: description: 'proof_window_close_offset_blocks is the number of blocks after the proof window open height, at which the proof window closes.' type: string format: uint64 proof_window_open_offset_blocks: description: 'proof_window_open_offset_blocks is the number of blocks after the claim window close height, at which the proof window opens.' type: string format: uint64 supplier_unbonding_period_sessions: description: 'supplier_unbonding_period_sessions is the number of sessions that a supplier must wait after unstaking before their staked assets are moved to their account balance. Onchain business logic requires, and ensures, that the corresponding block count of the unbonding period will exceed the end of any active claim & proof lifecycles.' type: string format: uint64 pocket.tokenomics.MsgUpdateParamsResponse: description: MsgUpdateParamsResponse defines the response structure for executing a MsgUpdateParams message. type: object pocket.gateway.MsgUpdateParam: description: MsgUpdateParam is the Msg/UpdateParam request type to update a single param. type: object properties: as_coin: $ref: '#/definitions/cosmos.base.v1beta1.Coin' authority: description: authority is the address that controls the module (defaults to x/gov unless overwritten). type: string name: type: string pocket.shared.SupplierEndpoint: type: object title: SupplierEndpoint message to hold service configuration details properties: configs: type: array title: Additional configuration options for the endpoint items: type: object $ref: '#/definitions/pocket.shared.ConfigOption' rpc_type: title: Type of RPC exposed on the url above $ref: '#/definitions/pocket.shared.RPCType' url: type: string title: URL of the endpoint pocket.migration.MorseAccountState: type: object title: 'MorseAccountState - Onchain representation of all account state to be migrated from Morse - NEVER persisted onchain - Dependency of the MsgImportMorseClaimableAccount handler - Main purpose: exposes #GetHash() for verifying integrity of all MorseClaimableAccounts' properties: accounts: type: array items: type: object $ref: '#/definitions/pocket.migration.MorseClaimableAccount' pocket.shared.Metadata: description: 'Metadata message to hold additional metadata for a service. The raw bytes are stored on-chain and will be base64 encoded in JSON representations.' type: object properties: experimental_api_specs: description: 'EXPERIMENTAL: Serialized API spec limited to 100 KiB when decoded. TODO(@future): support dedicated openapi_ / openrpc_ fields once formats stabilize.' type: string format: byte pocket.application.MsgUnstakeApplicationResponse: type: object