openapi: 3.2.0 info: description: This is the Aeternity node API. version: 7.3.0 title: Aeternity node Internal API termsOfService: https://www.aeternity.com/terms/ contact: url: https://github.com/aeternity/aeternity/issues servers: - url: /v3 tags: - name: Internal description: Internal API paths: /debug/accounts/beneficiary: get: tags: - Internal operationId: GetNodeBeneficiary description: Get node's beneficiary public key responses: '200': description: Successful operation content: application/json: schema: $ref: '#/components/schemas/PubKey' '404': description: Beneficiary error content: application/json: schema: $ref: '#/components/schemas/Error' '503': $ref: '#/components/responses/ServiceUnavailable' summary: Get node beneficiary x-summary-source: derived /debug/accounts/node: get: tags: - Internal operationId: GetNodePubkey description: Get node's public key parameters: - $ref: '#/components/parameters/intAsString' responses: '200': description: Successful operation content: application/json: schema: $ref: '#/components/schemas/PubKey' '404': description: Public key not found content: application/json: schema: $ref: '#/components/schemas/Error' '503': $ref: '#/components/responses/ServiceUnavailable' summary: Get node pubkey x-summary-source: derived /debug/channels/close/mutual: post: tags: - Internal operationId: PostChannelCloseMutual description: Get a channel_close_mutual transaction object parameters: - $ref: '#/components/parameters/intAsString' requestBody: content: application/json: schema: $ref: '#/components/schemas/ChannelCloseMutualTx' required: true responses: '200': description: Successful operation content: application/json: schema: $ref: '#/components/schemas/UnsignedTx' '400': description: Invalid transaction content: application/json: schema: $ref: '#/components/schemas/Error' '503': $ref: '#/components/responses/ServiceUnavailable' summary: Post channel close mutual x-summary-source: derived /debug/channels/close/solo: post: tags: - Internal operationId: PostChannelCloseSolo description: Get a channel_close_solo transaction object parameters: - $ref: '#/components/parameters/intAsString' requestBody: content: application/json: schema: $ref: '#/components/schemas/ChannelCloseSoloTx' required: true responses: '200': description: Successful operation content: application/json: schema: $ref: '#/components/schemas/UnsignedTx' '400': description: Invalid transaction content: application/json: schema: $ref: '#/components/schemas/Error' '503': $ref: '#/components/responses/ServiceUnavailable' summary: Post channel close solo x-summary-source: derived /debug/channels/create: post: tags: - Internal operationId: PostChannelCreate description: Get a channel_create transaction object parameters: - $ref: '#/components/parameters/intAsString' requestBody: content: application/json: schema: $ref: '#/components/schemas/ChannelCreateTx' required: true responses: '200': description: Successful operation content: application/json: schema: $ref: '#/components/schemas/UnsignedTx' '400': description: Invalid transaction content: application/json: schema: $ref: '#/components/schemas/Error' '404': description: Initiator not found content: application/json: schema: $ref: '#/components/schemas/Error' '503': $ref: '#/components/responses/ServiceUnavailable' summary: Post channel create x-summary-source: derived /debug/channels/deposit: post: tags: - Internal operationId: PostChannelDeposit description: Get a channel_deposit transaction object parameters: - $ref: '#/components/parameters/intAsString' requestBody: content: application/json: schema: $ref: '#/components/schemas/ChannelDepositTx' required: true responses: '200': description: Successful operation content: application/json: schema: $ref: '#/components/schemas/UnsignedTx' '400': description: Invalid transaction content: application/json: schema: $ref: '#/components/schemas/Error' '503': $ref: '#/components/responses/ServiceUnavailable' summary: Post channel deposit x-summary-source: derived /debug/channels/fsm-count: get: tags: - Internal operationId: GetChannelsFsmCount description: Get the number of currently active State Channel FSMs responses: '200': description: Successful operation content: application/json: schema: $ref: '#/components/schemas/CountResponse' '503': $ref: '#/components/responses/ServiceUnavailable' summary: Get channels fsm count x-summary-source: derived /debug/channels/set-delegates: post: tags: - Internal operationId: PostChannelSetDelegates description: Get a channel_set_delegates_tx transaction object parameters: - $ref: '#/components/parameters/intAsString' requestBody: content: application/json: schema: $ref: '#/components/schemas/ChannelSetDelegatesTx' required: true responses: '200': description: Successful operation content: application/json: schema: $ref: '#/components/schemas/UnsignedTx' '400': description: Invalid transaction content: application/json: schema: $ref: '#/components/schemas/Error' '503': $ref: '#/components/responses/ServiceUnavailable' summary: Post channel set delegates x-summary-source: derived /debug/channels/settle: post: tags: - Internal operationId: PostChannelSettle description: Get a channel_settle transaction object parameters: - $ref: '#/components/parameters/intAsString' requestBody: content: application/json: schema: $ref: '#/components/schemas/ChannelSettleTx' required: true responses: '200': description: Successful operation content: application/json: schema: $ref: '#/components/schemas/UnsignedTx' '400': description: Invalid transaction content: application/json: schema: $ref: '#/components/schemas/Error' '503': $ref: '#/components/responses/ServiceUnavailable' summary: Post channel settle x-summary-source: derived /debug/channels/slash: post: tags: - Internal operationId: PostChannelSlash description: Get a channel_slash transaction object parameters: - $ref: '#/components/parameters/intAsString' requestBody: content: application/json: schema: $ref: '#/components/schemas/ChannelSlashTx' required: true responses: '200': description: Successful operation content: application/json: schema: $ref: '#/components/schemas/UnsignedTx' '400': description: Invalid transaction content: application/json: schema: $ref: '#/components/schemas/Error' '503': $ref: '#/components/responses/ServiceUnavailable' summary: Post channel slash x-summary-source: derived /debug/channels/snapshot/solo: post: tags: - Internal operationId: PostChannelSnapshotSolo description: Get a channel_snapshot_solo transaction object parameters: - $ref: '#/components/parameters/intAsString' requestBody: content: application/json: schema: $ref: '#/components/schemas/ChannelSnapshotSoloTx' required: true responses: '200': description: Successful operation content: application/json: schema: $ref: '#/components/schemas/UnsignedTx' '400': description: Invalid transaction content: application/json: schema: $ref: '#/components/schemas/Error' '503': $ref: '#/components/responses/ServiceUnavailable' summary: Post channel snapshot solo x-summary-source: derived /debug/channels/withdraw: post: tags: - Internal operationId: PostChannelWithdraw description: Get a channel_withdrawal transaction object parameters: - $ref: '#/components/parameters/intAsString' requestBody: content: application/json: schema: $ref: '#/components/schemas/ChannelWithdrawTx' required: true responses: '200': description: Successful operation content: application/json: schema: $ref: '#/components/schemas/UnsignedTx' '400': description: Invalid transaction content: application/json: schema: $ref: '#/components/schemas/Error' '503': $ref: '#/components/responses/ServiceUnavailable' summary: Post channel withdraw x-summary-source: derived /debug/check-tx/pool/{hash}: get: tags: - Internal operationId: GetCheckTxInPool description: 'Check if a transaction in the pool can be included in a microblock or if it is blocked by something: not enough tokens, missing nonce or something else' parameters: - $ref: '#/components/parameters/intAsString' - $ref: '#/components/parameters/txHash' responses: '200': description: The transaction status content: application/json: schema: $ref: '#/components/schemas/CheckTxInPoolResponse' '404': description: Transaction is not in transaction pool content: application/json: schema: $ref: '#/components/schemas/Error' '503': $ref: '#/components/responses/ServiceUnavailable' summary: Get check tx in pool x-summary-source: derived /debug/contracts/call: post: tags: - Internal operationId: PostContractCall description: Get a contract_call transaction object parameters: - $ref: '#/components/parameters/intAsString' requestBody: content: application/json: schema: $ref: '#/components/schemas/ContractCallTx' required: true responses: '200': description: Successful operation content: application/json: schema: $ref: '#/components/schemas/UnsignedTx' '400': description: Invalid transaction content: application/json: schema: $ref: '#/components/schemas/Error' '404': description: Caller account or contract not found content: application/json: schema: $ref: '#/components/schemas/Error' '503': $ref: '#/components/responses/ServiceUnavailable' summary: Post contract call x-summary-source: derived /debug/contracts/create: post: tags: - Internal operationId: PostContractCreate description: Get a contract_create transaction object parameters: - $ref: '#/components/parameters/intAsString' requestBody: content: application/json: schema: $ref: '#/components/schemas/ContractCreateTx' required: true responses: '200': description: Successful operation content: application/json: schema: $ref: '#/components/schemas/CreateContractUnsignedTx' '400': description: Invalid transaction content: application/json: schema: $ref: '#/components/schemas/Error' '404': description: Owner account not found content: application/json: schema: $ref: '#/components/schemas/Error' '503': $ref: '#/components/responses/ServiceUnavailable' summary: Post contract create x-summary-source: derived /debug/crash: get: tags: - Internal operationId: GetCrashRequest description: This is a sample URI to simulate a request crash. Shall be used for test purposes only parameters: - $ref: '#/components/parameters/intAsString' responses: '200': description: This will never happen content: application/json: schema: $ref: '#/components/schemas/TokenSupply' '500': description: We always end up here content: application/json: schema: $ref: '#/components/schemas/Error' '503': $ref: '#/components/responses/ServiceUnavailable' summary: Get crash request x-summary-source: derived /debug/names/claim: post: tags: - Internal operationId: PostNameClaim description: Get a name_claim transaction object parameters: - $ref: '#/components/parameters/intAsString' requestBody: content: application/json: schema: $ref: '#/components/schemas/NameClaimTx' required: true responses: '200': description: Successful operation content: application/json: schema: $ref: '#/components/schemas/UnsignedTx' '400': description: Invalid transaction content: application/json: schema: $ref: '#/components/schemas/Error' '404': description: Account or name not found content: application/json: schema: $ref: '#/components/schemas/Error' '503': $ref: '#/components/responses/ServiceUnavailable' summary: Post name claim x-summary-source: derived /debug/names/commitment-id: get: tags: - Internal operationId: GetCommitmentId description: Compute commitment ID for a given salt and name parameters: - $ref: '#/components/parameters/intAsString' - in: query name: name description: Name required: true schema: type: string - in: query name: salt description: Salt required: true schema: type: integer minimum: 0 responses: '200': description: Successful operation content: application/json: schema: $ref: '#/components/schemas/CommitmentId' '400': description: Invalid name content: application/json: schema: $ref: '#/components/schemas/Error' '503': $ref: '#/components/responses/ServiceUnavailable' summary: Get commitment id x-summary-source: derived /debug/names/preclaim: post: tags: - Internal operationId: PostNamePreclaim description: Get a name_preclaim transaction object parameters: - $ref: '#/components/parameters/intAsString' requestBody: content: application/json: schema: $ref: '#/components/schemas/NamePreclaimTx' required: true responses: '200': description: Successful operation content: application/json: schema: $ref: '#/components/schemas/UnsignedTx' '400': description: Invalid transaction content: application/json: schema: $ref: '#/components/schemas/Error' '404': description: Account not found content: application/json: schema: $ref: '#/components/schemas/Error' '503': $ref: '#/components/responses/ServiceUnavailable' summary: Post name preclaim x-summary-source: derived /debug/names/revoke: post: tags: - Internal operationId: PostNameRevoke description: Get a name_revoke transaction object parameters: - $ref: '#/components/parameters/intAsString' requestBody: content: application/json: schema: $ref: '#/components/schemas/NameRevokeTx' required: true responses: '200': description: Successful operation content: application/json: schema: $ref: '#/components/schemas/UnsignedTx' '400': description: Invalid transaction content: application/json: schema: $ref: '#/components/schemas/Error' '404': description: Account or name not found content: application/json: schema: $ref: '#/components/schemas/Error' '503': $ref: '#/components/responses/ServiceUnavailable' summary: Post name revoke x-summary-source: derived /debug/names/transfer: post: tags: - Internal operationId: PostNameTransfer description: Get a name_transfer transaction object parameters: - $ref: '#/components/parameters/intAsString' requestBody: content: application/json: schema: $ref: '#/components/schemas/NameTransferTx' required: true responses: '200': description: Successful operation content: application/json: schema: $ref: '#/components/schemas/UnsignedTx' '400': description: Invalid transaction content: application/json: schema: $ref: '#/components/schemas/Error' '404': description: Account or name not found content: application/json: schema: $ref: '#/components/schemas/Error' '503': $ref: '#/components/responses/ServiceUnavailable' summary: Post name transfer x-summary-source: derived /debug/names/update: post: tags: - Internal operationId: PostNameUpdate description: Get a name_update transaction object parameters: - $ref: '#/components/parameters/intAsString' requestBody: content: application/json: schema: $ref: '#/components/schemas/NameUpdateTx' required: true responses: '200': description: Successful operation content: application/json: schema: $ref: '#/components/schemas/UnsignedTx' '400': description: Invalid transaction content: application/json: schema: $ref: '#/components/schemas/Error' '404': description: Account or oracle not found content: application/json: schema: $ref: '#/components/schemas/Error' '503': $ref: '#/components/responses/ServiceUnavailable' summary: Post name update x-summary-source: derived /debug/network: get: tags: - Internal operationId: GetNetworkStatus description: Get detailed analytics on peers parameters: - $ref: '#/components/parameters/intAsString' responses: '200': description: Successful operation content: application/json: schema: $ref: '#/components/schemas/NetworkStatus' '404': description: Analytics disabled content: application/json: schema: $ref: '#/components/schemas/Error' '503': $ref: '#/components/responses/ServiceUnavailable' summary: Get network status x-summary-source: derived /debug/oracles/extend: post: tags: - Internal operationId: PostOracleExtend description: Get an oracle_extend transaction object parameters: - $ref: '#/components/parameters/intAsString' requestBody: content: application/json: schema: $ref: '#/components/schemas/OracleExtendTx' required: true responses: '200': description: Successful operation content: application/json: schema: $ref: '#/components/schemas/UnsignedTx' '400': description: Invalid transaction content: application/json: schema: $ref: '#/components/schemas/Error' '404': description: Account not found content: application/json: schema: $ref: '#/components/schemas/Error' '503': $ref: '#/components/responses/ServiceUnavailable' summary: Post oracle extend x-summary-source: derived /debug/oracles/query: post: tags: - Internal operationId: PostOracleQuery description: Get an oracle_query transaction object parameters: - $ref: '#/components/parameters/intAsString' requestBody: content: application/json: schema: $ref: '#/components/schemas/OracleQueryTx' required: true responses: '200': description: Successful operation content: application/json: schema: $ref: '#/components/schemas/UnsignedTx' '400': description: Invalid transaction content: application/json: schema: $ref: '#/components/schemas/Error' '404': description: Account or oracle not found content: application/json: schema: $ref: '#/components/schemas/Error' '503': $ref: '#/components/responses/ServiceUnavailable' summary: Post oracle query x-summary-source: derived /debug/oracles/register: post: tags: - Internal operationId: PostOracleRegister description: Get a oracle_register transaction object parameters: - $ref: '#/components/parameters/intAsString' requestBody: content: application/json: schema: $ref: '#/components/schemas/OracleRegisterTx' required: true responses: '200': description: Successful operation content: application/json: schema: $ref: '#/components/schemas/UnsignedTx' '400': description: Invalid transaction content: application/json: schema: $ref: '#/components/schemas/Error' '404': description: Account not found content: application/json: schema: $ref: '#/components/schemas/Error' '503': $ref: '#/components/responses/ServiceUnavailable' summary: Post oracle register x-summary-source: derived /debug/oracles/respond: post: tags: - Internal operationId: PostOracleRespond description: Get an oracle_response transaction object parameters: - $ref: '#/components/parameters/intAsString' requestBody: content: application/json: schema: $ref: '#/components/schemas/OracleRespondTx' required: true responses: '200': description: Successful operation content: application/json: schema: $ref: '#/components/schemas/UnsignedTx' '400': description: Invalid transaction content: application/json: schema: $ref: '#/components/schemas/Error' '404': description: Oracle or query not found content: application/json: schema: $ref: '#/components/schemas/Error' '503': $ref: '#/components/responses/ServiceUnavailable' summary: Post oracle respond x-summary-source: derived /debug/peers: get: tags: - Internal operationId: GetPeers description: Get node Peers parameters: - $ref: '#/components/parameters/intAsString' responses: '200': description: successful operation content: application/json: schema: $ref: '#/components/schemas/Peers' '403': description: Info not enabled content: application/json: schema: $ref: '#/components/schemas/Error' '503': $ref: '#/components/responses/ServiceUnavailable' summary: Get peers x-summary-source: derived /debug/token-supply/height/{height}: get: tags: - Internal operationId: GetTokenSupplyByHeight description: Get total token supply at height parameters: - $ref: '#/components/parameters/intAsString' - $ref: '#/components/parameters/height' responses: '200': description: Total token supply at height divided in categories content: application/json: schema: $ref: '#/components/schemas/TokenSupply' '400': description: Height not available content: application/json: schema: $ref: '#/components/schemas/Error' '410': description: State data at the requested height has been garbage-collected content: application/json: schema: $ref: '#/components/schemas/Error' '503': $ref: '#/components/responses/ServiceUnavailable' summary: Get token supply by height x-summary-source: derived /debug/transactions/dry-run: post: tags: - Internal operationId: DryRunTxs description: Dry-run transactions on top of a given block. Supports all TXs except GAMetaTx, PayingForTx and OffchainTx. FATE contract-storage reads are metered at the size-proportional (Arcus) gas cost by default; only the returned gas amounts differ, the response schema is unchanged. Each repriced storage register read is floored at the currently activated protocol charge, so reported gas is never below the on-chain cost. parameters: - $ref: '#/components/parameters/intAsString' requestBody: content: application/json: schema: $ref: '#/components/schemas/DryRunInput' description: transactions required: true responses: '200': description: Dry-run result content: application/json: schema: $ref: '#/components/schemas/DryRunResults' '400': description: Invalid input content: application/json: schema: $ref: '#/components/schemas/Error' '403': description: Over the gas limit content: application/json: schema: $ref: '#/components/schemas/Error' '503': $ref: '#/components/responses/ServiceUnavailable' summary: Dry run txs x-summary-source: derived /debug/transactions/paying-for: post: tags: - Internal operationId: PostPayingFor description: Get a paying-for transaction object parameters: - $ref: '#/components/parameters/intAsString' requestBody: content: application/json: schema: $ref: '#/components/schemas/PayingForTx' description: A paying-for transaction required: true responses: '200': description: Successful operation content: application/json: schema: $ref: '#/components/schemas/UnsignedTx' '400': description: Invalid transaction content: application/json: schema: $ref: '#/components/schemas/Error' '404': description: Payer account not found content: application/json: schema: $ref: '#/components/schemas/Error' '503': $ref: '#/components/responses/ServiceUnavailable' summary: Post paying for x-summary-source: derived /debug/transactions/pending: get: tags: - Internal operationId: GetPendingTransactions parameters: - $ref: '#/components/parameters/intAsString' responses: '200': description: Successful operation content: application/json: schema: $ref: '#/components/schemas/SignedTxs' '503': $ref: '#/components/responses/ServiceUnavailable' summary: Get pending transactions x-summary-source: derived /debug/transactions/spend: post: tags: - Internal operationId: PostSpend description: Get a spend transaction object parameters: - $ref: '#/components/parameters/intAsString' requestBody: content: application/json: schema: $ref: '#/components/schemas/SpendTxInput' description: A spend transaction required: true responses: '200': description: Successful operation content: application/json: schema: $ref: '#/components/schemas/UnsignedTx' '400': description: Invalid transaction content: application/json: schema: $ref: '#/components/schemas/Error' '404': description: Sender account not found content: application/json: schema: $ref: '#/components/schemas/Error' '503': $ref: '#/components/responses/ServiceUnavailable' summary: Post spend x-summary-source: derived /key-blocks: post: tags: - Internal operationId: PostKeyBlock description: Post a mined key block requestBody: content: application/json: schema: $ref: '#/components/schemas/KeyBlock' description: Mined key block required: true responses: '200': description: Successful operation '400': description: Invalid block content: application/json: schema: $ref: '#/components/schemas/Error' '503': $ref: '#/components/responses/ServiceUnavailable' summary: Post key block x-summary-source: derived /node/operator/mempool/hash/{hash}: delete: tags: - Internal operationId: DeleteTxFromMempool description: Delete a pending transaction from the mempool parameters: - $ref: '#/components/parameters/txHash' responses: '200': description: The transaction was deleted from the pool content: application/json: schema: type: object properties: status: type: string '400': description: Invalid tx hash content: application/json: schema: $ref: '#/components/schemas/Error' '404': description: Transaction not in mempool content: application/json: schema: $ref: '#/components/schemas/Error' '503': $ref: '#/components/responses/ServiceUnavailable' summary: Delete tx from mempool x-summary-source: derived /node/operator/peers/count: get: tags: - Internal operationId: GetPeerCount description: Get the number of peers in the different pools. This is to be used to catch if a node loses connectivity parameters: - $ref: '#/components/parameters/intAsString' responses: '200': description: The different count of peers in the respective pools content: application/json: schema: $ref: '#/components/schemas/PeerCount' '503': $ref: '#/components/responses/ServiceUnavailable' summary: Get peer count x-summary-source: derived components: schemas: SignedTxs: type: object properties: transactions: type: array items: $ref: '#/components/schemas/SignedTx' ContractCreateTx: type: object properties: owner_id: $ref: '#/components/schemas/EncodedPubkey' nonce: $ref: '#/components/schemas/UInt64' code: $ref: '#/components/schemas/EncodedContractByteArray' vm_version: $ref: '#/components/schemas/UInt16' abi_version: $ref: '#/components/schemas/UInt16' deposit: $ref: '#/components/schemas/UInt' amount: $ref: '#/components/schemas/UInt' gas: $ref: '#/components/schemas/UInt64' gas_price: $ref: '#/components/schemas/UInt' fee: $ref: '#/components/schemas/UInt' ttl: $ref: '#/components/schemas/UInt64' call_data: $ref: '#/components/schemas/EncodedContractByteArray' required: - owner_id - code - vm_version - abi_version - deposit - amount - gas - gas_price - fee - call_data NameUpdateTx: type: object properties: name_id: $ref: '#/components/schemas/EncodedNameId' name_ttl: $ref: '#/components/schemas/UInt64' pointers: type: array items: $ref: '#/components/schemas/NamePointer' client_ttl: $ref: '#/components/schemas/UInt64' fee: $ref: '#/components/schemas/UInt' ttl: $ref: '#/components/schemas/UInt64' account_id: $ref: '#/components/schemas/EncodedPubkey' nonce: $ref: '#/components/schemas/UInt64' required: - name_id - name_ttl - client_ttl - pointers - fee - account_id NetworkStatus: type: object additionalProperties: $ref: '#/components/schemas/PeerDetails' NameTransferTx: type: object properties: name_id: $ref: '#/components/schemas/EncodedNameId' recipient_id: $ref: '#/components/schemas/EncodedPubkey' fee: $ref: '#/components/schemas/UInt' ttl: $ref: '#/components/schemas/UInt64' account_id: $ref: '#/components/schemas/EncodedPubkey' nonce: $ref: '#/components/schemas/UInt64' required: - name_id - recipient_id - fee - account_id DryRunResult: type: object properties: type: type: string result: type: string reason: type: string call_obj: $ref: '#/components/schemas/ContractCallObject' required: - type - result ChannelSnapshotSoloTx: type: object properties: channel_id: $ref: '#/components/schemas/EncodedPubkey' from_id: $ref: '#/components/schemas/EncodedPubkey' payload: description: Base64Check encoded byte array. Accepted on input as a plain 'ba_'-prefixed byte array (see aehttp_dispatch_int.erl's produce_tx(channel_snapshot_solo_tx, ...)), but returned by the node as a 'tx_'-prefixed transaction (see aesc_snapshot_solo_tx.erl) -- no single prefix pattern covers both. type: string ttl: $ref: '#/components/schemas/UInt64' fee: $ref: '#/components/schemas/UInt' nonce: $ref: '#/components/schemas/UInt64' required: - channel_id - from_id - payload - fee PeerCount: type: object properties: connected: type: object properties: inbound: $ref: '#/components/schemas/UInt64' outbound: $ref: '#/components/schemas/UInt64' available: type: object properties: verified: $ref: '#/components/schemas/UInt64' unverified: $ref: '#/components/schemas/UInt64' blocked: $ref: '#/components/schemas/UInt64' required: - connected - available - blocked CreateContractUnsignedTx: allOf: - $ref: '#/components/schemas/UnsignedTx' - type: object properties: contract_id: $ref: '#/components/schemas/EncodedPubkey' required: - contract_id UInt64: oneOf: - type: integer minimum: 0 maximum: 18446744073709552000 - type: string UInt16: oneOf: - type: integer minimum: 0 maximum: 65535 - type: string CountResponse: type: object properties: count: $ref: '#/components/schemas/UInt32' required: - count Delegates: oneOf: - type: array items: $ref: '#/components/schemas/EncodedPubkey' - type: object properties: initiator: type: array items: $ref: '#/components/schemas/EncodedPubkey' responder: type: array items: $ref: '#/components/schemas/EncodedPubkey' Event: type: object properties: address: $ref: '#/components/schemas/EncodedPubkey' topics: description: Event topics type: array items: $ref: '#/components/schemas/UInt' data: $ref: '#/components/schemas/EncodedContractByteArray' required: - address - topics - data Error: type: object properties: reason: type: string error_code: type: string required: - reason OffChainUpdate: type: object discriminator: propertyName: op properties: op: type: string required: - op GAAttachTx: type: object properties: owner_id: $ref: '#/components/schemas/EncodedPubkey' nonce: $ref: '#/components/schemas/UInt64' code: $ref: '#/components/schemas/EncodedContractByteArray' vm_version: $ref: '#/components/schemas/UInt16' abi_version: $ref: '#/components/schemas/UInt16' gas: $ref: '#/components/schemas/UInt64' gas_price: $ref: '#/components/schemas/UInt' fee: $ref: '#/components/schemas/UInt' ttl: $ref: '#/components/schemas/UInt64' call_data: $ref: '#/components/schemas/EncodedContractByteArray' auth_fun: description: Contract authorization function hash (hex encoded) type: string pattern: ^(0x|0X)?[a-fA-F0-9]+$ required: - owner_id - code - vm_version - abi_version - gas - gas_price - fee - call_data - auth_fun SpendTxInput: type: object properties: recipient_id: $ref: '#/components/schemas/EncodedPubkey' amount: $ref: '#/components/schemas/UInt' fee: $ref: '#/components/schemas/UInt' ttl: $ref: '#/components/schemas/UInt64' sender_id: $ref: '#/components/schemas/EncodedPubkey' nonce: $ref: '#/components/schemas/UInt64' payload: description: Base64Check encoded byte array, or a raw string required: - recipient_id - amount - fee - sender_id - payload ChannelSettleTx: type: object properties: channel_id: $ref: '#/components/schemas/EncodedPubkey' from_id: $ref: '#/components/schemas/EncodedPubkey' initiator_amount_final: $ref: '#/components/schemas/UInt' responder_amount_final: $ref: '#/components/schemas/UInt' ttl: $ref: '#/components/schemas/UInt64' fee: $ref: '#/components/schemas/UInt' nonce: $ref: '#/components/schemas/UInt64' required: - channel_id - from_id - initiator_amount_final - responder_amount_final - fee - nonce PayingForTx: type: object properties: payer_id: $ref: '#/components/schemas/EncodedPubkey' fee: $ref: '#/components/schemas/UInt' nonce: $ref: '#/components/schemas/UInt64' tx: $ref: '#/components/schemas/SignedTx' required: - payer_id - fee - tx UInt32: oneOf: - type: integer minimum: 0 maximum: 4294967295 - type: string NameClaimTx: type: object properties: name: type: string name_salt: $ref: '#/components/schemas/UInt' name_fee: $ref: '#/components/schemas/UInt' fee: $ref: '#/components/schemas/UInt' ttl: $ref: '#/components/schemas/UInt64' account_id: $ref: '#/components/schemas/EncodedPubkey' nonce: $ref: '#/components/schemas/UInt64' required: - name - name_salt - fee - account_id CheckTxInPoolResponse: type: object properties: status: type: string required: - status PeerDetails: type: object properties: host: description: Hostname of peer type: string port: $ref: '#/components/schemas/UInt32' first_seen: $ref: '#/components/schemas/UInt32' last_seen: $ref: '#/components/schemas/UInt32' genesis_hash: $ref: '#/components/schemas/EncodedHash' top_hash: $ref: '#/components/schemas/EncodedHash' top_difficulty: $ref: '#/components/schemas/UInt64' network_id: type: string node_version: type: string node_revision: type: string node_vendor: type: string node_os: type: string required: - host - port - first_seen - last_seen - genesis_hash - top_hash - top_difficulty TTL: type: object properties: type: type: string enum: - delta - block value: $ref: '#/components/schemas/UInt64' required: - type - value TokenSupply: type: object properties: accounts: $ref: '#/components/schemas/UInt' contracts: $ref: '#/components/schemas/UInt' contract_oracles: $ref: '#/components/schemas/UInt' locked: $ref: '#/components/schemas/UInt' oracles: $ref: '#/components/schemas/UInt' oracle_queries: $ref: '#/components/schemas/UInt' pending_rewards: $ref: '#/components/schemas/UInt' total: $ref: '#/components/schemas/UInt' ChannelSlashTx: type: object properties: channel_id: $ref: '#/components/schemas/EncodedPubkey' from_id: $ref: '#/components/schemas/EncodedPubkey' payload: description: Base64Check encoded byte array. Accepted on input as a plain 'ba_'-prefixed byte array (see aehttp_dispatch_int.erl's produce_tx(channel_slash_tx, ...)), but returned by the node as a 'tx_'-prefixed transaction (see aesc_slash_tx.erl) -- no single prefix pattern covers both. type: string ttl: $ref: '#/components/schemas/UInt64' fee: $ref: '#/components/schemas/UInt' nonce: $ref: '#/components/schemas/UInt64' poi: $ref: '#/components/schemas/EncodedProofOfInclusion' required: - channel_id - from_id - payload - fee - poi OracleRespondTx: type: object properties: query_id: $ref: '#/components/schemas/EncodedOracleQueryId' response: type: string response_ttl: $ref: '#/components/schemas/RelativeTTL' fee: $ref: '#/components/schemas/UInt' ttl: $ref: '#/components/schemas/UInt64' oracle_id: $ref: '#/components/schemas/EncodedPubkey' nonce: $ref: '#/components/schemas/UInt64' required: - query_id - response - response_ttl - fee - oracle_id ChannelCloseSoloTx: type: object properties: channel_id: $ref: '#/components/schemas/EncodedPubkey' from_id: $ref: '#/components/schemas/EncodedPubkey' payload: description: Base64Check encoded byte array. Accepted on input as a plain 'ba_'-prefixed byte array (see aehttp_dispatch_int.erl's produce_tx(channel_close_solo_tx, ...)), but returned by the node as a 'tx_'-prefixed transaction (see aesc_close_solo_tx.erl) -- no single prefix pattern covers both. type: string ttl: $ref: '#/components/schemas/UInt64' fee: $ref: '#/components/schemas/UInt' nonce: $ref: '#/components/schemas/UInt64' poi: $ref: '#/components/schemas/EncodedProofOfInclusion' required: - channel_id - from_id - payload - fee - poi EncodedTxByteArray: description: Base64Check encoded transaction type: string example: tx_+E8hAaEB4TK48d23oE5jt/qWR5pUu8UlpTGn8bwM5JISGQMGf7ABoQOvDVCf43V7alNbsUvTarXaCf7rjtWX36YLS4+JTa4jn4YPHaUyOAAAxRZ6Sg== pattern: ^tx_[0-9A-Za-z+/=]+$ Pow: type: array items: $ref: '#/components/schemas/UInt32' minItems: 42 maxItems: 42 DryRunResults: type: object properties: results: type: array description: results items: $ref: '#/components/schemas/DryRunResult' tx_events: type: array description: on-chain tx events items: $ref: '#/components/schemas/TxEvent' required: - results KeyBlock: type: object properties: hash: $ref: '#/components/schemas/EncodedHash' height: $ref: '#/components/schemas/UInt64' prev_hash: $ref: '#/components/schemas/EncodedHash' prev_key_hash: $ref: '#/components/schemas/EncodedHash' state_hash: $ref: '#/components/schemas/EncodedHash' miner: $ref: '#/components/schemas/EncodedPubkey' beneficiary: $ref: '#/components/schemas/EncodedPubkey' flags: $ref: '#/components/schemas/EncodedByteArray' target: $ref: '#/components/schemas/UInt32' pow: $ref: '#/components/schemas/Pow' nonce: $ref: '#/components/schemas/UInt64' time: $ref: '#/components/schemas/UInt64' version: $ref: '#/components/schemas/UInt32' info: $ref: '#/components/schemas/EncodedContractByteArray' required: - hash - height - prev_hash - prev_key_hash - state_hash - miner - beneficiary - target - time - version - info NamePointer: type: object properties: key: type: string encoded_key: $ref: '#/components/schemas/EncodedByteArray' id: $ref: '#/components/schemas/EncodedPubkey' required: - key - id CommitmentId: type: object properties: commitment_id: $ref: '#/components/schemas/EncodedCommitmentId' required: - commitment_id GAMetaTx: type: object properties: ga_id: $ref: '#/components/schemas/EncodedPubkey' abi_version: $ref: '#/components/schemas/UInt16' gas: $ref: '#/components/schemas/UInt64' gas_price: $ref: '#/components/schemas/UInt' fee: $ref: '#/components/schemas/UInt' ttl: $ref: '#/components/schemas/UInt64' auth_data: $ref: '#/components/schemas/EncodedContractByteArray' tx: $ref: '#/components/schemas/SignedTx' required: - ga_id - abi_version - gas - gas_price - fee - auth_data - tx TxBlockHeight: oneOf: - type: integer minimum: -1 maximum: 18446744073709552000 - type: string ChannelSetDelegatesTx: type: object properties: channel_id: $ref: '#/components/schemas/EncodedPubkey' from_id: $ref: '#/components/schemas/EncodedPubkey' initiator_delegate_ids: type: array items: $ref: '#/components/schemas/EncodedPubkey' responder_delegate_ids: type: array items: $ref: '#/components/schemas/EncodedPubkey' state_hash: $ref: '#/components/schemas/EncodedPubkey' round: $ref: '#/components/schemas/UInt64' payload: description: Base64Check encoded byte array. Accepted on input as a plain 'ba_'-prefixed byte array (see aehttp_dispatch_int.erl's produce_tx(channel_set_delegates_tx, ...)), but returned by the node as a 'tx_'-prefixed transaction (see aesc_set_delegates_tx.erl) -- no single prefix pattern covers both. type: string ttl: $ref: '#/components/schemas/UInt64' fee: $ref: '#/components/schemas/UInt' nonce: $ref: '#/components/schemas/UInt64' required: - channel_id - from_id - initiator_delegate_ids - responder_delegate_ids - state_hash - round - payload - fee DryRunAccount: type: object properties: pub_key: $ref: '#/components/schemas/EncodedPubkey' amount: $ref: '#/components/schemas/UInt' required: - pub_key - amount ContractCallTx: type: object properties: caller_id: $ref: '#/components/schemas/EncodedPubkey' nonce: $ref: '#/components/schemas/UInt64' contract_id: $ref: '#/components/schemas/EncodedPubkey' abi_version: $ref: '#/components/schemas/UInt16' fee: $ref: '#/components/schemas/UInt' ttl: $ref: '#/components/schemas/UInt64' amount: $ref: '#/components/schemas/UInt' gas: $ref: '#/components/schemas/UInt64' gas_price: $ref: '#/components/schemas/UInt' call_data: $ref: '#/components/schemas/EncodedContractByteArray' required: - caller_id - contract_id - abi_version - fee - amount - gas - gas_price - call_data Peers: type: object properties: peers: type: array description: All discovered peers items: $ref: '#/components/schemas/Peer' blocked: type: array description: All blocked peers items: $ref: '#/components/schemas/Peer' required: - peers - blocked DryRunInputItem: type: object properties: tx: $ref: '#/components/schemas/EncodedTxByteArray' tx_hash: $ref: '#/components/schemas/EncodedTxHash' call_req: $ref: '#/components/schemas/DryRunCallReq' EncodedStateTrees: description: Base64Check encoded state trees type: string pattern: ^ss_[0-9A-Za-z+/=]+$ SignedTx: type: object properties: tx: $ref: '#/components/schemas/Tx' block_height: $ref: '#/components/schemas/TxBlockHeight' block_hash: $ref: '#/components/schemas/EncodedHash' hash: $ref: '#/components/schemas/EncodedTxHash' encoded_tx: $ref: '#/components/schemas/EncodedTxByteArray' signatures: description: At least one signature is required unless for Generalized Account Meta transactions type: array minItems: 0 items: $ref: '#/components/schemas/EncodedSignature' required: - tx RelativeTTL: type: object properties: type: type: string enum: - delta value: $ref: '#/components/schemas/UInt64' required: - type - value ChannelWithdrawTx: type: object properties: channel_id: $ref: '#/components/schemas/EncodedPubkey' to_id: $ref: '#/components/schemas/EncodedPubkey' amount: $ref: '#/components/schemas/UInt' ttl: $ref: '#/components/schemas/UInt64' fee: $ref: '#/components/schemas/UInt' nonce: $ref: '#/components/schemas/UInt64' state_hash: $ref: '#/components/schemas/EncodedHash' round: $ref: '#/components/schemas/UInt64' required: - channel_id - to_id - amount - fee - nonce - state_hash - round UInt: oneOf: - type: integer minimum: 0 - type: string EncodedSignature: description: Base58Check encoded signature type: string example: sg_8hhU15cVMbukFj4FbdrFwwYnbzXYPnstu9PDnWZGbfQNpeHcB6tK1F3wvG1MPYySARgDRJYUh3YPJD3HctFwg6Y4rUGSR pattern: ^sg_\w+$ ChannelForceProgressTx: type: object properties: channel_id: $ref: '#/components/schemas/EncodedPubkey' from_id: $ref: '#/components/schemas/EncodedPubkey' payload: $ref: '#/components/schemas/EncodedTxByteArray' round: $ref: '#/components/schemas/UInt64' update: $ref: '#/components/schemas/OffChainUpdate' state_hash: $ref: '#/components/schemas/EncodedHash' ttl: $ref: '#/components/schemas/UInt64' fee: $ref: '#/components/schemas/UInt' nonce: $ref: '#/components/schemas/UInt64' offchain_trees: $ref: '#/components/schemas/EncodedStateTrees' required: - channel_id - from_id - payload - round - update - state_hash - fee OracleRegisterTx: type: object properties: query_format: type: string response_format: type: string query_fee: $ref: '#/components/schemas/UInt' oracle_ttl: $ref: '#/components/schemas/TTL' account_id: $ref: '#/components/schemas/EncodedPubkey' nonce: $ref: '#/components/schemas/UInt64' fee: $ref: '#/components/schemas/UInt' ttl: $ref: '#/components/schemas/UInt64' abi_version: $ref: '#/components/schemas/UInt16' required: - query_format - response_format - query_fee - fee - oracle_ttl - account_id ContractCallObject: type: object properties: caller_id: $ref: '#/components/schemas/EncodedPubkey' caller_nonce: $ref: '#/components/schemas/UInt64' height: $ref: '#/components/schemas/UInt64' contract_id: $ref: '#/components/schemas/EncodedPubkey' gas_price: $ref: '#/components/schemas/UInt' gas_used: $ref: '#/components/schemas/UInt64' log: type: array items: $ref: '#/components/schemas/Event' return_value: $ref: '#/components/schemas/EncodedContractByteArray' return_type: description: The status of the call 'ok | error | revert'. type: string enum: - ok - error - revert required: - caller_id - caller_nonce - height - contract_id - gas_price - gas_used - log - return_value - return_type TxEvent: type: object NameRevokeTx: type: object properties: name_id: $ref: '#/components/schemas/EncodedNameId' fee: $ref: '#/components/schemas/UInt' ttl: $ref: '#/components/schemas/UInt64' account_id: $ref: '#/components/schemas/EncodedPubkey' nonce: $ref: '#/components/schemas/UInt64' required: - name_id - fee - account_id EncodedByteArray: description: Base64Check encoded byte array type: string example: ba_AAAAAfy4hFE= pattern: ^ba_[0-9A-Za-z+/=]+$ ChannelDepositTx: type: object properties: channel_id: $ref: '#/components/schemas/EncodedPubkey' from_id: $ref: '#/components/schemas/EncodedPubkey' amount: $ref: '#/components/schemas/UInt' ttl: $ref: '#/components/schemas/UInt64' fee: $ref: '#/components/schemas/UInt' nonce: $ref: '#/components/schemas/UInt64' state_hash: $ref: '#/components/schemas/EncodedHash' round: $ref: '#/components/schemas/UInt64' required: - channel_id - from_id - amount - fee - nonce - state_hash - round ChannelCreateTx: type: object properties: initiator_id: $ref: '#/components/schemas/EncodedPubkey' initiator_amount: $ref: '#/components/schemas/UInt' responder_id: $ref: '#/components/schemas/EncodedPubkey' responder_amount: $ref: '#/components/schemas/UInt' channel_reserve: $ref: '#/components/schemas/UInt' lock_period: $ref: '#/components/schemas/UInt64' ttl: $ref: '#/components/schemas/UInt64' fee: $ref: '#/components/schemas/UInt' nonce: $ref: '#/components/schemas/UInt64' state_hash: $ref: '#/components/schemas/EncodedHash' delegate_ids: $ref: '#/components/schemas/Delegates' required: - initiator_id - initiator_amount - responder_id - responder_amount - channel_reserve - lock_period - fee - state_hash EncodedContractByteArray: description: Base64Check encoded contract byte array type: string example: cb_AAAAAfy4hFE= pattern: ^cb_[0-9A-Za-z+/=]+$ EncodedTxHash: description: Base58Check encoded transaction hash type: string example: th_2Zfo2ALfRkKQxEaUj3HhcUGyMrTqYpDMgr2u15fPanYD1d55kz pattern: ^th_\w+$ SpendTx: allOf: - $ref: '#/components/schemas/SpendTxInput' - required: - nonce OracleExtendTx: type: object properties: fee: $ref: '#/components/schemas/UInt' oracle_ttl: $ref: '#/components/schemas/RelativeTTL' oracle_id: $ref: '#/components/schemas/EncodedPubkey' nonce: $ref: '#/components/schemas/UInt64' ttl: $ref: '#/components/schemas/UInt64' required: - fee - oracle_ttl - oracle_id EncodedProofOfInclusion: description: Base64Check encoded proof of inclusion type: string pattern: ^pi_[0-9A-Za-z+/=]+$ PubKey: type: object properties: pub_key: $ref: '#/components/schemas/EncodedPubkey' required: - pub_key EncodedPubkey: description: Base58Check encoded tagged pubkey type: string DryRunCallContext: type: object properties: tx: $ref: '#/components/schemas/EncodedTxByteArray' tx_hash: $ref: '#/components/schemas/EncodedTxHash' stateful: description: This call will have effects on the next call in this dry-run (or not) type: boolean EncodedNameId: description: Base58Check encoded AENS name hash type: string example: nm_psy8tRXPzGxh6975H7K6XQcMFVsdrxJMt7YkzMY8oUTevutzw pattern: ^nm_\w+$ Peer: type: string description: Aeternity node EncodedCommitmentId: description: Base58Check encoded AENS commitment type: string example: cm_psy8tRXPzGxh6975H7K6XQcMFVsdrxJMt7YkzMY8oUTevutzw pattern: ^cm_\w+$ EncodedHash: description: Base58Check encoded tagged hash type: string OracleQueryTx: type: object properties: oracle_id: $ref: '#/components/schemas/EncodedPubkey' query: type: string query_fee: $ref: '#/components/schemas/UInt' query_ttl: $ref: '#/components/schemas/TTL' response_ttl: $ref: '#/components/schemas/RelativeTTL' fee: $ref: '#/components/schemas/UInt' ttl: $ref: '#/components/schemas/UInt64' sender_id: $ref: '#/components/schemas/EncodedPubkey' nonce: $ref: '#/components/schemas/UInt64' required: - oracle_id - query - query_fee - query_ttl - response_ttl - fee - sender_id DryRunInput: type: object properties: top: $ref: '#/components/schemas/EncodedHash' accounts: type: array description: Accounts items: $ref: '#/components/schemas/DryRunAccount' txs: type: array description: Txs items: $ref: '#/components/schemas/DryRunInputItem' tx_events: type: boolean default: false description: Collect and return on-chain tx events that would result from the call required: - txs NamePreclaimTx: type: object properties: commitment_id: $ref: '#/components/schemas/EncodedCommitmentId' fee: $ref: '#/components/schemas/UInt' ttl: $ref: '#/components/schemas/UInt64' account_id: $ref: '#/components/schemas/EncodedPubkey' nonce: $ref: '#/components/schemas/UInt64' required: - commitment_id - fee - account_id DryRunCallReq: type: object properties: calldata: $ref: '#/components/schemas/EncodedContractByteArray' contract: $ref: '#/components/schemas/EncodedPubkey' amount: $ref: '#/components/schemas/UInt' gas: $ref: '#/components/schemas/UInt' caller: $ref: '#/components/schemas/EncodedPubkey' nonce: $ref: '#/components/schemas/UInt64' abi_version: $ref: '#/components/schemas/UInt16' context: $ref: '#/components/schemas/DryRunCallContext' required: - calldata - contract EncodedTx: type: object properties: tx: $ref: '#/components/schemas/EncodedTxByteArray' required: - tx ChannelCloseMutualTx: type: object properties: channel_id: $ref: '#/components/schemas/EncodedPubkey' from_id: $ref: '#/components/schemas/EncodedPubkey' initiator_amount_final: $ref: '#/components/schemas/UInt' responder_amount_final: $ref: '#/components/schemas/UInt' ttl: $ref: '#/components/schemas/UInt64' fee: $ref: '#/components/schemas/UInt64' nonce: $ref: '#/components/schemas/UInt64' required: - channel_id - from_id - initiator_amount_final - responder_amount_final - fee - nonce UnsignedTx: $ref: '#/components/schemas/EncodedTx' EncodedOracleQueryId: description: Base58Check encoded oracle query id type: string example: oq_psy8tRXPzGxh6975H7K6XQcMFVsdrxJMt7YkzMY8oUTevutzw pattern: ^oq_\w+$ Tx: allOf: - type: object discriminator: propertyName: type properties: version: $ref: '#/components/schemas/UInt32' type: type: string enum: - SpendTx - ChannelCreateTx - ChannelDepositTx - ChannelWithdrawTx - ChannelForceProgressTx - ChannelCloseMutualTx - ChannelCloseSoloTx - ChannelSlashTx - ChannelSettleTx - ChannelSnapshotSoloTx - ChannelSetDelegatesTx - OracleRegisterTx - OracleExtendTx - OracleQueryTx - OracleRespondTx - NamePreclaimTx - NameClaimTx - NameUpdateTx - NameTransferTx - NameRevokeTx - ContractCreateTx - ContractCallTx - GAAttachTx - GAMetaTx - PayingForTx required: - version - type - anyOf: - $ref: '#/components/schemas/SpendTx' - $ref: '#/components/schemas/ChannelCreateTx' - $ref: '#/components/schemas/ChannelDepositTx' - $ref: '#/components/schemas/ChannelWithdrawTx' - $ref: '#/components/schemas/ChannelForceProgressTx' - $ref: '#/components/schemas/ChannelCloseMutualTx' - $ref: '#/components/schemas/ChannelCloseSoloTx' - $ref: '#/components/schemas/ChannelSlashTx' - $ref: '#/components/schemas/ChannelSettleTx' - $ref: '#/components/schemas/ChannelSnapshotSoloTx' - $ref: '#/components/schemas/ChannelSetDelegatesTx' - $ref: '#/components/schemas/OracleRegisterTx' - $ref: '#/components/schemas/OracleExtendTx' - $ref: '#/components/schemas/OracleQueryTx' - $ref: '#/components/schemas/OracleRespondTx' - $ref: '#/components/schemas/NamePreclaimTx' - $ref: '#/components/schemas/NameClaimTx' - $ref: '#/components/schemas/NameUpdateTx' - $ref: '#/components/schemas/NameTransferTx' - $ref: '#/components/schemas/NameRevokeTx' - $ref: '#/components/schemas/ContractCreateTx' - $ref: '#/components/schemas/ContractCallTx' - $ref: '#/components/schemas/GAAttachTx' - $ref: '#/components/schemas/GAMetaTx' - $ref: '#/components/schemas/PayingForTx' parameters: height: in: path name: height description: The height required: true schema: type: integer minimum: 0 maximum: 18446744073709552000 example: 42 txHash: in: path name: hash description: The hash of the transaction required: true schema: type: string example: th_2w75xjDjHEmphsHDSXrThRnPx6hSUiS7hhSRcuytJABZZ2KkdG intAsString: in: query name: int-as-string description: If this flag is set to true, the response will have all integers set as strings required: false schema: type: boolean default: false responses: ServiceUnavailable: description: 'The node is temporarily unable to handle the request: either its request queues are saturated (overload protection) or it has not yet reached a stable mode. Overload protection is applied to every endpoint, so this response can be returned by any operation. The Retry-After header tells the client how long to back off before retrying.' headers: Retry-After: description: Number of seconds to wait before retrying the request schema: type: integer minimum: 0 example: 3 content: application/json: schema: $ref: '#/components/schemas/Error' externalDocs: description: Find out more about Aeternity url: http://www.aeternity.com