gRPC
Endpoint:
iota-grpc.nownodes.ioAuthentication:
api-key: YOUR_API_KEYOfficial proto sources:
https://github.com/iotaledger/iota
https://github.com/iotaledger/iota-rust-sdkServices and methods
iota.grpc.v1.ledger_service.LedgerService
| Method | Request and response |
|---|---|
GetHealth | Detailed below |
GetServiceInfo | Detailed below |
GetObjects | Detailed below |
GetTransactions | Detailed below |
GetCheckpoint | Detailed below |
StreamCheckpoints | Detailed below |
GetEpoch | Detailed below |
GetHealth
Description: Reports node liveness relative to the latest executed checkpoint from the iota.grpc.v1.ledger_service.LedgerService gRPC service. An optional thresholdMs marks the node healthy only if its latest executed checkpoint is within that many milliseconds of system time; the default threshold is 5 seconds. Full method:
iota.grpc.v1.ledger_service.LedgerService/GetHealthRequest:
{
"thresholdMs": "60000"
}Example:
grpcurl \
-insecure \
-H 'api-key: YOUR_API_KEY' \
-d '{"thresholdMs":"60000"}' \
'iota-grpc.nownodes.io' \
iota.grpc.v1.ledger_service.LedgerService/GetHealthResponse example:
{
"executedCheckpointHeight": "168034649"
}GetServiceInfo
Description: Retrieves general Service Info about the node's current state from the iota.grpc.v1.ledger_service.LedgerService gRPC service. The default read_mask is chain_id,epoch,checkpoint_height. Full method:
iota.grpc.v1.ledger_service.LedgerService/GetServiceInfoRequest:
{}Example:
grpcurl \
-insecure \
-H 'api-key: YOUR_API_KEY' \
-d '{}' \
'iota-grpc.nownodes.io' \
iota.grpc.v1.ledger_service.LedgerService/GetServiceInfoResponse example:
{
"chainId": {
"digest": "Y2Sq1ZwvZ/yUjgXUUJ9nOu62zXDZP1boIeZDoxeXfL0="
},
"epoch": "438",
"executedCheckpointHeight": "168034518",
"executedCheckpointTimestamp": "2026-07-17T18:32:35.722Z",
"lowestAvailableCheckpoint": "167102198",
"lowestAvailableCheckpointObjects": "0"
}GetObjects
Description: Retrieves a batch of Objects by reference from the iota.grpc.v1.ledger_service.LedgerService gRPC service. This is a server-streaming method: large result sets are chunked across response messages, and each ObjectResult is either an object or a per-item error. The default read_mask is object_id,version,digest. The example reads the system-state object at 0x5. Full method:
iota.grpc.v1.ledger_service.LedgerService/GetObjectsRequest:
{
"requests": {
"requests": [
{
"objectRef": {
"objectId": {
"objectId": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAU="
}
}
}
]
}
}Example:
grpcurl \
-insecure \
-H 'api-key: YOUR_API_KEY' \
-d '{"requests":{"requests":[{"objectRef":{"objectId":{"objectId":"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAU="}}}]}}' \
'iota-grpc.nownodes.io' \
iota.grpc.v1.ledger_service.LedgerService/GetObjectsResponse example:
{
"objects": [
{
"object": {
"reference": {
"objectId": {
"objectId": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAU="
},
"version": "690860842",
"digest": {
"digest": "pIVLlC8wOElkIogHn4XqLffGtsFxlGCOvMxPBftbSUw="
}
},
"bcs": {
"data": "BASE64_BCS"
}
}
}
],
"hasNext": false
}GetTransactions
Description: Retrieves a batch of executed Transactions by digest from the iota.grpc.v1.ledger_service.LedgerService gRPC service. This is a server-streaming method: results are chunked, and each TransactionResult is either an executed transaction or a per-item error. The default read_mask is transaction.digest. Full method:
iota.grpc.v1.ledger_service.LedgerService/GetTransactionsRequest:
{
"requests": {
"requests": [
{
"digest": {
"digest": "BASE64_DIGEST"
}
}
]
}
}Example:
grpcurl \
-insecure \
-H 'api-key: YOUR_API_KEY' \
-d '{"requests":{"requests":[{"digest":{"digest":"BASE64_DIGEST"}}]}}' \
'iota-grpc.nownodes.io' \
iota.grpc.v1.ledger_service.LedgerService/GetTransactionsResponse example:
{
"transactionResults": [
{
"executedTransaction": {
"transaction": {
"digest": {
"digest": "BASE64_DIGEST"
}
},
"effects": {
"digest": {
"digest": "BASE64_DIGEST"
}
},
"checkpoint": "168034518",
"timestamp": "2026-07-17T18:32:35.722Z"
}
}
],
"hasNext": false
}GetCheckpoint
Description: Retrieves a single Checkpoint by sequence number, digest, or latest from the iota.grpc.v1.ledger_service.LedgerService gRPC service. This is a server-streaming method: the checkpoint payload (summary, contents, transactions, and events) is chunked across CheckpointData messages, so the client may receive several messages for one checkpoint. The default read_mask is summary. Full method:
iota.grpc.v1.ledger_service.LedgerService/GetCheckpointRequest:
{
"latest": true
}Example:
grpcurl \
-insecure \
-H 'api-key: YOUR_API_KEY' \
-d '{"latest":true}' \
'iota-grpc.nownodes.io' \
iota.grpc.v1.ledger_service.LedgerService/GetCheckpointResponse example:
{
"checkpoint": {
"sequenceNumber": "168035505",
"summary": {
"digest": {
"digest": "4vvg/b0XraSQ5PfNtSpEPl2oKUXQBL5IXBG52js8unQ="
},
"bcs": {
"data": "BASE64_BCS"
}
}
}
}StreamCheckpoints
Description: Streams Checkpoints as they are produced from the iota.grpc.v1.ledger_service.LedgerService gRPC service. Streaming starts at startSequenceNumber (or the latest checkpoint if omitted) and, without an endSequenceNumber, continues indefinitely. Optional transaction and event filters, plus filterCheckpoints, can narrow the stream; when filtering, periodic Progress markers indicate liveness. Each emitted checkpoint arrives as one or more CheckpointData messages. The default read_mask is summary. Full method:
iota.grpc.v1.ledger_service.LedgerService/StreamCheckpointsRequest:
{
"startSequenceNumber": "168035505"
}Example:
grpcurl \
-insecure \
-H 'api-key: YOUR_API_KEY' \
-d '{"startSequenceNumber":"168035505"}' \
'iota-grpc.nownodes.io' \
iota.grpc.v1.ledger_service.LedgerService/StreamCheckpointsResponse example:
{
"checkpoint": {
"sequenceNumber": "168035505",
"summary": {
"digest": {
"digest": "4vvg/b0XraSQ5PfNtSpEPl2oKUXQBL5IXBG52js8unQ="
},
"bcs": {
"data": "BASE64_BCS"
}
}
}
}GetEpoch
Description: Retrieves Epoch data — including protocol configuration, reference gas price, and (when requested via read_mask) the validator committee — from the iota.grpc.v1.ledger_service.LedgerService gRPC service. If epoch is omitted the current epoch is returned. The default read_mask is epoch; the node also returns first_checkpoint, start, reference_gas_price, and protocol_config for the current epoch. Add committee to the read_mask to include the validator set. Full method:
iota.grpc.v1.ledger_service.LedgerService/GetEpochRequest:
{
"epoch": "438"
}Example:
grpcurl \
-insecure \
-H 'api-key: YOUR_API_KEY' \
-d '{"epoch":"438"}' \
'iota-grpc.nownodes.io' \
iota.grpc.v1.ledger_service.LedgerService/GetEpochResponse example:
{
"epoch": {
"epoch": "438",
"firstCheckpoint": "167870320",
"start": "2026-07-17T07:41:50.978Z",
"referenceGasPrice": "1000",
"protocolConfig": {
"protocolVersion": "30"
}
}
}iota.grpc.v1.state_service.StateService
| Method | Request and response |
|---|---|
ListDynamicFields | Detailed below |
ListOwnedObjects | Detailed below |
GetCoinInfo | Detailed below |
ListDynamicFields
Description: Lists the Dynamic Fields owned by a parent object from the iota.grpc.v1.state_service.StateService gRPC service. Results are paginated via pageSize (default 50, max 1000) and pageToken; the default read_mask is parent,field_id. Full method:
iota.grpc.v1.state_service.StateService/ListDynamicFieldsRequest:
{
"parent": {
"objectId": "BASE64_OBJECT_ID"
},
"pageSize": 50
}Example:
grpcurl \
-insecure \
-H 'api-key: YOUR_API_KEY' \
-d '{"parent":{"objectId":"BASE64_OBJECT_ID"},"pageSize":50}' \
'iota-grpc.nownodes.io' \
iota.grpc.v1.state_service.StateService/ListDynamicFieldsResponse example:
{
"dynamicFields": [
{
"kind": "FIELD",
"parent": {
"objectId": "BASE64_OBJECT_ID"
},
"fieldId": {
"objectId": "BASE64_OBJECT_ID"
},
"name": {
"data": "BASE64_BCS"
},
"value": {
"data": "BASE64_BCS"
},
"valueType": "u64"
}
],
"nextPageToken": "BASE64_PAGE_TOKEN"
}ListOwnedObjects
Description: Lists the Owned Objects held by an address from the iota.grpc.v1.state_service.StateService gRPC service. An optional objectType filter restricts results (for example 0x2::coin::Coin<0x2::iota::IOTA>). Results are paginated (default 50, max 1000); the default read_mask is reference,bcs. Full method:
iota.grpc.v1.state_service.StateService/ListOwnedObjectsRequest:
{
"owner": {
"address": "BASE64_ADDRESS"
},
"objectType": "0x2::coin::Coin<0x2::iota::IOTA>",
"pageSize": 50
}Example:
grpcurl \
-insecure \
-H 'api-key: YOUR_API_KEY' \
-d '{"owner":{"address":"BASE64_ADDRESS"},"objectType":"0x2::coin::Coin<0x2::iota::IOTA>","pageSize":50}' \
'iota-grpc.nownodes.io' \
iota.grpc.v1.state_service.StateService/ListOwnedObjectsResponse example:
{
"objects": [
{
"reference": {
"objectId": {
"objectId": "BASE64_OBJECT_ID"
},
"version": "123456",
"digest": {
"digest": "BASE64_DIGEST"
}
},
"bcs": {
"data": "BASE64_BCS"
}
}
],
"nextPageToken": "BASE64_PAGE_TOKEN"
}GetCoinInfo
Description: Retrieves Coin Info — metadata, treasury/supply state, and any regulated-coin details — for a coin type from the iota.grpc.v1.state_service.StateService gRPC service. Full method:
iota.grpc.v1.state_service.StateService/GetCoinInfoRequest:
{
"coinType": "0x2::iota::IOTA"
}Example:
grpcurl \
-insecure \
-H 'api-key: YOUR_API_KEY' \
-d '{"coinType":"0x2::iota::IOTA"}' \
'iota-grpc.nownodes.io' \
iota.grpc.v1.state_service.StateService/GetCoinInfoResponse example:
{
"coinType": "0x2::iota::IOTA",
"metadata": {
"id": {
"objectId": "0C2xu2R9/MlPNbgqFOi6sHZhvj5tSwIr3H7mPu0HKPg="
},
"decimals": 9,
"name": "IOTA",
"symbol": "IOTA",
"description": "The main (gas)token of the IOTA Network.",
"iconUrl": "https://iota.org/logo.png"
},
"treasury": {
"id": {
"objectId": "A/mA29gC+crpqRqVx9iRjVPpYKUpIkpP6UnxbtCgv+Y="
},
"totalSupply": "4935865114065856325",
"supplyState": "FIXED"
},
"regulatedMetadata": {
"coinRegulatedState": "UNREGULATED"
}
}iota.grpc.v1.move_package_service.MovePackageService
| Method | Request and response |
|---|---|
ListPackageVersions | Detailed below |
ListPackageVersions
Description: Lists all Package Versions for a Move package from the iota.grpc.v1.move_package_service.MovePackageService gRPC service. packageId may be the storageId of any version of an upgraded package, or the originalId of a first-version package. Results are ordered by version and paginated (default 1000, max 10000). The example lists versions of the framework package 0x2. Full method:
iota.grpc.v1.move_package_service.MovePackageService/ListPackageVersionsRequest:
{
"packageId": {
"objectId": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAI="
},
"pageSize": 3
}Example:
grpcurl \
-insecure \
-H 'api-key: YOUR_API_KEY' \
-d '{"packageId":{"objectId":"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAI="},"pageSize":3}' \
'iota-grpc.nownodes.io' \
iota.grpc.v1.move_package_service.MovePackageService/ListPackageVersionsResponse example:
{
"versions": [
{
"originalId": {
"objectId": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAI="
},
"storageId": {
"objectId": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAI="
},
"version": "13"
}
]
}iota.grpc.v1.transaction_execution_service.TransactionExecutionService
| Method | Request and response |
|---|---|
ExecuteTransactions | Detailed below |
SimulateTransactions | Detailed below |
ExecuteTransactions
Description: Broadcasts one or more signed transactions through the iota.grpc.v1.transaction_execution_service.TransactionExecutionService gRPC service and returns each transaction's execution result. Transactions execute sequentially in order; each is provided as BCS bytes together with its UserSignatures. The default read_mask is transaction.digest,effects,events,input_objects,output_objects. An optional checkpointInclusionTimeoutMs makes the server wait for checkpoint inclusion. Full method:
iota.grpc.v1.transaction_execution_service.TransactionExecutionService/ExecuteTransactionsRequest:
{
"transactions": [
{
"transaction": {
"bcs": {
"data": "BASE64_BCS"
}
},
"signatures": {
"signatures": [
{
"bcs": {
"data": "BASE64_BCS"
}
}
]
}
}
]
}Example:
grpcurl \
-insecure \
-H 'api-key: YOUR_API_KEY' \
-d '{"transactions":[{"transaction":{"bcs":{"data":"BASE64_BCS"}},"signatures":{"signatures":[{"bcs":{"data":"BASE64_BCS"}}]}}]}' \
'iota-grpc.nownodes.io' \
iota.grpc.v1.transaction_execution_service.TransactionExecutionService/ExecuteTransactionsResponse example:
{
"transactionResults": [
{
"executedTransaction": {
"transaction": {
"digest": {
"digest": "BASE64_DIGEST"
}
},
"effects": {
"digest": {
"digest": "BASE64_DIGEST"
}
},
"checkpoint": "168035505",
"timestamp": "2026-07-17T18:35:00.000Z"
}
}
]
}SimulateTransactions
Description: Simulates one or more transactions against the iota.grpc.v1.transaction_execution_service.TransactionExecutionService gRPC service without broadcasting them, returning predicted effects, a suggested gas price, and command results. Transactions are simulated sequentially in order. Signatures are not required for simulation. Full method:
iota.grpc.v1.transaction_execution_service.TransactionExecutionService/SimulateTransactionsRequest:
{
"transactions": [
{
"transaction": {
"bcs": {
"data": "BASE64_BCS"
}
}
}
]
}Example:
grpcurl \
-insecure \
-H 'api-key: YOUR_API_KEY' \
-d '{"transactions":[{"transaction":{"bcs":{"data":"BASE64_BCS"}}}]}' \
'iota-grpc.nownodes.io' \
iota.grpc.v1.transaction_execution_service.TransactionExecutionService/SimulateTransactionsResponse example:
{
"transactionResults": [
{
"simulatedTransaction": {
"executedTransaction": {
"transaction": {
"digest": {
"digest": "BASE64_DIGEST"
}
},
"effects": {
"digest": {
"digest": "BASE64_DIGEST"
}
}
},
"suggestedGasPrice": "1000"
}
}
]
}