swagger: '2.0' info: version: '1.1.0' title: Light client daemon to interface with Cosmos baseserver via REST description: Specification for the LCD provided by `gaiacli advanced rest-server` securityDefinitions: kms: type: basic paths: /version: get: summary: Version of the light client daemon description: Get the version of the LCD running locally to compare against expected responses: 200: description: Plaintext version i.e. "v0.5.0" /node_version: get: summary: Version of the connected node description: Get the version of the SDK running on the connected node to compare against expected responses: 200: description: Plaintext version i.e. "v0.5.0" /node_info: get: description: Only the node info. Block information can be queried via /block/latest summary: The propertied of the connected node produces: - application/json responses: 200: description: Node status schema: type: object properties: pub_key: $ref: '#/definitions/PubKey' moniker: type: string example: 159.89.198.221 network: type: string example: gaia-2 remote_addr: type: string listen_addr: type: string example: 192.168.56.1:26656 version: description: Tendermint version type: string example: 0.15.0 other: description: more information on versions type: array items: type: string /syncing: get: summary: Syncing state of node description: Get if the node is currently syning with other nodes responses: 200: description: '"true" or "false"' /keys: get: summary: List of accounts stored locally produces: - application/json responses: 200: description: Array of accounts schema: type: array items: $ref: '#/definitions/Account' post: summary: Create a new account locally consumes: - application/json parameters: - in: body name: account description: The account to create schema: type: object required: - name - password - seed properties: name: type: string password: type: string seed: type: string responses: 200: description: Returns address of the account created /keys/seed: get: summary: Create a new seed to create a new account with produces: - application/json responses: 200: description: 16 word Seed schema: type: string /keys/{name}: parameters: - in: path name: name description: Account name required: true type: string get: summary: Get a certain locally stored account produces: - application/json responses: 200: description: Locally stored account schema: $ref: "#/definitions/Account" 404: description: Account is not available put: summary: Update the password for this account in the KMS consumes: - application/json parameters: - in: body name: account description: The new and old password schema: type: object required: - new_password - old_password properties: new_password: type: string old_password: type: string responses: 200: description: Updated password 401: description: Password is wrong 404: description: Account is not available delete: summary: Remove an account consumes: - application/json parameters: - in: body name: account description: The password of the account to remove from the KMS schema: type: object required: - password properties: password: type: string responses: 200: description: Removed account 401: description: Password is wrong 404: description: Account is not available # /accounts/send: # post: # summary: Send coins (build -> sign -> send) # security: # - sign: [] # requestBody: # content: # application/json: # schema: # type: object # properties: # fees: # $ref: "#/definitions/Coins" # outputs: # type: array # items: # type: object # properties: # pub_key: # $ref: "#/definitions/PubKey" # amount: # type: array # items: # $ref: "#/definitions/Coins" # responses: # 202: # description: Tx was send and will probably be added to the next block # 400: # description: The Tx was malformated /accounts/{address}: parameters: - in: path name: address description: Account address in bech32 format required: true type: string get: summary: Get the account balances produces: - application/json responses: 200: description: Account balances schema: $ref: "#/definitions/Balance" 204: description: There is no data for the requested account. This is not a 404 as the account might exist, just does not hold data. /accounts/{address}/send: parameters: - in: path name: address description: Account address in bech32 format required: true type: string post: summary: Send coins (build -> sign -> send) security: - kms: [] consumes: - application/json parameters: - in: body name: account description: The password of the account to remove from the KMS schema: type: object properties: name: type: string password: type: string amount: type: array items: $ref: "#/definitions/Coins" chain_id: type: string squence: type: number responses: 202: description: Tx was send and will probably be added to the next block 400: description: The Tx was malformated /blocks/latest: get: summary: Get the latest block produces: - application/json responses: 200: description: The latest block schema: $ref: "#/definitions/Block" /blocks/{height}: parameters: - in: path name: height description: Block height required: true type: number get: summary: Get a block at a certain height produces: - application/json responses: 200: description: The block at a specific height schema: $ref: "#/definitions/Block" 404: description: Block at height is not available /validatorsets/latest: get: summary: Get the latest validator set produces: - application/json responses: 200: description: The validator set at the latest block height schema: type: object properties: block_height: type: number validators: type: array items: $ref: "#/definitions/Validator" /validatorsets/{height}: parameters: - in: path name: height description: Block height required: true type: number get: summary: Get a validator set a certain height produces: - application/json responses: 200: description: The validator set at a specific block height schema: type: object properties: block_height: type: number validators: type: array items: $ref: "#/definitions/Validator" 404: description: Block at height not available # /txs: # parameters: # - in: query # name: tag # schema: # type: string # example: "coin.sender=EE5F3404034C524501629B56E0DDC38FAD651F04" # required: true # - in: query # name: page # description: Pagination page # schema: # type: number # default: 0 # - in: query # name: size # description: Pagination size # schema: # type: number # default: 50 # get: # summary: Query Tx # responses: # 200: # description: All Tx matching the provided tags # content: # application/json: # schema: # type: array # items: # $ref: "#/definitions/Tx" # 404: # description: Pagination is out of bounds # /txs/sign: # post: # summary: Sign a Tx # description: Sign a Tx providing locally stored account and according password # security: # - sign: [] # requestBody: # content: # application/json: # schema: # $ref: "#/definitions/TxBuild" # responses: # 200: # description: The signed Tx # content: # application/json: # schema: # $ref: "#/definitions/TxSigned" # 401: # description: Account name and/or password where wrong # /txs/broadcast: # post: # summary: Send signed Tx # requestBody: # content: # application/json: # schema: # $ref: "#/definitions/TxSigned" # responses: # 202: # description: Tx was send and will probably be added to the next block # 400: # description: The Tx was malformated /txs/{hash}: parameters: - in: path name: hash description: Tx hash required: true type: string get: summary: Get a Tx by hash produces: - application/json responses: 200: description: Tx with the provided hash schema: $ref: "#/definitions/Tx" 404: description: Tx not available for provided hash # /delegates: # parameters: # - in: query # name: delegator # description: Query for all delegates a delegator has stake with # schema: # $ref: "#/definitions/Address" # get: # summary: Get a list of canidates/delegates/validators (optionally filtered by delegator) # responses: # 200: # description: List of delegates, filtered by provided delegator address # content: # application/json: # schema: # type: array # items: # $ref: "#/definitions/Delegate" # /delegates/bond: # post: # summary: Bond atoms (build -> sign -> send) # security: # - sign: [] # requestBody: # content: # application/json: # schema: # type: array # items: # type: object # properties: # amount: # $ref: "#/definitions/Coins" # pub_key: # $ref: "#/definitions/PubKey" # responses: # 202: # description: Tx was send and will probably be added to the next block # 400: # description: The Tx was malformated # /delegates/unbond: # post: # summary: Unbond atoms (build -> sign -> send) # security: # - sign: [] # requestBody: # content: # application/json: # schema: # type: array # items: # type: object # properties: # amount: # $ref: "#/definitions/Coins" # pub_key: # $ref: "#/definitions/PubKey" # responses: # 202: # description: Tx was send and will probably be added to the next block # 400: # description: The Tx was malformated # /delegates/{pubkey}: # parameters: # - in: path # name: pubkey # description: Pubkey of a delegate # required: true # schema: # type: string # example: 81B11E717789600CC192B26F452A983DF13B985EE75ABD9DD9E68D7BA007A958 # get: # summary: Get a certain canidate/delegate/validator # responses: # 200: # description: Delegate for specified pub_key # content: # application/json: # schema: # $ref: "#/definitions/Delegate" # 404: # description: No delegate found for provided pub_key # /delegates/{pubkey}/bond: # parameters: # - in: path # name: pubkey # description: Pubkey of a delegate # required: true # schema: # type: string # example: 81B11E717789600CC192B26F452A983DF13B985EE75ABD9DD9E68D7BA007A958 # post: # summary: Bond atoms (build -> sign -> send) # security: # - sign: [] # requestBody: # content: # application/json: # schema: # type: object # properties: # amount: # $ref: "#/definitions/Coins" # responses: # 202: # description: Tx was send and will probably be added to the next block # 400: # description: The Tx was malformated # /delegates/{pubkey}/unbond: # parameters: # - in: path # name: pubkey # description: Pubkey of a delegate # required: true # schema: # type: string # example: 81B11E717789600CC192B26F452A983DF13B985EE75ABD9DD9E68D7BA007A958 # post: # summary: Unbond atoms (build -> sign -> send) # security: # - sign: [] # requestBody: # content: # application/json: # schema: # type: object # properties: # amount: # $ref: "#/definitions/Coins" # responses: # 202: # description: Tx was send and will probably be added to the next block # 400: # description: The Tx was malformated definitions: Address: type: string description: bech32 encoded addres example: cosmosaccaddr:zgnkwr7eyyv643dllwfpdwensmgdtz89yu73zq ValidatorAddress: type: string description: bech32 encoded addres example: cosmosvaladdr:zgnkwr7eyyv643dllwfpdwensmgdtz89yu73zq PubKey: type: string description: bech32 encoded public key example: cosmosaccpub:zgnkwr7eyyv643dllwfpdwensmgdtz89yu73zq ValidatorPubKey: type: string description: bech32 encoded public key example: cosmosvalpub:zgnkwr7eyyv643dllwfpdwensmgdtz89yu73zq Coins: type: object properties: denom: type: string example: steak amount: type: number example: 50 Hash: type: string example: EE5F3404034C524501629B56E0DDC38FAD651F04 Tx: type: object properties: type: type: string enum: - stake/delegate data: type: object TxChain: type: object properties: type: type: string default: chain/tx data: type: object properties: chain_id: type: string example: gaia-2 expires_at: type: number example: 0 tx: type: object properties: type: type: string default: nonce data: type: object properties: sequence: type: number example: 0 signers: type: array items: type: object properties: chain: type: string example: '' app: type: string default: sigs addr: $ref: "#/definitions/Address" tx: $ref: "#/definitions/Tx" TxBuild: type: object properties: type: type: string default: sigs/one data: type: object properties: tx: $ref: "#/definitions/Tx" signature: type: object properties: Sig: type: string default: '' Pubkey: type: string default: '' TxSigned: type: object properties: type: type: string default: sigs/one data: type: object properties: tx: $ref: "#/definitions/Tx" signature: type: object properties: Sig: type: string example: 81B11E717789600CC192B26F452A983DF13B985EE75ABD9DD9E68D7BA007A958 Pubkey: $ref: "#/definitions/PubKey" Account: type: object properties: name: type: string example: Main Account address: $ref: "#/definitions/Address" pub_key: $ref: "#/definitions/PubKey" Balance: type: object properties: height: type: number example: 123456 coins: type: array items: $ref: "#/definitions/Coins" credit: type: array items: type: object BlockID: type: object properties: hash: $ref: "#/definitions/Hash" parts: type: object properties: total: type: number example: 0 hash: $ref: "#/definitions/Hash" Block: type: object properties: header: type: object properties: chain_id: type: string example: gaia-2 height: type: number example: 1 time: type: string example: '2017-12-30T05:53:09.287+01:00' num_txs: type: number example: 0 last_block_id: $ref: "#/definitions/BlockID" total_txs: type: number example: 35 last_commit_hash: $ref: "#/definitions/Hash" data_hash: $ref: "#/definitions/Hash" validators_hash: $ref: "#/definitions/Hash" consensus_hash: $ref: "#/definitions/Hash" app_hash: $ref: "#/definitions/Hash" last_results_hash: $ref: "#/definitions/Hash" evidence_hash: $ref: "#/definitions/Hash" txs: type: array items: $ref: "#/definitions/Tx" evidence: type: array items: type: object last_commit: type: object properties: blockID: $ref: "#/definitions/BlockID" precommits: type: array items: type: object Validator: type: object properties: address: $ref: '#/definitions/ValidatorAddress' pub_key: $ref: "#/definitions/ValidatorPubKey" power: type: number example: 1000 accum: type: number example: 1000 # Added by API Auto Mocking Plugin host: virtserver.swaggerhub.com basePath: /faboweb1/Cosmos-LCD-2/1.0.0 schemes: - https