openapi: 3.0.1 info: description: REST API for the Wasp node title: Wasp auth node API version: '0' servers: - url: / tags: - name: node paths: /v1/node/config: get: operationId: getConfiguration responses: '200': content: application/json: schema: additionalProperties: example: 'true' format: string type: string type: object description: Dumped configuration '401': content: application/json: schema: $ref: '#/components/schemas/ValidationError' description: Unauthorized (Wrong permissions, missing token) security: - Authorization: [] summary: Return the Wasp configuration tags: - node /v1/node/dks: post: operationId: generateDKS requestBody: content: application/json: schema: $ref: '#/components/schemas/DKSharesPostRequest' description: Request parameters required: true responses: '200': content: application/json: schema: $ref: '#/components/schemas/DKSharesInfo' description: DK shares info '401': content: application/json: schema: $ref: '#/components/schemas/ValidationError' description: Unauthorized (Wrong permissions, missing token) security: - Authorization: [] summary: Generate a new distributed key tags: - node x-codegen-request-body-name: DKSharesPostRequest /v1/node/dks/{sharedAddress}: get: operationId: getDKSInfo parameters: - description: SharedAddress (Hex Address) in: path name: sharedAddress required: true schema: format: string type: string responses: '200': content: application/json: schema: $ref: '#/components/schemas/DKSharesInfo' description: DK shares info '401': content: application/json: schema: $ref: '#/components/schemas/ValidationError' description: Unauthorized (Wrong permissions, missing token) '404': content: {} description: Shared address not found security: - Authorization: [] summary: Get information about the shared address DKS configuration tags: - node /v1/node/info: get: operationId: getInfo responses: '200': content: application/json: schema: $ref: '#/components/schemas/InfoResponse' description: Returns information about this node. '401': content: application/json: schema: $ref: '#/components/schemas/ValidationError' description: Unauthorized (Wrong permissions, missing token) security: - Authorization: [] summary: Returns private information about this node. tags: - node /v1/node/owner/certificate: get: operationId: ownerCertificate responses: '200': content: application/json: schema: $ref: '#/components/schemas/NodeOwnerCertificateResponse' description: Node Certificate '401': content: application/json: schema: $ref: '#/components/schemas/ValidationError' description: Unauthorized (Wrong permissions, missing token) security: - Authorization: [] summary: Gets the node owner tags: - node /v1/node/peers: get: operationId: getAllPeers responses: '200': content: application/json: schema: items: $ref: '#/components/schemas/PeeringNodeStatusResponse' type: array description: A list of all peers '401': content: application/json: schema: $ref: '#/components/schemas/ValidationError' description: Unauthorized (Wrong permissions, missing token) security: - Authorization: [] summary: Get basic information about all configured peers tags: - node /v1/node/peers/identity: get: operationId: getPeeringIdentity responses: '200': content: application/json: schema: $ref: '#/components/schemas/PeeringNodeIdentityResponse' description: This node peering identity '401': content: application/json: schema: $ref: '#/components/schemas/ValidationError' description: Unauthorized (Wrong permissions, missing token) security: - Authorization: [] summary: Get basic peer info of the current node tags: - node /v1/node/peers/trusted: get: operationId: getTrustedPeers responses: '200': content: application/json: schema: items: $ref: '#/components/schemas/PeeringNodeIdentityResponse' type: array description: A list of trusted peers '401': content: application/json: schema: $ref: '#/components/schemas/ValidationError' description: Unauthorized (Wrong permissions, missing token) security: - Authorization: [] summary: Get trusted peers tags: - node post: operationId: trustPeer requestBody: content: application/json: schema: $ref: '#/components/schemas/PeeringTrustRequest' description: Info of the peer to trust required: true responses: '200': content: {} description: Peer was successfully trusted '401': content: application/json: schema: $ref: '#/components/schemas/ValidationError' description: Unauthorized (Wrong permissions, missing token) security: - Authorization: [] summary: Trust a peering node tags: - node x-codegen-request-body-name: '' /v1/node/peers/trusted/{peer}: delete: operationId: distrustPeer parameters: - description: Name or PubKey (hex) of the trusted peer in: path name: peer required: true schema: format: string type: string responses: '200': content: {} description: Peer was successfully distrusted '401': content: application/json: schema: $ref: '#/components/schemas/ValidationError' description: Unauthorized (Wrong permissions, missing token) '404': content: {} description: Peer not found security: - Authorization: [] summary: Distrust a peering node tags: - node /v1/node/shutdown: post: operationId: shutdownNode responses: '200': content: {} description: The node has been shut down '401': content: application/json: schema: $ref: '#/components/schemas/ValidationError' description: Unauthorized (Wrong permissions, missing token) security: - Authorization: [] summary: Shut down the node tags: - node /v1/node/version: get: operationId: getVersion responses: '200': content: application/json: schema: $ref: '#/components/schemas/VersionResponse' description: Returns the version of the node. summary: Returns the node version. tags: - node components: schemas: ObjectType: example: s: s properties: s: format: string type: string xml: name: s type: object xml: name: ObjectType Protocol: example: protocol_version: Int: neg: true abs: - 1 - 1 reference_gas_price: Int: neg: true abs: - 1 - 1 epoch: Int: neg: true abs: - 1 - 1 system_state_version: Int: neg: true abs: - 1 - 1 epoch_duration_ms: Int: neg: true abs: - 1 - 1 epoch_start_timestamp_ms: Int: neg: true abs: - 1 - 1 properties: epoch: $ref: '#/components/schemas/BigInt' epoch_duration_ms: $ref: '#/components/schemas/BigInt' epoch_start_timestamp_ms: $ref: '#/components/schemas/BigInt' protocol_version: $ref: '#/components/schemas/BigInt' reference_gas_price: $ref: '#/components/schemas/BigInt' system_state_version: $ref: '#/components/schemas/BigInt' required: - epoch - epoch_duration_ms - epoch_start_timestamp_ms - protocol_version - reference_gas_price - system_state_version type: object xml: name: Protocol NodeOwnerCertificateResponse: example: certificate: certificate properties: certificate: description: Certificate stating the ownership. (Hex) format: string type: string xml: name: Certificate required: - certificate type: object xml: name: NodeOwnerCertificateResponse DKSharesInfo: example: publicKeyShares: - publicKeyShares - publicKeyShares address: address peerIdentities: - peerIdentities - peerIdentities threshold: 1 publicKey: publicKey peerIndex: 1 properties: address: description: New generated shared address. format: string type: string xml: name: Address peerIdentities: description: Identities of the nodes sharing the key. (Hex) items: format: string type: string type: array xml: name: PeerIdentities wrapped: true peerIndex: format: int32 minimum: 1 type: integer xml: name: PeerIndex publicKey: description: Used public key. (Hex) format: string type: string xml: name: PublicKey publicKeyShares: description: Public key shares for all the peers. (Hex) items: format: string type: string type: array xml: name: PublicKeyShares wrapped: true threshold: format: int32 minimum: 1 type: integer xml: name: Threshold required: - address - peerIdentities - peerIndex - publicKey - publicKeyShares - threshold type: object xml: name: DKSharesInfo VersionResponse: example: version: version properties: version: description: The version of the node format: string type: string xml: name: Version required: - version type: object xml: name: VersionResponse ValidationError: example: error: error missingPermission: missingPermission properties: error: format: string type: string xml: name: Error missingPermission: format: string type: string xml: name: MissingPermission required: - error - missingPermission type: object xml: name: ValidationError L1Params: example: protocol: protocol_version: Int: neg: true abs: - 1 - 1 reference_gas_price: Int: neg: true abs: - 1 - 1 epoch: Int: neg: true abs: - 1 - 1 system_state_version: Int: neg: true abs: - 1 - 1 epoch_duration_ms: Int: neg: true abs: - 1 - 1 epoch_start_timestamp_ms: Int: neg: true abs: - 1 - 1 baseToken: coinType: s: s totalSupply: 6 decimals: 0 name: name description: description tickerSymbol: tickerSymbol iconUrl: iconUrl properties: baseToken: $ref: '#/components/schemas/IotaCoinInfo' protocol: $ref: '#/components/schemas/Protocol' required: - baseToken - protocol type: object xml: name: L1Params IotaCoinInfo: example: coinType: s: s totalSupply: 6 decimals: 0 name: name description: description tickerSymbol: tickerSymbol iconUrl: iconUrl properties: coinType: $ref: '#/components/schemas/ObjectType' decimals: description: The token decimals format: int32 type: integer xml: name: Decimals description: description: The token description format: string type: string xml: name: Description iconUrl: description: The icon URL format: string type: string xml: name: IconURL name: description: The base token name format: string type: string xml: name: Name tickerSymbol: description: The ticker symbol format: string type: string xml: name: Symbol totalSupply: description: The total supply of BaseToken format: int64 type: integer xml: name: TotalSupply required: - coinType - decimals - description - iconUrl - name - tickerSymbol - totalSupply type: object xml: name: IotaCoinInfo PeeringNodeStatusResponse: example: isAlive: true peeringURL: peeringURL name: name publicKey: publicKey numUsers: 0 isTrusted: true properties: isAlive: description: Whether or not the peer is activated format: boolean type: boolean xml: name: IsAlive isTrusted: format: boolean type: boolean xml: name: IsTrusted name: format: string type: string xml: name: Name numUsers: description: The amount of users attached to the peer format: int32 type: integer xml: name: NumUsers peeringURL: description: The peering URL of the peer format: string type: string xml: name: PeeringURL publicKey: description: The peers public key encoded in Hex format: string type: string xml: name: PublicKey required: - isAlive - isTrusted - name - numUsers - peeringURL - publicKey type: object xml: name: PeeringNodeStatusResponse PeeringTrustRequest: example: peeringURL: peeringURL name: name publicKey: publicKey properties: name: format: string type: string xml: name: Name peeringURL: description: The peering URL of the peer format: string type: string xml: name: PeeringURL publicKey: description: The peers public key encoded in Hex format: string type: string xml: name: PublicKey required: - name - peeringURL - publicKey type: object xml: name: PeeringTrustRequest InfoResponse: example: peeringURL: peeringURL l1Params: protocol: protocol_version: Int: neg: true abs: - 1 - 1 reference_gas_price: Int: neg: true abs: - 1 - 1 epoch: Int: neg: true abs: - 1 - 1 system_state_version: Int: neg: true abs: - 1 - 1 epoch_duration_ms: Int: neg: true abs: - 1 - 1 epoch_start_timestamp_ms: Int: neg: true abs: - 1 - 1 baseToken: coinType: s: s totalSupply: 6 decimals: 0 name: name description: description tickerSymbol: tickerSymbol iconUrl: iconUrl publicKey: publicKey version: version properties: l1Params: $ref: '#/components/schemas/L1Params' peeringURL: description: The net id of the node format: string type: string xml: name: PeeringURL publicKey: description: The public key of the node (Hex) format: string type: string xml: name: PublicKey version: description: The version of the node format: string type: string xml: name: Version required: - l1Params - peeringURL - publicKey - version type: object xml: name: InfoResponse DKSharesPostRequest: example: peerIdentities: - peerIdentities - peerIdentities timeoutMS: 1 threshold: 1 properties: peerIdentities: description: Names or hex encoded public keys of trusted peers to run DKG on. items: format: string type: string type: array xml: name: PeerPubKeysOrNames wrapped: true threshold: description: Should be =< len(PeerPublicIdentities) format: int32 minimum: 1 type: integer xml: name: Threshold timeoutMS: description: Timeout in milliseconds. format: int32 minimum: 1 type: integer xml: name: TimeoutMS required: - peerIdentities - threshold - timeoutMS type: object xml: name: DKSharesPostRequest PeeringNodeIdentityResponse: example: peeringURL: peeringURL name: name publicKey: publicKey isTrusted: true properties: isTrusted: format: boolean type: boolean xml: name: IsTrusted name: format: string type: string xml: name: Name peeringURL: description: The peering URL of the peer format: string type: string xml: name: PeeringURL publicKey: description: The peers public key encoded in Hex format: string type: string xml: name: PublicKey required: - isTrusted - name - peeringURL - publicKey type: object xml: name: PeeringNodeIdentityResponse BigInt: example: Int: neg: true abs: - 1 - 1 properties: Int: $ref: '#/components/schemas/Int' type: object xml: name: BigInt Int: example: neg: true abs: - 1 - 1 properties: abs: items: format: int32 type: integer type: array xml: name: abs wrapped: true neg: format: boolean type: boolean xml: name: neg type: object xml: name: Int securitySchemes: Authorization: description: JWT Token in: header name: Authorization type: apiKey externalDocs: description: Find out more about Wasp url: https://wiki.iota.org/smart-contracts/overview x-original-swagger-version: '2.0'