> For the complete documentation index, see [llms.txt](https://docs.rpc.forbole.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.rpc.forbole.com/rpc-api-documentation/guide-to-rpc/endpoints/grpc/kaspa.md).

# Kaspa

<figure><img src="/files/OMIItl9hCyLnXEaKGjeq" alt="Kaspa Logo"><figcaption><p>Kaspa Logo</p></figcaption></figure>

## Introduction

The [**Kaspa blockchain**](https://kaspa.org/) is a high-performance, proof-of-work (PoW) cryptocurrency designed for scalability and fast transaction processing. It utilizes a unique data structure called a **blockDAG** (Directed Acyclic Graph), which allows multiple blocks to be created and processed in parallel rather than a traditional linear chain. This architecture makes Kaspa capable of handling high transaction throughput while maintaining robust security.

Key features of Kaspa include:

* **Fast Block Times**: Blocks are generated every second, enabling rapid transaction confirmation.
* **Scalability**: The blockDAG structure improves scalability compared to traditional blockchains.
* **Decentralization**: Maintains a high level of decentralization through PoW consensus.
* **Fair Launch**: No premine or ICO; it was launched fairly through mining.

Kaspa is designed to provide an efficient, decentralized solution for payments and value transfer while addressing the scalability issues faced by many first-generation blockchains.

## How to Interact

1. Get your API Key from [Forbole's RPC](https://rpc.forbole.com/).

<figure><img src="/files/bx3B0Z4MiLk5WStadlxx" alt="DevTools Endpoints"><figcaption></figcaption></figure>

1. Get the proto files needed to define the gRPC service:
   1. [messages.proto](https://github.com/kaspanet/rusty-kaspa/blob/master/rpc/grpc/core/proto/messages.proto)
   2. [rpc.proto](https://github.com/kaspanet/rusty-kaspa/blob/master/rpc/grpc/core/proto/rpc.proto)
2. Place them into a folder together, e.g. `/proto`
3. Download and install a grpc client, like [grpcurl](https://github.com/fullstorydev/grpcurl)
4. Test the query as follows:

{% code lineNumbers="true" %}

```graphql
grpcurl \
  -import-path ./proto \
  -proto messages.proto \
  -d '{"id":1, "getSystemInfoRequest":{}}' \
  -H "apiKey: {apiKey}" \
  grpc-mainnet-kaspa-fullnode.forbole.com:443 \
  protowire.RPC/MessageStream
```

{% endcode %}

**Response example**

{% code lineNumbers="true" %}

```json
{
  "id": "0",
  "getSystemInfoResponse": {
    "version": "v0.15.2",
    "systemId": "9f8c1251188557a6201ee1177afc31bd12a3064c8ea14c6d2c8c8ae60f0e8e62",
    "gitHash": "",
    "coreNum": 4,
    "totalMemory": "8326074368",
    "fdLimit": 65535,
    "proxySocketLimitPerCpuCore": 0,
    "error": null
  }
}
```

{% endcode %}
