Home

gRPC

Endpoint:

Endpoint:

Copied!
iota-grpc.nownodes.io

Authentication:

Copied!
api-key: YOUR_API_KEY

Official proto sources:

Copied!
https://github.com/iotaledger/iota
https://github.com/iotaledger/iota-rust-sdk

Services and methods

iota.grpc.v1.ledger_service.LedgerService

MethodRequest and response
GetHealthDetailed below
GetServiceInfoDetailed below
GetObjectsDetailed below
GetTransactionsDetailed below
GetCheckpointDetailed below
StreamCheckpointsDetailed below
GetEpochDetailed 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:

Copied!
iota.grpc.v1.ledger_service.LedgerService/GetHealth

Request:

Copied!
{
  "thresholdMs": "60000"
}

Example:

Copied!
grpcurl \
  -insecure \
  -H 'api-key: YOUR_API_KEY' \
  -d '{"thresholdMs":"60000"}' \
  'iota-grpc.nownodes.io' \
  iota.grpc.v1.ledger_service.LedgerService/GetHealth

Response example:

Copied!
{
  "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:

Copied!
iota.grpc.v1.ledger_service.LedgerService/GetServiceInfo

Request:

Copied!
{}

Example:

Copied!
grpcurl \
  -insecure \
  -H 'api-key: YOUR_API_KEY' \
  -d '{}' \
  'iota-grpc.nownodes.io' \
  iota.grpc.v1.ledger_service.LedgerService/GetServiceInfo

Response example:

Copied!
{
  "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:

Copied!
iota.grpc.v1.ledger_service.LedgerService/GetObjects

Request:

Copied!
{
  "requests": {
    "requests": [
      {
        "objectRef": {
          "objectId": {
            "objectId": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAU="
          }
        }
      }
    ]
  }
}

Example:

Copied!
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/GetObjects

Response example:

Copied!
{
  "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:

Copied!
iota.grpc.v1.ledger_service.LedgerService/GetTransactions

Request:

Copied!
{
  "requests": {
    "requests": [
      {
        "digest": {
          "digest": "BASE64_DIGEST"
        }
      }
    ]
  }
}

Example:

Copied!
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/GetTransactions

Response example:

Copied!
{
  "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:

Copied!
iota.grpc.v1.ledger_service.LedgerService/GetCheckpoint

Request:

Copied!
{
  "latest": true
}

Example:

Copied!
grpcurl \
  -insecure \
  -H 'api-key: YOUR_API_KEY' \
  -d '{"latest":true}' \
  'iota-grpc.nownodes.io' \
  iota.grpc.v1.ledger_service.LedgerService/GetCheckpoint

Response example:

Copied!
{
  "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:

Copied!
iota.grpc.v1.ledger_service.LedgerService/StreamCheckpoints

Request:

Copied!
{
  "startSequenceNumber": "168035505"
}

Example:

Copied!
grpcurl \
  -insecure \
  -H 'api-key: YOUR_API_KEY' \
  -d '{"startSequenceNumber":"168035505"}' \
  'iota-grpc.nownodes.io' \
  iota.grpc.v1.ledger_service.LedgerService/StreamCheckpoints

Response example:

Copied!
{
  "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:

Copied!
iota.grpc.v1.ledger_service.LedgerService/GetEpoch

Request:

Copied!
{
  "epoch": "438"
}

Example:

Copied!
grpcurl \
  -insecure \
  -H 'api-key: YOUR_API_KEY' \
  -d '{"epoch":"438"}' \
  'iota-grpc.nownodes.io' \
  iota.grpc.v1.ledger_service.LedgerService/GetEpoch

Response example:

Copied!
{
  "epoch": {
    "epoch": "438",
    "firstCheckpoint": "167870320",
    "start": "2026-07-17T07:41:50.978Z",
    "referenceGasPrice": "1000",
    "protocolConfig": {
      "protocolVersion": "30"
    }
  }
}

iota.grpc.v1.state_service.StateService

MethodRequest and response
ListDynamicFieldsDetailed below
ListOwnedObjectsDetailed below
GetCoinInfoDetailed 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:

Copied!
iota.grpc.v1.state_service.StateService/ListDynamicFields

Request:

Copied!
{
  "parent": {
    "objectId": "BASE64_OBJECT_ID"
  },
  "pageSize": 50
}

Example:

Copied!
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/ListDynamicFields

Response example:

Copied!
{
  "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:

Copied!
iota.grpc.v1.state_service.StateService/ListOwnedObjects

Request:

Copied!
{
  "owner": {
    "address": "BASE64_ADDRESS"
  },
  "objectType": "0x2::coin::Coin<0x2::iota::IOTA>",
  "pageSize": 50
}

Example:

Copied!
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/ListOwnedObjects

Response example:

Copied!
{
  "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:

Copied!
iota.grpc.v1.state_service.StateService/GetCoinInfo

Request:

Copied!
{
  "coinType": "0x2::iota::IOTA"
}

Example:

Copied!
grpcurl \
  -insecure \
  -H 'api-key: YOUR_API_KEY' \
  -d '{"coinType":"0x2::iota::IOTA"}' \
  'iota-grpc.nownodes.io' \
  iota.grpc.v1.state_service.StateService/GetCoinInfo

Response example:

Copied!
{
  "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

MethodRequest and response
ListPackageVersionsDetailed 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:

Copied!
iota.grpc.v1.move_package_service.MovePackageService/ListPackageVersions

Request:

Copied!
{
  "packageId": {
    "objectId": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAI="
  },
  "pageSize": 3
}

Example:

Copied!
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/ListPackageVersions

Response example:

Copied!
{
  "versions": [
    {
      "originalId": {
        "objectId": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAI="
      },
      "storageId": {
        "objectId": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAI="
      },
      "version": "13"
    }
  ]
}

iota.grpc.v1.transaction_execution_service.TransactionExecutionService

MethodRequest and response
ExecuteTransactionsDetailed below
SimulateTransactionsDetailed 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:

Copied!
iota.grpc.v1.transaction_execution_service.TransactionExecutionService/ExecuteTransactions

Request:

Copied!
{
  "transactions": [
    {
      "transaction": {
        "bcs": {
          "data": "BASE64_BCS"
        }
      },
      "signatures": {
        "signatures": [
          {
            "bcs": {
              "data": "BASE64_BCS"
            }
          }
        ]
      }
    }
  ]
}

Example:

Copied!
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/ExecuteTransactions

Response example:

Copied!
{
  "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:

Copied!
iota.grpc.v1.transaction_execution_service.TransactionExecutionService/SimulateTransactions

Request:

Copied!
{
  "transactions": [
    {
      "transaction": {
        "bcs": {
          "data": "BASE64_BCS"
        }
      }
    }
  ]
}

Example:

Copied!
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/SimulateTransactions

Response example:

Copied!
{
  "transactionResults": [
    {
      "simulatedTransaction": {
        "executedTransaction": {
          "transaction": {
            "digest": {
              "digest": "BASE64_DIGEST"
            }
          },
          "effects": {
            "digest": {
              "digest": "BASE64_DIGEST"
            }
          }
        },
        "suggestedGasPrice": "1000"
      }
    }
  ]
}