IOTA corecontracts API
The corecontracts API from IOTA — 18 operation(s) for corecontracts.
The corecontracts API from IOTA — 18 operation(s) for corecontracts.
openapi: 3.0.1
info:
description: REST API for the Wasp node
title: Wasp auth corecontracts API
version: '0'
servers:
- url: /
tags:
- name: corecontracts
paths:
/v1/chain/core/accounts/account/{agentID}/balance:
get:
operationId: accountsGetAccountBalance
parameters:
- description: AgentID (Hex Address for L1 accounts | Hex for EVM)
in: path
name: agentID
required: true
schema:
format: string
type: string
- description: Block index or trie root
in: query
name: block
schema:
format: string
type: string
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/AssetsResponse'
description: All assets belonging to an account
'401':
content:
application/json:
schema:
$ref: '#/components/schemas/ValidationError'
description: Unauthorized (Wrong permissions, missing token)
summary: Get all assets belonging to an account
tags:
- corecontracts
/v1/chain/core/accounts/account/{agentID}/nonce:
get:
operationId: accountsGetAccountNonce
parameters:
- description: AgentID (Hex Address for L1 accounts | Hex for EVM)
in: path
name: agentID
required: true
schema:
format: string
type: string
- description: Block index or trie root
in: query
name: block
schema:
format: string
type: string
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/AccountNonceResponse'
description: The current nonce of an account
'401':
content:
application/json:
schema:
$ref: '#/components/schemas/ValidationError'
description: Unauthorized (Wrong permissions, missing token)
summary: Get the current nonce of an account
tags:
- corecontracts
/v1/chain/core/accounts/total_assets:
get:
operationId: accountsGetTotalAssets
parameters:
- description: Block index or trie root
in: query
name: block
schema:
format: string
type: string
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/AssetsResponse'
description: All stored assets
'401':
content:
application/json:
schema:
$ref: '#/components/schemas/ValidationError'
description: Unauthorized (Wrong permissions, missing token)
summary: Get all stored assets
tags:
- corecontracts
/v1/chain/core/blocklog/blocks/latest:
get:
operationId: blocklogGetLatestBlockInfo
parameters:
- description: Block index or trie root
in: query
name: block
schema:
format: string
type: string
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/BlockInfoResponse'
description: The block info
'401':
content:
application/json:
schema:
$ref: '#/components/schemas/ValidationError'
description: Unauthorized (Wrong permissions, missing token)
summary: Get the block info of the latest block
tags:
- corecontracts
/v1/chain/core/blocklog/blocks/latest/receipts:
get:
operationId: blocklogGetRequestReceiptsOfLatestBlock
parameters:
- description: Block index or trie root
in: query
name: block
schema:
format: string
type: string
responses:
'200':
content:
application/json:
schema:
items:
$ref: '#/components/schemas/ReceiptResponse'
type: array
description: The receipts
'401':
content:
application/json:
schema:
$ref: '#/components/schemas/ValidationError'
description: Unauthorized (Wrong permissions, missing token)
summary: Get all receipts of the latest block
tags:
- corecontracts
/v1/chain/core/blocklog/blocks/latest/requestids:
get:
operationId: blocklogGetRequestIDsForLatestBlock
parameters:
- description: Block index or trie root
in: query
name: block
schema:
format: string
type: string
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/RequestIDsResponse'
description: A list of request ids (ISCRequestID[])
'401':
content:
application/json:
schema:
$ref: '#/components/schemas/ValidationError'
description: Unauthorized (Wrong permissions, missing token)
summary: Get the request ids for the latest block
tags:
- corecontracts
/v1/chain/core/blocklog/blocks/{blockIndex}:
get:
operationId: blocklogGetBlockInfo
parameters:
- description: BlockIndex (uint32)
in: path
name: blockIndex
required: true
schema:
format: int32
minimum: 1
type: integer
- description: Block index or trie root
in: query
name: block
schema:
format: string
type: string
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/BlockInfoResponse'
description: The block info
'401':
content:
application/json:
schema:
$ref: '#/components/schemas/ValidationError'
description: Unauthorized (Wrong permissions, missing token)
summary: Get the block info of a certain block index
tags:
- corecontracts
/v1/chain/core/blocklog/blocks/{blockIndex}/receipts:
get:
operationId: blocklogGetRequestReceiptsOfBlock
parameters:
- description: BlockIndex (uint32)
in: path
name: blockIndex
required: true
schema:
format: int32
minimum: 1
type: integer
- description: Block index or trie root
in: query
name: block
schema:
format: string
type: string
responses:
'200':
content:
application/json:
schema:
items:
$ref: '#/components/schemas/ReceiptResponse'
type: array
description: The receipts
'401':
content:
application/json:
schema:
$ref: '#/components/schemas/ValidationError'
description: Unauthorized (Wrong permissions, missing token)
summary: Get all receipts of a certain block
tags:
- corecontracts
/v1/chain/core/blocklog/blocks/{blockIndex}/requestids:
get:
operationId: blocklogGetRequestIDsForBlock
parameters:
- description: BlockIndex (uint32)
in: path
name: blockIndex
required: true
schema:
format: int32
minimum: 1
type: integer
- description: Block index or trie root
in: query
name: block
schema:
format: string
type: string
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/RequestIDsResponse'
description: A list of request ids (ISCRequestID[])
'401':
content:
application/json:
schema:
$ref: '#/components/schemas/ValidationError'
description: Unauthorized (Wrong permissions, missing token)
summary: Get the request ids for a certain block index
tags:
- corecontracts
/v1/chain/core/blocklog/controladdresses:
get:
operationId: blocklogGetControlAddresses
parameters:
- description: Block index or trie root
in: query
name: block
schema:
format: string
type: string
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/ControlAddressesResponse'
description: The chain info
'401':
content:
application/json:
schema:
$ref: '#/components/schemas/ValidationError'
description: Unauthorized (Wrong permissions, missing token)
summary: Get the control addresses
tags:
- corecontracts
/v1/chain/core/blocklog/events/block/latest:
get:
operationId: blocklogGetEventsOfLatestBlock
parameters:
- description: Block index or trie root
in: query
name: block
schema:
format: string
type: string
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/EventsResponse'
description: The receipts
'401':
content:
application/json:
schema:
$ref: '#/components/schemas/ValidationError'
description: Unauthorized (Wrong permissions, missing token)
summary: Get events of the latest block
tags:
- corecontracts
/v1/chain/core/blocklog/events/block/{blockIndex}:
get:
operationId: blocklogGetEventsOfBlock
parameters:
- description: BlockIndex (uint32)
in: path
name: blockIndex
required: true
schema:
format: int32
minimum: 1
type: integer
- description: Block index or trie root
in: query
name: block
schema:
format: string
type: string
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/EventsResponse'
description: The events
'401':
content:
application/json:
schema:
$ref: '#/components/schemas/ValidationError'
description: Unauthorized (Wrong permissions, missing token)
summary: Get events of a block
tags:
- corecontracts
/v1/chain/core/blocklog/events/request/{requestID}:
get:
operationId: blocklogGetEventsOfRequest
parameters:
- description: RequestID (Hex)
in: path
name: requestID
required: true
schema:
format: string
type: string
- description: Block index or trie root
in: query
name: block
schema:
format: string
type: string
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/EventsResponse'
description: The events
'401':
content:
application/json:
schema:
$ref: '#/components/schemas/ValidationError'
description: Unauthorized (Wrong permissions, missing token)
summary: Get events of a request
tags:
- corecontracts
/v1/chain/core/blocklog/requests/{requestID}:
get:
operationId: blocklogGetRequestReceipt
parameters:
- description: RequestID (Hex)
in: path
name: requestID
required: true
schema:
format: string
type: string
- description: Block index or trie root
in: query
name: block
schema:
format: string
type: string
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/ReceiptResponse'
description: The receipt
'401':
content:
application/json:
schema:
$ref: '#/components/schemas/ValidationError'
description: Unauthorized (Wrong permissions, missing token)
summary: Get the receipt of a certain request id
tags:
- corecontracts
/v1/chain/core/blocklog/requests/{requestID}/is_processed:
get:
operationId: blocklogGetRequestIsProcessed
parameters:
- description: RequestID (Hex)
in: path
name: requestID
required: true
schema:
format: string
type: string
- description: Block index or trie root
in: query
name: block
schema:
format: string
type: string
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/RequestProcessedResponse'
description: The processing result
'401':
content:
application/json:
schema:
$ref: '#/components/schemas/ValidationError'
description: Unauthorized (Wrong permissions, missing token)
summary: Get the request processing status
tags:
- corecontracts
/v1/chain/core/errors/{contractHname}/message/{errorID}:
get:
operationId: errorsGetErrorMessageFormat
parameters:
- description: ChainID (Hex Address)
in: path
name: chainID
required: true
schema:
format: string
type: string
- description: Contract (Hname as Hex)
in: path
name: contractHname
required: true
schema:
format: string
type: string
- description: Error Id (uint16)
in: path
name: errorID
required: true
schema:
format: int32
minimum: 1
type: integer
- description: Block index or trie root
in: query
name: block
schema:
format: string
type: string
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorMessageFormatResponse'
description: The error message format
'401':
content:
application/json:
schema:
$ref: '#/components/schemas/ValidationError'
description: Unauthorized (Wrong permissions, missing token)
summary: Get the error message format of a specific error id
tags:
- corecontracts
/v1/chain/core/governance/chainadmin:
get:
description: Returns the chain admin
operationId: governanceGetChainAdmin
parameters:
- description: Block index or trie root
in: query
name: block
schema:
format: string
type: string
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/GovChainAdminResponse'
description: The chain admin
'401':
content:
application/json:
schema:
$ref: '#/components/schemas/ValidationError'
description: Unauthorized (Wrong permissions, missing token)
summary: Get the chain admin
tags:
- corecontracts
/v1/chain/core/governance/chaininfo:
get:
description: If you are using the common API functions, you most likely rather want to use '/v1/chains/:chainID' to get information about a chain.
operationId: governanceGetChainInfo
parameters:
- description: Block index or trie root
in: query
name: block
schema:
format: string
type: string
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/GovChainInfoResponse'
description: The chain info
'401':
content:
application/json:
schema:
$ref: '#/components/schemas/ValidationError'
description: Unauthorized (Wrong permissions, missing token)
summary: Get the chain info
tags:
- corecontracts
components:
schemas:
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
CoinJSON:
example:
coinType: coinType
balance: balance
properties:
balance:
description: The balance (uint64 as string)
format: string
type: string
xml:
name: Balance
coinType:
format: string
type: string
xml:
name: CoinType
required:
- balance
- coinType
type: object
xml:
name: CoinJSON
RequestIDsResponse:
example:
requestIds:
- requestIds
- requestIds
properties:
requestIds:
items:
format: string
type: string
type: array
xml:
name: RequestIDs
wrapped: true
required:
- requestIds
type: object
xml:
name: RequestIDsResponse
Limits:
example:
maxGasExternalViewCall: 5
minGasPerRequest: 9
maxGasPerBlock: 2
maxGasPerRequest: 7
properties:
maxGasExternalViewCall:
description: The maximum gas per external view call
format: int64
type: integer
xml:
name: MaxGasExternalViewCall
maxGasPerBlock:
description: The maximum gas per block
format: int64
type: integer
xml:
name: MaxGasPerBlock
maxGasPerRequest:
description: The maximum gas per request
format: int64
type: integer
xml:
name: MaxGasPerRequest
minGasPerRequest:
description: The minimum gas per request
format: int64
type: integer
xml:
name: MinGasPerRequest
required:
- maxGasExternalViewCall
- maxGasPerBlock
- maxGasPerRequest
- minGasPerRequest
type: object
xml:
name: Limits
GovPublicChainMetadata:
example:
website: website
evmWebSocketURL: evmWebSocketURL
name: name
description: description
evmJsonRpcURL: evmJsonRpcURL
properties:
description:
description: The description of the chain.
format: string
type: string
xml:
name: Description
evmJsonRpcURL:
description: The EVM json rpc url
format: string
type: string
xml:
name: EVMJsonRPCURL
evmWebSocketURL:
description: The EVM websocket url)
format: string
type: string
xml:
name: EVMWebSocketURL
name:
description: The name of the chain
format: string
type: string
xml:
name: Name
website:
description: The official website of the chain.
format: string
type: string
xml:
name: Website
required:
- description
- evmJsonRpcURL
- evmWebSocketURL
- name
- website
type: object
xml:
name: GovPublicChainMetadata
ReceiptResponse:
example:
gasBurnLog:
- code: 6
gasBurned: 1
- code: 6
gasBurned: 1
request:
senderAccount: senderAccount
allowanceError: allowanceError
assets:
coins:
- coinType: coinType
balance: balance
- coinType: coinType
balance: balance
objects:
- id: id
type: type
- id: id
type: type
isOffLedger: true
requestId: requestId
callTarget:
contractHName: contractHName
functionHName: functionHName
gasBudget: gasBudget
allowance:
coins:
- coinType: coinType
balance: balance
- coinType: coinType
balance: balance
objects:
- id: id
type: type
- id: id
type: type
params:
- params
- params
isEVM: true
blockIndex: 1
rawError:
code: code
params:
- params
- params
requestIndex: 1
storageDepositCharged: storageDepositCharged
gasFeeCharged: gasFeeCharged
errorMessage: errorMessage
gasBudget: gasBudget
gasBurned: gasBurned
properties:
blockIndex:
format: int32
minimum: 1
type: integer
xml:
name: BlockIndex
errorMessage:
format: string
type: string
xml:
name: ErrorMessage
gasBudget:
description: The gas budget (uint64 as string)
format: string
type: string
xml:
name: GasBudget
gasBurnLog:
items:
$ref: '#/components/schemas/BurnRecord'
type: array
xml:
name: GasBurnLog
wrapped: true
gasBurned:
description: The burned gas (uint64 as string)
format: string
type: string
xml:
name: GasBurned
gasFeeCharged:
description: The charged gas fee (uint64 as string)
format: string
type: string
xml:
name: GasFeeCharged
rawError:
$ref: '#/components/schemas/UnresolvedVMErrorJSON'
request:
$ref: '#/components/schemas/RequestJSON'
requestIndex:
format: int32
minimum: 1
type: integer
xml:
name: RequestIndex
storageDepositCharged:
description: Storage deposit charged (uint64 as string)
format: string
type: string
xml:
name: SDCharged
required:
- blockIndex
- gasBudget
- gasBurnLog
- gasBurned
- gasFeeCharged
- request
- requestIndex
- storageDepositCharged
type: object
xml:
name: ReceiptResponse
RequestJSON:
example:
senderAccount: senderAccount
allowanceError: allowanceError
assets:
coins:
- coinType: coinType
balance: balance
- coinType: coinType
balance: balance
objects:
- id: id
type: type
- id: id
type: type
isOffLedger: true
requestId: requestId
callTarget:
contractHName: contractHName
functionHName: functionHName
gasBudget: gasBudget
allowance:
coins:
- coinType: coinType
balance: balance
- coinType: coinType
balance: balance
objects:
- id: id
type: type
- id: id
type: type
params:
- params
- params
isEVM: true
properties:
allowance:
$ref: '#/components/schemas/AssetsJSON'
allowanceError:
format: string
type: string
xml:
name: AllowanceError
assets:
$ref: '#/components/schemas/AssetsJSON'
callTarget:
$ref: '#/components/schemas/CallTargetJSON'
gasBudget:
description: The gas budget (uint64 as string)
format: string
type: string
xml:
name: GasBudget
isEVM:
format: boolean
type: boolean
xml:
name: IsEVM
isOffLedger:
format: boolean
type: boolean
xml:
name: IsOffLedger
params:
items:
format: string
type: string
type: array
xml:
name: Params
wrapped: true
requestId:
format: string
type: string
xml:
name: RequestID
senderAccount:
format: string
type: string
xml:
name: SenderAccount
required:
- allowance
- assets
- callTarget
- gasBudget
- isEVM
- isOffLedger
- params
- requestId
- senderAccount
type: object
xml:
name: RequestJSON
FeePolicy:
example:
gasPerToken:
a: 0
b: 0
validatorFeeShare: 5
evmGasRatio:
a: 0
b: 0
properties:
evmGasRatio:
$ref: '#/components/schemas/Ratio32'
gasPerToken:
$ref: '#/components/schemas/Ratio32'
validatorFeeShare:
description: The validator fee share.
format: int32
type: integer
xml:
name: ValidatorFeeShare
required:
- evmGasRatio
- gasPerToken
- validatorFeeShare
type: object
xml:
name: FeePolicy
BlockInfoResponse:
example:
blockIndex: 1
numSuccessfulRequests: 1
gasFeeCharged: gasFeeCharged
gasBurned: gasBurned
totalRequests: 1
numOffLedgerRequests: 1
timestamp: 2000-01-23 04:56:07+00:00
properties:
blockIndex:
format: int32
minimum: 1
type: integer
xml:
name: BlockIndex
gasBurned:
description: The burned gas (uint64 as string)
format: string
type: string
xml:
name: GasBurned
gasFeeCharged:
description: The charged gas fee (uint64 as string)
format: string
type: string
xml:
name: GasFeeCharged
numOffLedgerRequests:
format: int32
minimum: 1
type: integer
xml:
name: NumOffLedgerRequests
numSuccessfulRequests:
format: int32
minimum: 1
type: integer
xml:
name: NumSuccessfulRequests
timestamp:
format: date-time
type: string
xml:
name: Timestamp
totalRequests:
format: int32
minimum: 1
type: integer
xml:
name: TotalRequests
required:
- blockIndex
- gasBurned
- gasFeeCharged
- numOffLedgerRequests
- numSuccessfulRequests
- timestamp
- totalRequests
type: object
xml:
name: BlockInfoResponse
Ratio32:
example:
a: 0
b: 0
properties:
a:
format: int32
minimum: 0
type: integer
xml:
name: A
b:
format: int32
minimum: 0
type: integer
xml:
name: B
required:
- a
- b
type: object
xml:
name: Ratio32
AssetsResponse:
example:
coins:
- coinType: coinType
balance: balance
- coinType: coinType
balance: balance
baseTokens: baseTokens
objects:
- id: id
type: type
- id: id
type: type
properties:
baseTokens:
description: The base tokens (uint64 as string)
format: string
type: string
xml:
name: BaseTokens
coins:
items:
$ref: '#/components/schemas/CoinJSON'
type: array
xml:
name: Coins
wrapped: true
objects:
items:
$ref: '#/components/schemas/IotaObjectJSON'
type: array
xml:
name: Objects
wrapped: true
required:
- baseTokens
- coins
- objects
type: object
xml:
name: AssetsResponse
UnresolvedVMErrorJSON:
example:
code: code
params:
- params
- params
properties:
code:
format: string
type: string
xml:
name: ErrorCode
params:
items:
format: string
type: string
type: array
xml:
name: Params
wrapped: true
type: object
xml:
name: UnresolvedVMErrorJSON
GovChainInfoResponse:
example:
chainAdmin: chainAdmin
metadata:
website: website
evmWebSocketURL: evmWebSocketURL
name: name
description: description
evmJsonRpcURL: evmJsonRpcURL
gasLimits:
maxGasExternalViewCall: 5
minGasPerRequest: 9
maxGasPerBlock: 2
maxGasPerRequest: 7
chainID: chainID
publicURL: publicURL
gasFeePolicy:
gasPerToken:
a: 0
b: 0
validatorFeeShare: 5
evmGasRatio:
a: 0
b: 0
properties:
chainAdmin:
description: The chain admin address (Hex Address).
format: string
type: string
xml:
name: ChainAdmin
chainID:
description: ChainID (Hex Address).
format: string
type: string
xml:
name: ChainID
gasFeePolicy:
$ref: '#/components/schemas/FeePolicy'
gasLimits:
$ref: '#/components/schemas/Limits'
metadata:
$ref: '#/components/schemas/GovPublicChainMetadata'
publicURL:
description: The fully qualified public url leading to the chains metadata
format: string
type: string
xml:
name: PublicURL
required:
- chainAdmin
- chainID
- gasFeePolicy
- gasLimits
- metadata
- publicURL
type: object
xml:
name: GovChainInfoResponse
EventsResponse:
example:
events:
- payload: payload
contractID: 1
topic: topic
timestamp: 6
- payload: payload
contractID: 1
topic: topic
timestamp: 6
properties:
events:
items:
$ref: '#/components/schemas/EventJSON'
type: array
xml:
name: Events
wrapped: true
required:
- events
type: object
xml:
name: EventsResponse
EventJSON:
example:
payload: payload
contractID: 1
topic: topic
timestamp: 6
properties:
contractID:
description: ID of the Contract that issued the event
format: int32
minimum: 1
type: integer
xml:
name: ContractID
payload:
description: payload
format: string
type: string
xml:
name: Payload
timestamp:
description: timestamp
format: int64
type: integer
xml:
name: Timestamp
topic:
description: topic
format: string
type: string
xml:
name: Topic
required:
- contractID
- payload
- timestamp
- topic
type: object
xml:
name: EventJSON
CallTargetJSON:
example:
contractHName: contractHName
functionHName: functionHName
properties:
contractHName:
descr
# --- truncated at 32 KB (36 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/iota/refs/heads/main/openapi/iota-corecontracts-api-openapi.yml