# Welcome to ChainUp Cloud

Welcome to ChainUp Cloud Docs - All in one Web3 platform.

<img src="/files/PZLztMpMJuk1a7vudVdN" alt="" data-size="line"> At ChainUp, our mission is to let blockchain technology empower everything. We offer a complete suite of blockchain applications and technical infrastructure for businesses all in one platform. ChainUp Cloud is one of the tools we offer. ChainUp Cloud provide enterprise-grade node and staking infrastructure, multi-chain API suite, and developer tools while also actively participating in community & governance.

Use these docs to learn more about ChainUp Cloud core products, explore guides, and check out our API references.&#x20;

### :books:Guides: Jump right in

:round\_pushpin:Introduction to ChainUp Cloud

{% content-ref url="/pages/TlGLmNyDYSRq292sKqkL" %}
[Chainup Cloud API Quickstart](/introduction/what-is-chainupcloud)
{% endcontent-ref %}

:book:Overview of ChainUp Cloud Products

{% content-ref url="/pages/eOcmTlSeKrq0aQUr2rjJ" %}
[Products](/introduction/products)
{% endcontent-ref %}

### :gear:ChainUp Cloud API

:brain:Learn how to use ChainUp Cloud API to access multiple blockchain protocols - quickly, easily and securely.\
\
Supported Chains

**ChainUp Cloud** supports both EVM and non-EVM chains, view API references below:\ <br>

<table data-view="cards"><thead><tr><th></th><th></th><th></th><th data-hidden data-card-target data-type="content-ref"></th></tr></thead><tbody><tr><td></td><td><img src="/files/AGGsPH2jwAmYI2SGk6Hh" alt="" data-size="original"></td><td></td><td><a href="https://docs.chainupcloud.com/blockchain-api/sui-4">https://docs.chainupcloud.com/blockchain-api/sui-4</a></td></tr><tr><td><img src="/files/vrH1CkOpIqxJnb7yl5Bw" alt="" data-size="original"></td><td></td><td></td><td><a href="https://docs.chainupcloud.com/blockchain-api/ethereum/json-rpc-methods">https://docs.chainupcloud.com/blockchain-api/ethereum/json-rpc-methods</a></td></tr></tbody></table>

[**Sign up for free now**](https://cloud.chainup.com/app/register)&#x20;


# Chainup Cloud API Quickstart

All in one Web3 platform

### The Chainup Cloud platform API allows you to interact with your organization:

If you're unfamiliar with the concept of blockchain, here's a **brief overview**:

Chainup Cloud’s API makes it easy for developers to interact with the Ethereum blockchain. It provides a simple way to read and write data to the blockchain, without having to worry about the complexities of running an Ethereum node.

* The Ethereum blockchain is a distributed database that stores data in blocks.
* Chainup Cloud provides a bridge between developers and the Ethereum blockchain, allowing them to easily access and interact with the blockchain's data.
* Developers can use Chainup Cloud’s API to read and write data to the blockchain, without having to set up and maintain their own Ethereum nodes.

### Create API key

You must create an API key to authenticate your requests to the Chainup Cloud API.

<figure><img src="/files/cwxzFWPogxqZuGXa1s6q" alt=""><figcaption><p>Create API</p></figcaption></figure>

To create an API key:

1. Go to the API keys section.
2. Click **Create key**.
3. Type in a name for the key and click **Next**.
4. Copy or write down the created API key.

> Hint: Make sure you keep the API key secure.

### Delete API key

You can delete your existing API keys.

To delete an API key:

1. Go to the API keys section.
2. Click the edit icon next to the key you want to delete.
3. Click **Delete**.


# Products

Breaking down the ChainUp Cloud Product Suite


# Blockchain API

Learn what APIs are available via ChainUp Cloud and how to use them

ChainUp Cloud supports each network's common APIs so you can focus on building while benefiting from the same endpoints and methods available at the node level. There are no lock-ins, simply benefit from high scalability while we take care of maintaining the level of service necessary for your product to thrive.

The common network APIs should only be the beginning of the journey for Web3 developers. ChainUp Cloud is developing Advanced APIs to help developers unlock the unique features and attributes of Web3 protocols. Our suite of Advanced APIs allows developers to create powerful applications at a fraction of the cost, with the potential to capitalize on blockchain-native use cases.

Advanced APIs complement the common APIs to give its users superpowers in order to create the Web3's killer apps.

## Difference Between Quotas and Rate Limits

A Quota measures how many total requests you can make across *all your services* in one day.

A Rate Limit measures how many requests you can make against a *specific endpoint* in one second.

If you go over your Quota for the day, you'll need to upgrade your plan.

If you hit a Rate Limit for an endpoint, you'll need to retry your requests.

The goal of a Quota is to allow customers to pay for what they use, similar to a cell phone plan.

The goal of a Rate Limit is to ensure quality of service, and most users will never come close to hitting a Rate Limit.

## How Do I Know When I've Hit My Quota?

ChainUp Cloud will return status code `HTTP 429` "Too Many Requests" when you exceed your Quota.

To confirm this, you can view your current Quota usage on your ChainUp Cloud Dashboard.

![Quota usage](/files/z8d7awa6HnwxCKnEjMOQ)

You can upgrade your plan to increase your Quota.

## How Do I Know When I'm Getting Rate Limited?

ChainUp Cloud will return status code `HTTP 429` "Too Many Requests" when you are getting rate limited for a specific endpoint.

If this happens, you can confirm on your ChainUp Cloud Dashboard that you are not over your Quota and that you are instead getting rate limited.

If you are getting rate limited, you will need to retry your requests in your application. Since Rate Limits are measured per second, you could simply wait for a second and try again.

If you need more information about quotas and rate limits, join [**our community**](https://t.me/ChainUp2022) and one of our experts will help you out!


# Fullnode Service

Learn how to launch a fullnode on any blockchains in a few clicks

ChainUp Cloud provides fullnode services so that you do not have to spend engineering time maintaining and managing nodes yourself. This allows you to focus on building your product rather than having to worry about infrastructure maintenance.

Running your own nodes can be very expensive from storage to bandwidth to valuable engineering time. Things like spinning up more nodes when scaling, upgrading nodes to the latest versions, and ensuring state consistency, can distract from building and spending resources on your desired Web3 product.

### What is a fullnode?

An fullnode builds an archive of historical states. This type of node is useful when querying historical blockchain data that is not accessible on full nodes. Archive nodes aren’t required to participate in block validation.


# Dedicated Node

Launch a highly specialized node to achieve zero latency for your users

ChainUp Cloud provides dedicated node so that you can customize your nodes across different cloud services and geolocations. You can bring your closer to your community and achieve zero latency on your applications across the globe.

<figure><img src="/files/YvEFmGc6rv5V5bEJkidD" alt=""><figcaption><p>Spin your node anywhere in the world</p></figcaption></figure>


# White Label Validator

Maximize branding, security, and control with private dedicated validators

ChainUp Cloud provide validator nodes as a service. Forget about hardware specs, setup, node maintenance and upgrades. Validators do not need any deep technical knowledge to operate. You just need to upload your own signing credentials, and allow ChainUp Cloud to run a non-custodial validator on your behalf. ChainUp Cloud's White Label Validator is designed for the most sophisticated exchanges, custodians, and institutional investors.

### Security & Customizability

To enterprises, security is of maximum importance. ChainUp Cloud validator nodes do not own the withdrawal keys and only controls the validator signing keys. Funds can only be withdrawn by the enterprises themselves.&#x20;

The validator nodes are also customizable to fit the needs of various business use cases through a simple UI. There is no need for setup, node maintenance and upgrades, we will handle it.

### Maximum Value Extraction

Our validator nodes comes with Maximum Value Extraction to boost validator rewards to the utmost amount.&#x20;

To do so, we utilize cutting edge technologies like MEV-boost (For Ethereum), MEV-Bor (For Polygon), Jito (For Solana) and many more. We are also continuously developing our own in-house MEV software for other blockchains to maximize validator rewards.

<figure><img src="/files/wyWhNRqqiRSVrf4afNO7" alt=""><figcaption><p>Value Extraction</p></figcaption></figure>


# Staking

Learn what is staking and stake with ChainUp Cloud!

Staking is a public good for the Web3 ecosystem. Any user with any amount of cryptocurrency can help secure the network and earn rewards:moneybag: in the process.

Integrating and staking new tokens can be a time-consuming and expensive process. Limited engineering resources and a lack of detailed protocol knowledge often combine to hinder the deployment of staking. ChainUp Cloud addresses these challenges by providing a single interface (using KingHash) that connects to over 50 protocols, enabling clients to offer staking in a matter of minutes.

![Staking](/files/vrl3tLz78VR9Cxy6EeHr)

[**Start staking here now!**](https://cloud.chainup.com/app/staking)


# HashKing Aggregator

Learn how to optimize staking yield through a single click

There are various ways of staking on Ethereum. Running your own validator node, staking through SSV, and plenty of liquid staking options such as Lido, Rocketpool, Stakewise, Swell Network, Frax and more!

So how can users optimize their yield when staking on Ethereum? HashKing aggregator is a smart contract that leverages cutting-edge, innovative algorithms that can help users to discover the best staking strategies. All users need to do is to click stake and enjoy maximize returns on their Ether!

### Aggregator Algorithm

This is a brief overview of how HashKing aggregator works. When user's want to stake or unstake their Eth, a series of complex computations happen behind the scene. It evaluates if there is anyone else planning to stake or unstake, the current projected yield of various protocols and finds the best combination of staking strategies.

<figure><img src="/files/pORS2f81asvoRRkN2Lac" alt=""><figcaption><p>Overview of aggregator</p></figcaption></figure>

The aggregator is non-custodial in nature. Users can see the exact breakdown of their staked Eth on-chain. And users can withdraw their Eth from the smart contract anytime (may have some restrictions until [**after Shanghai Upgrade**](/staking/staking-on-ethereum/shanghai-upgrade)) as long as they have their private keys.&#x20;

### Risk Minimization & Yield Maximization

<figure><img src="/files/Xi59PZE5N3ew80N9CBYF" alt=""><figcaption><p>Efficient Frontier</p></figcaption></figure>

The modern portfolio theory (MPT) is a practical method for selecting investments in order to maximize their overall returns within an acceptable level of risk. The key insight is that by combining assets with different expected returns and volatilities, one can decide on a mathematically optimal allocation which minimizes the risk for a target return – the set of all such optimal portfolios is referred to as the efficient frontier. And that is precisely what HashKing aggregator offers.

[**Start staking here now!**](https://www.kinghash.com/)


# ChainNova

Introducing ChainNova – the easiest way to launch your NFT collection in minutes, no coding skills required! It's 100% free. With ChainNova , creating an amazing project is a breeze, thanks to our NFT art generator.\
![](/files/76XBYHd1kb9zUFTUzD81)\
The ChainNova NFT collection, released in December, has gained significant popularity in the market. This project, led by the ChainUp cloud developer community, is designed to celebrate Christmas and build community engagement. During the pre-launch phase, whitelisted users have the opportunity to mint NFTs for free, while the public sale offers non-whitelisted users a chance to purchase NFTs for 0.001 ETH (approximately 2 USD). The creative concept revolves around a blank box symbolizing infinite possibilities, and each NFT features unique expressions and decorations following the theme "The Box of Infinite Possibilities." Holders of ChainNova NFTs will receive priority access to future benefits within the ChainUp cloud developer community.

Our user-friendly platform allows you to effortlessly design the smart contract you need. In just a few minutes, set up all the details for your presale, public sale, and custom mint button! When you're ready, hit a button, and we'll generate your custom smart contract in seconds. From art generation to custom smart contracts and mint buttons, it's all covered – and it's all free.

ChainNova is the most beginner-friendly NFT Launchpad, trusted by professionals. Enjoy unlimited free art generation, launch your NFT collection in just 20 minutes, and monetize it safely with custom smart contracts, allowlists, and personalized minting features.

ChainNova makes the NFT process simple and accessible, even for those new to the world of digital collectibles. You can use our platform to create, buy, and even sell your own NFTs without needing complex technical knowledge.

ChainNova removes the tech barrier with its no-code platform, letting you design and market your NFTs on top platforms like Blur and OpenSea with ease.


# For Developers

{% hint style="info" %}
**Good to know:** Web3 developers create apps that aren't limited to a single cloud server but are instead distributed on a blockchain or decentralized P2P network that isn't controlled by a central authority.
{% endhint %}


# Use Blockchain API

Quick start guide for Web3 developers

### 1. Creating an Account

**Step 1:** Users are able to sign up on [**ChainUp Cloud**](https://cloud.chainup.com/app/register).

![Sign Up](/files/3sDZhijxoVCODn5VWMsp)

**Step 2:** Login to [**ChainUp Cloud**](https://cloud.chainup.com/app/login) with your newly created account.

![Login](/files/BqfwFVWcBrNRe6Qm9IXQ)

### 2. User Dashboard

**Step 1:** Once you have logged in to [**ChainUp Cloud**](https://cloud.chainup.com/app/api), you will need to create a new API key and select the blockchain.

![Create API](/files/7isH7aedp5jr2r08XqgS)

**Step 2:** Now, type in the name of your API and select the blockchain.

![Select Blockchain](/files/SCYsgOzHpQwVuO3yUo4y)

**Step 3:** After creating the API, you will get access to the API key under the Project's API Panel, where you can view, copy, create and delete your API keys. You can also view other statistics on the API usage.

![View API key](/files/XqyFgwH8hMPacJz63xPk)

**Step 4:** You can also scroll down to get more info regarding the integration.

![Integration guide](/files/cUM3tWcKsI5obOF8HjA7)

**Step 5:** You can scroll further down to configure the settings of the API.

![Configure API settings](/files/CtP26I4E89tUqdBlwkH1)

**Step 6:** You can return the dashboard API panel to have an overview of all your APIs.

![API Overview](/files/hHkzoCVJ3DEv3LJE0Dsl)

### 3. Accessing the Blockchain

In this example, we’ll access the Polkadot Blockchain.

**Step 1:** When scrolling down to the integration section, you will be provided with the URL for this service.

![Integration guide](/files/cUM3tWcKsI5obOF8HjA7)

**Step 2:** Depending on your setup, there are several ways to use your API key. You can either use the JSON-RPC, WebSocket and more. Here is an example curl:

```
curl -i -X POST  -H 'content-type: application/json' --data '{"jsonrpc":"2.0","method":"chain_getBlock","params":[],"id":32}'  https://api.chainup.net/polkadot/polkadot/93f01aa89fe14a5a9fc1a4c11f6087af
```

Or you can use WebSocket to connect:

```
wscat -c  wss://api.chainup.net/ws/polkadot/polkadot/93f01aa89fe14a5a9fc1a4c11f6087af
```

[**Sign up now**](https://cloud.chainup.com/app/register) to start building in seconds and discover the wonders of ChainUp Cloud!


# Deploy Dedicated Node

Quick start guide for Web3 developers

### 1. Creating an Account

**Step 1:** Users are able to sign up on [**ChainUp Cloud**](https://cloud.chainup.com/app/register).

![Sign Up](/files/3sDZhijxoVCODn5VWMsp)

**Step 2:** Login to [**ChainUp Cloud**](https://cloud.chainup.com/app/login) with your newly created account.

![Login](/files/BqfwFVWcBrNRe6Qm9IXQ)

### 2. User Dashboard

**Step 1:** Once you have logged in to [**ChainUp Cloud**](https://cloud.chainup.com/app/nodes), you will need to create a new node and select the blockchain.

<figure><img src="/files/yDHsKavoqhWhDml0sMUw" alt=""><figcaption><p>Create Node</p></figcaption></figure>

**Step 2:** Now, type in the name of your node, and select the Blockchain, Network and Node Type.

<figure><img src="/files/QHAf9ce3HuzUZcOZ2Vb7" alt=""><figcaption><p>Select node options</p></figcaption></figure>

**Step 3:** Next, select the Node's Location (ideally based on your user's geographic locations), the duration of operation (you can always top up later to extend the duration) and proceed to make a payment

<figure><img src="/files/pYOhpfPv78SmOZK4blqX" alt=""><figcaption><p>Making payment</p></figcaption></figure>

**Step 4:** Lastly, wait for your node to be ready and you can use it in a similar fashion as the [**Blockchain API**](/introduction/for-developers/use-blockchain-api)!

<figure><img src="/files/XGKTHnlXgpALstsVfGc5" alt=""><figcaption><p>Node is ready!</p></figcaption></figure>

[**Sign up now**](https://cloud.chainup.com/app/register) to start building in seconds and discover the wonders of ChainUp Cloud!


# Use distributed storage with IPFS API

Quick start guide for Web3 developers

## :construction: Under construction


# For Investors

{% hint style="info" %}
**Good to know:** depending on the product you're building, it can be useful to explicitly document use cases. Got a product that can be used by a bunch of people in different ways? Maybe consider splitting it out!
{% endhint %}


# How to stake Ethereum?

Delegate to any of our validators and staking networks that we support

A short guide to set up staking on Ethereum with [**ChainUp Cloud**](https://cloud.chainup.com/).

### **Prerequisites**

**a.** A compatible wallet (currently only supports [**Metamask**](https://metamask.io/)) that holds more than 32 Eth

**b.** Generate `deposit_data-timestamp.json` which can be done through the [**deposit-cli tool**](https://github.com/ethereum/staking-deposit-cli/releases/).&#x20;

{% hint style="info" %}
Specifically, what we actually need is the `withdrawal_credentials` within the `deposit_data-timestamp.json`
{% endhint %}

### 1. Generating `deposit_data`/`withdrawal_credentials`

**Step 1:** Download the deposit CLI app [**here**](https://github.com/ethereum/staking-deposit-cli/releases/), ensuring you've selected the right one for your operating system.

{% hint style="warning" %}
Please make sure that you are downloading from the Ethereum Foundation's official GitHub account - <https://github.com/ethereum/staking-deposit-cli/releases/>
{% endhint %}

<figure><img src="/files/Kj8ESdLxaXtoGyDyYOpt" alt=""><figcaption><p>Select the corresponding executable for your operating system</p></figcaption></figure>

**Step 2:** Once the download is complete, uncompress the downloaded file.

**Step 3:** Open your command line/terminal.

<figure><img src="/files/vBf3kcJDqrjKK6lwY5wr" alt=""><figcaption><p>Open a terminal</p></figcaption></figure>

**Step 4:** navigate (`cd`) to the directory containing the executable **`deposit`** file.&#x20;

<figure><img src="/files/E97T81QHpmU1isKuXRxL" alt=""><figcaption><p><code>cd</code> to the directory containing the executable</p></figcaption></figure>

**Step 5:** Run the executable with the following command `deposit.exe new-mnemonic --num_validators 1 --chain mainnet` for Windows and `./deposit new-mnemonic --num_validators 1 --chain mainnet` for Linux or MacOS.

<figure><img src="/files/f6HzbnEuhHzfXkj0YX2P" alt=""><figcaption><p>Generate keys &#x26; <code>deposit_data</code></p></figcaption></figure>

**Step 6:** <mark style="color:red;">Please note down the mnemonic phrase</mark> and locate the `deposit_data` file

<figure><img src="/files/MILXuaq2PJN1ib4BOpL8" alt=""><figcaption><p><code>deposit_data</code> file will be uploaded to ChainUp Cloud later</p></figcaption></figure>

{% hint style="info" %}
You can find alternative key generating tools [here](https://ethereum.org/en/staking/solo/#key-generators) recommended by the Ethereum foundation.
{% endhint %}

### 2. Uploading `deposit_data`/`withdrawal_credentials`

**Step 1:** Click on **Ethereum 2** (sidebar). Make sure, you are in the **Ethereum2** subpage, and click on the **Stake Button**.

<figure><img src="/files/f7lbb2iDvIcbnjLSseIS" alt=""><figcaption><p>Eth2 Validator Dashboard</p></figcaption></figure>

**Step 2:** Choose the network you are going to use and connect your [**Metamask**](https://metamask.io/) wallet.

<figure><img src="/files/tw4H0o435CNSsnRr5HSB" alt=""><figcaption><p>Make Deposit - Hosting your own nodes</p></figcaption></figure>

**Step 3:**  Import the deposit data (`deposit_data.json`) - this has been generated from the `deposit-cli` tool earlier.

**Step 4:** Click **Check Immediately** and a transaction should appear for you to confirm.

<figure><img src="/files/z0rmToOeXNDgjDgV0CTc" alt=""><figcaption><p>Submit the transaction</p></figcaption></figure>

**Step 5:** Await the transaction to be confirmed on-chain, and that's all! Your Eth is now staked and earning yield! :fire:

[**Sign up now**](https://cloud.chainup.com/app/register) to start staking and discover the wonders of ChainUp Cloud!

{% hint style="info" %}
**Random Fact:** Founded in 2017 and headquartered in Singapore, ChainUp is a leader in blockchain technology and crypto ecosystem solutions.
{% endhint %}


# Running your own validators

A short guide to set up an Ethereum validator with [**ChainUp Cloud**](https://cloud.chainup.com/) as your validator as a service provider. If you simply just want to stake Eth, it is recommended to check out the [**Ethereum Staking Guide**](/introduction/for-investors/how-to-stake) instead.

### **Prerequisites**

**a.** A compatible wallet (currently only supports [**Metamask**](https://metamask.io/)) that holds more than 32 Eth

**b.** Generate Validator Keys (`keystore_timestamp.json`), which can be done through the Ethereum launchpad ([**Mainnet**](https://launchpad.ethereum.org/en/overview), [**Goerli**](https://goerli.launchpad.ethereum.org/en/)) and the [**deposit-cli tool**](https://github.com/ethereum/staking-deposit-cli/releases/).&#x20;

**c.** Deposit 32 Eth (with your `deposit_data-timestamp.json`) either through the [**Abyss Eth2 Depositer**](https://abyss.finance/eth2depositor) (which currently supports only [**Mainnet**](https://etherscan.io/address/0xFA5f9EAa65FFb2A75de092eB7f3fc84FC86B5b18) and [**Goerli**](https://goerli.etherscan.io/address/0x2cB1A746A8652dfbb0FC11BdA71Bd991EB2Fd52e)) or Ethereum launchpad ([**Mainnet**](https://launchpad.ethereum.org/en/upload-deposit-data), [**Goerli**](https://goerli.launchpad.ethereum.org/en/upload-deposit-data)).&#x20;

### Eth2 Launchpad Demo Walkthrough

The following **video walkthrough** covers prerequisites **b** and **c**.&#x20;

{% embed url="<https://www.youtube.com/watch?ab_channel=ConsenSysMedia&v=4jpzo9qOaP8>" %}

### 1. Creating an Account

**Step 1:** Users are able to sign up on [**ChainUp Cloud**](https://cloud.chainup.com/app/register).

![Sign Up](/files/3sDZhijxoVCODn5VWMsp)

**Step 2:** Login to [**ChainUp Cloud**](https://cloud.chainup.com/app/login) with your newly created account.

![Login](/files/BqfwFVWcBrNRe6Qm9IXQ)

### 2. Upload Validator Keys

**Step 1:** Click on **Ethereum 2** (sidebar). Make sure, you are in the **Ethereum2** subpage, and click on the **Host Button**.

<figure><img src="/files/88aUNFg4QjT1hN21KtsQ" alt=""><figcaption><p>Eth2 Validator Dashboard</p></figcaption></figure>

{% hint style="info" %}
We assume users have already completed all the prerequisites prior to reaching this step
{% endhint %}

**Step 2:** Choose the network you are going to use and connect your [**Metamask**](https://metamask.io/) wallet.

<figure><img src="/files/srtnJfFVPChTl6BbmlcU" alt=""><figcaption><p>Make Deposit - Hosting your own nodes</p></figcaption></figure>

{% hint style="info" %}
[**ChainUp Cloud**](https://cloud.chainup.com/) is still providing support for the Ropsten Testnet. You can manually add the Ropsten network to your wallet with our [**Blockchain API**](/introduction/products/blockchain-api).
{% endhint %}

**Step 3:** If you have deposited 32 Eth through the official staking launchpad or [**Abyss Eth2 Depositer**](https://abyss.finance/eth2depositor) (prerequisites **b** and **c**), the wallet details should be reflected on the dashboard.

<figure><img src="/files/53kiRLebY2Dvx1Vyl581" alt=""><figcaption><p>Make Deposit - Check Your Wallet Details</p></figcaption></figure>

**Step 4:** Create validator by checking **Yes** for the following two options.&#x20;

<figure><img src="/files/rxlWiUcl7IHT3feAqXRS" alt=""><figcaption><p>Create validator</p></figcaption></figure>

**Step 5:**  Import the keys (`keystore_timestamp.json`) and password - this has been generated from the `deposit-cli` tool by following the [**video above**](https://www.youtube.com/watch?v=4jpzo9qOaP8\&ab_channel=ConsenSysMedia).&#x20;

<figure><img src="/files/qlv7KPFIn6FGi8mdzRuG" alt=""><figcaption><p>Import Keys - upload deposit_data.json </p></figcaption></figure>

**Step 6:** Done and set! You can now click through the confirmation steps and validator should be active soon.&#x20;

<figure><img src="/files/KJqXYpbszQa9ZE3xtYSS" alt=""><figcaption><p>Dashboard showing validator status. </p></figcaption></figure>

{% hint style="info" %}
After the initial 32 Eth deposit, you may check back after some time or so, as it may take [**more than 12 hours**](https://kb.beaconcha.in/ethereum-2.0-depositing) for a transaction to reach the deposit contract on Beacon Chain.
{% endhint %}

[**Sign up now**](https://cloud.chainup.com/app/register) to start running your own validators and discover the wonders of ChainUp Cloud!


# ChainUpCloud Open API

## Base URL & Auth

<http://staking.chainup.net/${protocol}/${network}/${token}>

### **Support Protocol**

| <h3><strong>Protocol</strong></h3> | <h3><strong>Network</strong></h3> |
| ---------------------------------- | --------------------------------- |
| Ethereum                           | Mainnet                           |

### **Path Params**

| **Parameter name** | **Data type** | **Whether it must be passed.** | **Description**                                                         |
| ------------------ | ------------- | ------------------------------ | ----------------------------------------------------------------------- |
| protocol           | string        | true                           | Protocol (ethereum)                                                     |
| token              | string        | true                           | Users are bound to Staking's token and authenticated through the token. |

\
**Create token**

1. ChainUp creates tokens and sends them to customers via email.
2. User side generates Token.

<br>


# Staking Rewards API

### Overview:

The Staking Rewards API provides access to information and functionalities related to staking rewards, focusing on Proof-of-Stake blockchains. Here's a breakdown of its functionalities:

1. **ETH Staking API :**
   * &#x20;Only count the validators of ChainUpCloud platform.
2. **Validator Historical Rewards:**
   * Queries and returns the total accumulated rewards for a user's validators.
3. & 4. **Validator Daily Rewards (duplicate functionality):**
   * Allows querying the daily rewards earned by a user's validators within a specified date range. (Functionality is identical for both options)
4. **Cloud Validator Settlement Rewards (ChainUpCloud):**
   * Query user cloud platform online settlement validator settlement execution layer reward list


# Validator Daily  Rewards

Query the daily rewards within the specified date of the user verifier

### **HTTP Request**

* This API allows querying daily rewards for a user verifier within a specified date range.

```HTTP
Get /api/v1/validator/daliy-rewards
```

**Path Params:** No parameters

### **Request Params**

* `start_date` (Optional): Start date for querying rewards.
* `end_date` (Optional): End date for querying rewards.

| **Parameter name** | **Data type** | **Whether it must be passed.** | **Description**                                                      |
| ------------------ | ------------- | ------------------------------ | -------------------------------------------------------------------- |
| start\_date        | string        | false                          | Start date (YYYY-MM-DD) (UTC + 8)                                    |
| end\_date          | string        | false                          | End date (YYYY-MM-DD) (UTC + 8)                                      |
| page               | int           | false                          | Page number (default is 1)                                           |
| limit              | int           | false                          | Number of entries per page (default is 10 , maximum support is 1000) |

### **Note on Request Params:**

* If no date is provided, the default query is for the reward data of the previous day.
* The example request queries rewards for the date range \[2023-07-01, 2023-07-03), a left-closed right-open interval.

### **Example Request:**

```bash
GET /api/v1/validator/daily-rewards?start_date=2023-07-01&end_date=2023-07-03

```

### **Response**

| **Parameter name**        | **Data type** | **Description**                                                                                                             |
| ------------------------- | ------------- | --------------------------------------------------------------------------------------------------------------------------- |
| date                      | string        | Date (UTC + 8)                                                                                                              |
| el\_reward                | string        | Execution layer income (unit: eth) (real income on the chain, if there is settlement, it needs to be calculated separately) |
| cl\_reward                | string        | Consensus layer revenue (unit: eth)                                                                                         |
| total\_reward             | string        | Total revenue of execution layer + consensus layer (unit: eth)                                                              |
| validators\_active\_count | int           | Number of validators generating revenue                                                                                     |

### **Response:**

* The response code is `200`, indicating success.
* The `pagination` field provides information about the page, limit, and total records.
* The `data` field contains an array of daily rewards, each with details such as date, el\_reward, cl\_reward, total\_reward, and validators\_active\_count.

### **Example:**

```JSON
{
    "code": "200",
    "msg": "Success",
    "pagination": {
        "page": 1,
        "limit": 1,
        "total": 2
    },
    "data": {
        "reward": [
            {
                "date": "2023-07-1",
                "el_reward": "0.039144409",
                "cl_reward": "0.0446064811764954",
                "total_reward": "0.0837508901764954",
                "validators_active_count": 2
            },
            {
                "date": "2023-07-2",
                "el_reward": "0.039144409",
                "cl_reward": "0.0446064811764954",
                "total_reward": "0.0837508901764954",
                "validators_active_count": 2
            }
        ]
    }
}
```


# Validator Total Rewards

This API endpoint provides a comprehensive overview of your validator rewards and overall staking status.

### **HTTP Request**

```HTTP
Get /api/v1/validator/total-rewards
```

**Path Params :** No param

### **Request Params**

| **Parameter name** | **Data type** | **Whether it must be passed.** | **Description**                                                       |
| ------------------ | ------------- | ------------------------------ | --------------------------------------------------------------------- |
| page               | int           | false                          | Page number (default is 1)                                            |
| limit              | int           | false                          | Number of entries per page (default is 10 , maximum support is 1000 ) |

### **Response**

<table data-header-hidden><thead><tr><th></th><th width="193"></th><th></th></tr></thead><tbody><tr><td><strong>Parameter name</strong></td><td><strong>Data type</strong></td><td><strong>Description</strong></td></tr><tr><td>el_total_reward<br></td><td>string</td><td>Total revenue of the execution layer (unit: eth) (real revenue on the chain, if there is settlement, it needs to be calculated separately)</td></tr><tr><td>cl_total_reward</td><td>string</td><td>Total revenue of consensus layer (unit: eth)</td></tr><tr><td>total_reward</td><td>string</td><td>Total revenue of execution layer + consensus layer (unit: eth)</td></tr><tr><td>cl_balance</td><td>string</td><td>Consensus layer balance (unit: eth)</td></tr><tr><td>effective_balance</td><td>string</td><td>Effective balance of consensus layer (unit: eth)</td></tr><tr><td>status</td><td>string</td><td>Validator status</td></tr><tr><td>validators_active_count</td><td>int</td><td>Number of active validators</td></tr><tr><td>validators_total_count</td><td>int</td><td>Total number of validators</td></tr><tr><td>validators_total_rewards</td><td>string</td><td>Cumulative total rewards for validators</td></tr><tr><td>validators_total_cl_balance</td><td>string</td><td>Validator consensus layer total balance</td></tr></tbody></table>

### **Example:**

```JSON
{
    "code": "200",
    "msg": "Success",
    "pagination": {
        "page": 1,
        "limit": 10,
        "total": 2
    },
    "data": {
        "validator_details": [
            {
                "validator_index": 1,
                "pubkey":"0x8000025593183bad1730e78b87b6bce428492e3bf9142d2609032daf674596f955d6403481c7d84809905a262c0136e2",
                "el_total_reward": "0.039144409",
                "cl_total_reward": "0.0446064811764954",
                "total_reward": "0.0837508901764954",
                "cl_balance": "32.0837508901764954",
                "effective_balance": "32",
                "status": "active"
            },
            {
                "validator_index": 2,
                "pubkey":"0x8000091c2ae64ee414a54c1cc1fc67dec663408bc636cb86756e0200e41a75c8f86603f104f02c856983d2783116be13",
                "el_total_reward": "0.039144409",
                "cl_total_reward": "0.0446064811764954",
                "total_reward": "0.0837508901764954",
                "cl_balance": "32.0837508901764954",
                "effective_balance": "32",
                "status": "active"
            }
        ],
        "validators_active_count": 2,
        "validators_total_count": 2,
        "validators_total_rewards": "0.3246064811764954",
        "validators_total_cl_balance": "64.3246064811764954"
    }
}
```


# Cloud Validator Settles EL Rewards

This functionality allows you to **check your rewards earned through staking on the cloud platform**.

**How it works:**

1. **Make a request:** You can use a **GET** request to the API endpoint `/api/v1/cloud/validator/el/settle/rewards`.
2. **Optional parameters:**
   * **Start & End Date (YYYY-MM-DD format):** Specify the date range for which you want to see rewards (limited to one month).
   * **Validator Indexes (array):** List specific validators to view their rewards (if empty, all your validators are included).
   * **Page & Limit:** Control the number of results displayed per page.

| **Parameter name** | **Data type** | **Whether it must be passed.** | **Description**                                                                                                                       |
| ------------------ | ------------- | ------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------- |
| start\_date        | string        | false                          | Start date (YYYY-MM-DD) (UTC + 8)                                                                                                     |
| end\_date          | string        | false                          | End date (YYYY-MM-DD) (UTC + 8)                                                                                                       |
| validator\_indexes | array         | false                          | Validator index list (if empty, query all validators of the user by default; if not empty, query the data of the specified validator) |
| page               | int           | false                          | Page number (default is 1)                                                                                                            |
| limit              | int           | false                          | Number of entries per page (default is 10, maximum support is 1000)                                                                   |

**Note: Request date limit is up to one month**

1. end\_date cannot be greater than the current date.
2. start\_date cannot be greater than the current date.
3. This interface only supports querying mainnet reward data
4. This interface only supports queries. The current time node index exists on the cloud platform and there is index data for block reward data

**Response:**

* If successful, you'll receive a response with details like:

**Example:** start\_date="2023-07-01"end\_date="2023-07-03"

**Response**

| **Parameter name** | **Data type** | **Description**       |
| ------------------ | ------------- | --------------------- |
| pubkey             | string        | Public key            |
| validator\_index   | int           | Validator index       |
| fee\_address       | string        | Fee addres            |
| el\_reward         | string        | Block sales revenue   |
| fee\_rate          | string        | Service charge ratio  |
| user\_reward       | string        | User benefits         |
| service\_fee       | string        | Service charge        |
| reward\_time       | string        | Block production time |
| block\_number      | int           | Block height          |

**Example:**

```JSON
{
    "code": "200",
    "msg": "Success",
    "data": {
        "rewards": [
            {
                "id": 1740,
                "pubkey": "0x93943bd530b79623af943a2af636f06c327203d82784fafda621439438c418bd8d26c82061bbc956fc7f0f8ddb138173",
                "validator_index": 510848,
                "fee_address": "0xade4A1e54a0efA7c0557e8fdecC714F716eD0Be6",
                "el_reward": "0.0197237331857824",
                "fee_rate": "0.3",
                "user_reward": "0.01380661323004768",
                "service_fee": "0.00591711995573472",
                "reward_time": "2023-08-07 17:45:47",
                "block_number": 17864629
            },{
                "id": 1739,
                "pubkey": "0x93943bd530b79623af943a2af636f06c327203d82784fafda621439438c418bd8d26c82061bbc956fc7f0f8ddb138173",
                "validator_index": 510848,
                "fee_address": "0xade4A1e54a0efA7c0557e8fdecC714F716eD0Be6",
                "el_reward": "0.0534498763287165",
                "fee_rate": "0.3",
                "user_reward": "0.03741491343010155",
                "service_fee": "0.01603496289861495",
                "reward_time": "2023-08-04 21:15:11",
                "block_number": 17844231
            }
        ],
        "sum_reward": "0.496150059064933",
        "sum_service_fee": "0.212635739599257"
    },
    "pagination": {
        "page": 1,
        "limit": 2,
        "total": 11
    }
}
```


# ETH Staking API

This API allows you to interact with the staking process for the Ethereum blockchain. Here's a breakdown of the key functionalities:

The following are the steps for ETH staking/unstaking:

<figure><img src="/files/HvHWgIOWFb4u27wDIvLI" alt=""><figcaption><p>Creates new validator keys and returns a staking transaction to deposit ETH to those validators. A maximum of 100 validators can be created per request.</p></figcaption></figure>

### **Here are the five steps of the staking process:**

**1. Create Validators:**

* Use the Staking API to create special accounts called validators, up to 100 at once.
* The API provides an unsigned transaction that will deposit ETH to these validators.

**2. Sign Transaction:**

* Use your private key (like a secret password) to approve the unsigned transaction received from the API. **Never share this key with anyone!**
* Code examples for signing can be found on GitHub: \[ <https://github.com/chainupcloud/staking-demo-go/blob/main/examples/signed_tx_deposit_test.go>  ] (see the example TestSignAndBroadcastTx only, do not execute code from unknown sources).

**3. Broadcast Transaction:**

* Two options for broadcasting the signed transaction:
  1. **Manual Broadcast:** Use the provided code for reference, but proceed only if you have technical expertise.
  2. **API Broadcast:** Simplify the process by using the Staking API endpoint `POST /api/v1/validator/broadcast`.

**4. Query Rewards:**

* Track your earnings using the Staking Rewards API.
* Get more information about specific validators using the Staking API endpoint `POST /api/v1/validator/details`.

**5. Exit (Optional):**

* To stop staking with a validator and withdraw your ETH, use the Staking API endpoint `POST /api/v1/validator/exit`.
* Expect a waiting period for funds to become available.


# Broadcast Staking Tx

Broadcast a signed staking transaction. Returns a transaction hash whose status can be checked using the Ethereum RPC eth\_getTransactionReceipt method (reference).

### **HTTP Request**

This API allows the broadcasting of a signed staking transaction.

```HTTP
POST /api/v1/validator/broadcast
```

**Path Params:** No parameters

**Request Params:**

* **signed\_transaction (string) \[Required]:** The signed staking transaction.

<table data-header-hidden><thead><tr><th width="229"></th><th></th><th></th><th></th></tr></thead><tbody><tr><td><strong>Parameter name</strong></td><td><strong>Data type</strong></td><td><strong>Whether it must be passed.</strong></td><td><strong>Description</strong></td></tr><tr><td>signed_transaction</td><td>string</td><td>true</td><td>Signed tx</td></tr></tbody></table>

**Response:**

* Upon successful broadcasting, the response contains a transaction hash (`tx_hash`) for the deposited transaction.
* **tx\_hash (string):** Hash of the deposited transaction.

\
**Example**

```JSON
{
    "code": "200",
    "msg": "Success",
    "data": {
        "tx_hash": "0xae96cb28f012f20a63118cf34f60de63c9884a483cc742d5f41a1aee6f5cd5f3"
    }
}
```

**Response Explanation:**

* In this example, the HTTP response code is `200`, indicating success. The `tx_hash` in the data field represents the hash of the deposited staking transaction.


# Create Validators

### Create Validators

Creates new validator keys and returns a staking transaction to deposit ETH to those validators. A maximum of 100 validators can be created per request.

{% hint style="info" %}
Note: This API needs to generate validator keys, which is a time-consuming operation. The peak number is 100 keys. This API takes about 20 seconds.
{% endhint %}

### **HTTP Request**

```HTTP
POST /api/v1/validator/create
```

### **Path Params :**&#x20;

No param<br>

### **Request Params**

| **Parameter name**      | **Data type** | **Whether it must be passed.** | **Description**                                                        |
| ----------------------- | ------------- | ------------------------------ | ---------------------------------------------------------------------- |
| validator\_count        | int           | true                           | Number of validators (maximum: 100)                                    |
| withdrawal\_address     | string        | true                           | Withdrawal address                                                     |
| deposit\_from\_address  | string        | false                          | Deposit address, default value is: withdrawal\_address                 |
| fee\_recipient\_address | string        | false                          | Execution layer revenue address, default value is: withdrawal\_address |

\
**Response**\
**Example**

```JSON
{
    "code": "200",
    "msg": "Success",
    "data": {
        "validators": [
            {
                "network": "holesky",
                "pubkey": "0xd1ef8d468ef53d82368d2026e321ab2c6d44f44c33b7b9f22369bf6dcf37fb0208f82dd6b485325ce1bbf5aec7ad45bb",
                "amount_wei": "32000000000000000000",
                "withdrawal_address": "0xE40F80618324C814cD444434670a44ba4583aE38",
                "deposit_from_address": "0xE40F80618324C814cD444434670a44ba4583aE38",
                "fee_recipient_address": "0xE40F80618324C814cD444434670a44ba4583aE38",
                "deposit_data": {
                    "amount": 32000000000,
                    "signature": "0xaab7e3b41689fced6c3437a6bc5caf471ed319b94ad2642c47c5f641d5e3a046432171d47d48cd7a3e8a323939d4976c1315ad4dae134c421214673ddff9105ef1bb7f79c1babc6cd9c31428d5e44472164e9c9fccfd10fb9768c0855b194f49",
                    "deposit_data_root": "0xb2f5083221d6b61f2237af155c07c746f6a75c7d24dfe418106efdf87e9b9422",
                    "deposit_message_root": "0x026cbefa013e03a3d81592b7a5f6205773c12a6f7674529e497e9a4eb2df2d44",
                    "fork_version": "0x00000000"
                }
            }
        ],
        "staking_transaction": {
            "from": "0xE40F80618324C814cD444434670a44ba4583aE38",
            "to": "0x94a2da805867c962148d3832d9afc512034a62c5",
            "amount_wei": "32000000000000000000",
            "contract_call_data": "0x4f498c730000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000012000000000000000000000000000000000000000000000000000000000000001a000000000000000000000000000000000000000000000000000000000000002600000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000308dc141dc3a91a5b09dca7e9eb1c0f1f6cac2cad68ffc478956b741b1d9318285f31434fbcd7b3ae31697d772ba9d767600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000020010000000000000000000000f60e717ce428e7d1d61e147aa34f1595caa56669000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000060b29edc85070d565b7a5e4f1d86443979231b4152be44b03cfe94c5b96101f51e70eaa488030dd5a8ae10412ae0c64d9716fb7248cc9e94adb8b62e9025de645a46f05b767d9100ef5587c3bc0ebb78f12ff3b821417e97e36dcd8ff2376ca9c400000000000000000000000000000000000000000000000000000000000000010cf3e3a73ec22d7278d7b54ba88ae24013e5370bc263e4b3a26fef09b1b1946d",
        }
    }
}
```


# Get Validators

This API endpoint allows you to retrieve information about your validators.

### **HTTP Request**

Use a `POST` request to the endpoint.

```HTTP
POST /api/v1/validator/details
```

### **Path Params:** No param<br>

### **Request Params**

#### **Request:**

* Use a `POST` request to the `/api/v1/validator/details` endpoint.
* You can optionally provide:
  * **pubkeys (array):** List of specific validator keys to query (if empty, all your validators are included).
  * **withdrawal\_address:** Filter validators by their withdrawal address.
  * **Pagination details (page & limit):** Control the number of results displayed per page.

<table data-header-hidden><thead><tr><th width="205"></th><th></th><th></th><th></th></tr></thead><tbody><tr><td><strong>Parameter name</strong></td><td><strong>Data type</strong></td><td><strong>Whether it must be passed.</strong></td><td><strong>Description</strong></td></tr><tr><td>pubkeys</td><td>array</td><td>false</td><td>Verifier list</td></tr><tr><td>withdrawal_address</td><td>string</td><td>false</td><td>Withdrawal address</td></tr><tr><td>page</td><td>int</td><td>false</td><td>Page number (default is 1)</td></tr><tr><td>limit</td><td>int</td><td>false</td><td>Number of entries per page (default is 10, maximum support is 1000)</td></tr></tbody></table>

### **Response**

| **Parameter name**        | **Data type** | **Description**                                                       |
| ------------------------- | ------------- | --------------------------------------------------------------------- |
| network                   | string        | network                                                               |
| pubkey                    | string        | pubkey                                                                |
| withdrawal\_address       | string        | Consensus layer withdrawal address                                    |
| withdrawal\_credentials   | string        | Consensus layer withdrawal voucher                                    |
| fee\_recipient\_address   | string        | Execution layer reward receiving address                              |
| deposit\_from\_address    | string        | Deposit from address                                                  |
| status                    | string        | Validator status: <https://hackmd.io/@protolambda/validator\\_status> |
| slashed                   | boolean       | Was slashed                                                           |
| activation\_epoch         | string        | <p><br></p>                                                           |
| exit\_epoch               | string        | <p><br></p>                                                           |
| withdrawable\_epoch       | string        | <p><br></p>                                                           |
| estimated\_active\_at     | string        | Estimated activation time                                             |
| estimated\_exit\_at       | string        | Estimated exit time                                                   |
| estimated\_withdrawal\_at | string        | Estimated withdrawal time                                             |
| is\_need\_exit            | boolean       | Whether to initiate an exit                                           |
| is\_post\_exit            | boolean       | Whether the exit request is broadcast to the chain                    |

\
**Example**

```JSON
{
    "code": "200",
    "msg": "Success",
    "pagination": {
       "page": 1,
       "limit": 10,
       "total": 2
    },
    "data": [
        {
            "network": "holesky",
            "pubkey": "0xd1ef8d468ef53d82368d2026e321ab2c6d44f44c33b7b9f22369bf6dcf37fb0208f82dd6b485325ce1bbf5aec7ad45bb",
            "withdrawal_address": "0xE40F80618324C814cD444434670a44ba4583aE38",
            "withdrawal_credentials": "0x010000000000000000000000fc438e6cc4b230eb5bfaae1337c3f5da2b9140f1",
            "fee_recipient_address": "0x781462762B706AA7c1DA71FBA1a545724928b81f",
            "deposit_from_address": "0xE40F80618324C814cD444434670a44ba4583aE38",
            "status": "active_ongoing",
            "slashed": false,
            "activation_epoch": "0",
            "exit_epoch": "18446744073709551615",
            "withdrawable_epoch": "18446744073709551615",
            "status_estimates": {
                "estimated_active_at": "2023-07-01T00:00:00.000Z",
                "estimated_exit_at": "2023-07-01T00:00:00.000Z",
                "estimated_withdrawal_at": "2023-07-01T00:00:00.000Z"
            },
            "is_need_exit": false,
            "is_post_exit": false
        }
    ]
}
```


# Exit Validators by Pubkeys

Unstake ETH from multiple validators at once.

This API endpoint allows you to **unstake** from multiple validators **simultaneously**.

### **HTTP Request**

```HTTP
POST /api/v1/validator/exit
```

**Path Params**

No param<br>

**Request:**

* **pubkeys (array):** This parameter is mandatory and requires a list of public keys for the validators you want to exit.

### **Response:**

* If successful, you'll receive a response with:
  * **code:** "200" indicating success.
  * **msg:** "Success" confirming the exit request.

### Example

```JSON
{
    "code": "200",
    "msg": "Success"
}

```

{% hint style="info" %}

* This API simplifies the process of exiting from several validators compared to exiting them individually.
* Double-check the public keys to ensure you're targeting the intended validators.
  {% endhint %}


# Error Codes

## Code

| code | message                            |
| ---- | ---------------------------------- |
| 200  | Success                            |
| 400  | Param error                        |
| 401  | Authentication failed              |
| 404  | Path Not Found                     |
| 500  | Server error                       |
| 4001 | Date format is incorrect           |
| 4002 | Date can not be greater than today |
| 4003 | Only support nearly 30 reward data |


# NFT API

Welcome to the cutting-edge world of NFTs powered by the ChainUp Cloud – the multi-chain API that revolutionizes the way you launch, verify, analyze, trade, and display NFTs. Our platform is designed to make the entire NFT experience faster, easier, and more cost-effective, providing developers with a powerful toolset to create innovative applications in the NFT space.

Explore our NFT API effortlessly through our [NFT API Swagger documentation,](https://chainupcloud.github.io/nft-api/#/) where you can visualize and interact with the API's resources without the need for any implementation logic. Dive into the details, understand endpoints, and streamline your development process with ease.<br>

### Features and Benefits

Our API empowers developers to implement successful NFT drops, and enable control over NFT ownership verification by seamlessly retrieving all NFTs currently owned by a given address. Our API ensures a secure and reliable process, enabling developers to build applications that depend on accurate ownership information. This not only saves developers money but also accelerates development timelines, allowing for the swift and reliable deployment of NFT-powered applications.

\
\
\
\ <br>


# Transfer API

The Transfers API allows you to easily fetch historical transactions

<mark style="color:blue;">`GET`</mark> `/nft/{chain}/{token}/getAssetsTransfer` &#x20;

#### Path Parameters

| Name                                      | Type   | Description                                                                      |
| ----------------------------------------- | ------ | -------------------------------------------------------------------------------- |
| {chain}<mark style="color:red;">\*</mark> | String | Placeholder for the blockchain identifier (e.g., Ethereum, Binance Smart Chain). |
| token<mark style="color:red;">\*</mark>   | String | Placeholder for the NFT token identifier.                                        |

{% tabs %}
{% tab title="Scroll" %}
{% code overflow="wrap" %}

```
curl -X POST "https://nft.chainup.net/scroll_mainnet/token/v1/getAssetTransfers" --data '{"category": ["ERC721"],"max_count": 5}' | jq .
```

{% endcode %}
{% endtab %}

{% tab title="HoleSky" %}
{% code overflow="wrap" %}

```
curl -X POST "https://nft.chainup.net/eth_holesky/token/v1/getAssetTransfers" --data '{"category": ["ERC721"],"max_count": 5}' | jq .
```

{% endcode %}
{% endtab %}
{% endtabs %}


# NFT Metadata Access

## Gets the metadata associated with a given Contract.

<mark style="color:blue;">`GET`</mark> `GET/nft/{chain}/{token}/getContractMetadata`&#x20;

{% tabs %}
{% tab title="Scroll" %}
{% code overflow="wrap" %}

```
curl "http://nft.chainup.net/scroll_mainnet/token/v1/getOwnersForNFT?token_id={TOKEN_ID}&contract_address={CONTRACT_ADDRESS}"
```

{% endcode %}
{% endtab %}

{% tab title="HoleSky" %}

```
curl -X POST "https://nft.chainup.net/eth_holesky/{token}/v1/getAssetTransfers"\
--data '{"category": ["ERC721"],"max_count": 5}'
```

{% endtab %}
{% endtabs %}

## Gets the batch metadata associated with a given Contract.

<mark style="color:blue;">`GET`</mark> `/nft/{chain}/{token}/getContractMetadataBatch`      &#x20;

{% tabs %}
{% tab title="Scroll" %}
{% code overflow="wrap" %}

```
curl -X POST "http://nft.chainup.net/scroll_mainnet/token/v1/getContractMetadataBatch" --data '{"contract_addresses": ["{CONTRACT_ADDRESSES_1}", "{CONTRACT_ADDRESSES_2}" ]}'
```

{% endcode %}
{% endtab %}

{% tab title="HoleSky" %}
{% code overflow="wrap" %}

```
curl -X POST "http://nft.chainup.net/eth_holesky/token/v1/getContractMetadataBatch" --data '{"contract_addresses": ["{CONTRACT_ADDRESSES_1}", "{CONTRACT_ADDRESSES_2}" ]}'
```

{% endcode %}
{% endtab %}
{% endtabs %}

## Gets the metadata associated with a given NFT.

<mark style="color:blue;">`GET`</mark> `/nft/{chain}/{token}/getNFTMetadata`          &#x20;

{% tabs %}
{% tab title="Scroll" %}
{% code overflow="wrap" %}

```
curl "http://nft.chainup.net/scroll_mainnet/token/v1/getNFTMetadata?contract_address={CONTRACT_ADDRESSES_1}&token_id={TOKEN_ID}&token_type=ERC721"
```

{% endcode %}
{% endtab %}

{% tab title="HoleSky" %}
{% code overflow="wrap" %}

```
curl "http://nft.chainup.net/eth_holesky/token/v1/getNFTMetadata?contract_address={CONTRACT_ADDRESSES_1}&token_id={TOKEN_ID}&token_type=ERC721"
```

{% endcode %}
{% endtab %}
{% endtabs %}

## Gets the batch metadata associated with a given NFT.&#x20;

<mark style="color:green;">`POST`</mark> `/nft/{chain}/{token}/getNFTMetadataBatch`

{% tabs %}
{% tab title="Scroll" %}
{% code overflow="wrap" %}

```
curl -X POST "http://nft.chainup.net/scroll_mainnet/token/v1/getNFTMetadataBatch" --data '{"tokens":[{"contract_address": "{CONTRACT_ADDRESSES_1}", "token_id": {TOKEN_ID} }]}'
```

{% endcode %}
{% endtab %}

{% tab title="HoleSky" %}
{% code overflow="wrap" %}

```
curl -X POST "http://nft.chainup.net/eth_holesky/token/v1/getNFTMetadataBatch" --data '{"tokens":[{"contract_address": "{CONTRACT_ADDRESSES_1}", "token_id": {TOKEN_ID} }]}'
```

{% endcode %}
{% endtab %}
{% endtabs %}

## Gets the metadata associated with a given Contract.&#x20;

<mark style="color:blue;">`GET`</mark> `/nft/{chain}/{token}/searchContractMetadata`

{% tabs %}
{% tab title="Scroll" %}
{% code overflow="wrap" %}

```
curl -X GET "http://nft.chainup.net/scroll_mainnet/token/v1/searchContractMetadata?query=Meme"
```

{% endcode %}
{% endtab %}

{% tab title="HoleSky" %}
{% code overflow="wrap" %}

```
curl -X GET "http://nft.chainup.net/eth_holesky/token/v1/searchContractMetadata?query=Meme"
```

{% endcode %}
{% endtab %}
{% endtabs %}


# Ownership & Token Gating

<mark style="color:blue;">`GET`</mark> `/nft/{chain}/{token}/getContractsForOwner`     &#x20;

{% tabs %}
{% tab title="Scroll" %}
{% code overflow="wrap" %}

```
curl "http://nft.chainup.net/scroll_mainnet/token/v1/getContractsForOwner?owner={OWNER_ADDRESS}"
```

{% endcode %}
{% endtab %}

{% tab title="HoleSky" %}
{% code overflow="wrap" %}

```
curl "http://nft.chainup.net/eth_holesky/token/v1/getContractsForOwner?owner={OWNER_ADDRESS}"
```

{% endcode %}
{% endtab %}
{% endtabs %}

<mark style="color:blue;">`GET`</mark> `/nft/{chain}/{token}/getNFTsForOwner`             &#x20;

{% tabs %}
{% tab title="Scroll" %}
{% code overflow="wrap" %}

```
curl "http://nft.chainup.net/scroll_mainnet/token/v1/getNFTsForOwner?owner={OWNER_ADDRESS}&contract_addresses={CONTRACT_ADDRESS}"
```

{% endcode %}
{% endtab %}

{% tab title="HoleSky" %}
{% code overflow="wrap" %}

```
curl "http://nft.chainup.net/eth_holesky/token/v1/getNFTsForOwner?owner={OWNER_ADDRESS}&contract_addresses={CONTRACT_ADDRESS}"
```

{% endcode %}
{% endtab %}
{% endtabs %}

<mark style="color:blue;">`GET`</mark> `/nft/{chain}/{token}/getOwnersForContract`           &#x20;

{% tabs %}
{% tab title="Scroll" %}
{% code overflow="wrap" %}

```
curl "http://nft.chainup.net/scroll_mainnet/token/v1/getOwnersForContract?contract_address={CONTRACT_ADDRESS}"
```

{% endcode %}
{% endtab %}

{% tab title="HoleSky" %}
{% code overflow="wrap" %}

```
curl "http://nft.chainup.net/eth_holesky/token/v1/getOwnersForContract?contract_address={CONTRACT_ADDRESS}"
```

{% endcode %}
{% endtab %}
{% endtabs %}

<mark style="color:blue;">`GET`</mark> `/nft/{chain}/{token}/getOwnersForNFT`           &#x20;

{% tabs %}
{% tab title="Scroll" %}
{% code overflow="wrap" %}

```
curl "http://nft.chainup.net/scroll_mainnet/token/v1/getOwnersForNFT?token_id={TOKEN_ID}&contract_address={CONTRACT_ADDRESS}"
```

{% endcode %}
{% endtab %}

{% tab title="HoleSky" %}
{% code overflow="wrap" %}

```
curl "http://nft.chainup.net/eth_holesky/token/v1/getOwnersForNFT?token_id={TOKEN_ID}&contract_address={CONTRACT_ADDRESS}"
```

{% endcode %}
{% endtab %}
{% endtabs %}

<mark style="color:blue;">`GET`</mark> `/nft/{chain}/{token}/isHolderOfContract`&#x20;

{% tabs %}
{% tab title="Scroll" %}
{% code overflow="wrap" %}

```
curl "http://nft.chainup.net/scroll_mainnet/token/v1/isHolderOfContract?contract_address={CONTRACT_ADDRESS}&wallet={WALLET_ADDRESS}"
```

{% endcode %}
{% endtab %}

{% tab title="HoleSky" %}
{% code overflow="wrap" %}

```
curl "http://nft.chainup.net/eth_holesky/token/v1/isHolderOfContract?contract_address={CONTRACT_ADDRESS}&wallet={WALLET_ADDRESS}"
```

{% endcode %}
{% endtab %}
{% endtabs %}


# Overview

RPC Nodes.\
Fast. Reliable. Affordable.
---------------------------

ChainUp Cloud gives you fast, reliable, and easy to scale RPC end-points at a fraction of the cost.

<figure><img src="/files/tlaxTjLLGljgtS7cFTRZ" alt=""><figcaption><p>Blockchain APU</p></figcaption></figure>

ChainUp Cloud RPC is now available on the [**ChainUp Cloud site**](https://cloud.chainup.com/app/register), supporting over 30 major networks , like Solana, Ethereum, BSC, Polkadot, to meet the needs of most users. Additionally, for new and trending chains, we promptly provide RPC service support to keep up with market demand.<br>

<figure><img src="/files/Ecl8vLP3aSK4EaKHrePT" alt=""><figcaption></figcaption></figure>

Compared to other RPC service providers, ChainUp Cloud RPC seamlessly integrates with the infrastructure of its other cloud product lines, without relying on third-party vendors. This ensures Web3 users enjoy a stable, efficient, reliable, and responsive experience from a trusted cloud service provider.

This article provides a step-by-step guide on how to use the ChainUp Cloud RPC product, helping you get started quickly in just 5 minutes.


# Create Blockchain API for your project

## Blockchain API Endpoint

JSON-RPC Endpoint

```
http://api.chainup.net/<PROTOCOL>/<NETWORK>/<TOKEN>
```

Websocket Endpoint

```
ws://api.chainup.net/ws/<PROTOCOL>/<NETWORK>/<TOKEN>
```

## Using a token example&#x20;

Ethereum APIs require a valid project ID to be included with your request traffic. This identifier must be appended to the request URL. The following example shows how to do this for HTTPS or WebSocket requests:

{% tabs %}
{% tab title="HTTP" %}

```
curl http://api.chainup.net/ethereum/mainet/<TOKEN> \
    -X POST \
    -H "Content-Type: application/json" \
    -H "CONSISTENT-HASH: true" \
    -d '{"jsonrpc":"2.0","method":"eth_blockNumber","params":[],"id":1}'
```

{% endtab %}

{% tab title="WebSocket" %}

```
wscat -c ws://api.chainup.net/ws/ethereum/mainet/<TOKEN>
> {"jsonrpc":"2.0","method":"eth_blockNumber","params":[],"id":1}
```

{% endtab %}
{% endtabs %}

## Using a token example for Solana (Low latency domain)

When accessing solana you can use proprietary domain names to reduce network latency

{% tabs %}
{% tab title="HTTP" %}

```
curl http://sol.chainup.net/<TOKEN> \
    -X POST \
    -H "Content-Type: application/json" \
    -d '{"jsonrpc":"2.0","id":1, "method":"getSlot"}'
```

{% endtab %}

{% tab title="WebSocket" %}

```
wscat -c ws://sol.chainup.net/ws/<TOKEN>
> { "jsonrpc": "2.0", "id": 1, "method": "slotSubscribe"}
```

{% endtab %}
{% endtabs %}

## Supported protocols

<table><thead><tr><th width="131.0859375">PROTOCOL</th><th width="265.8828125">NETWORK</th><th width="138">Schema</th><th>domain</th></tr></thead><tbody><tr><td>ethereum</td><td>mainnet,goerli,holesky,sepolia</td><td>https,wss</td><td>api.chainup.net (default)</td></tr><tr><td>solana</td><td>mainnet</td><td>https,wss</td><td><strong>sol.chainup.net</strong> </td></tr><tr><td>ton</td><td>mainnet</td><td>https</td><td>api.chainup.net</td></tr><tr><td>bsc</td><td>mainnet,testnet</td><td>https,wss</td><td>api.chainup.net</td></tr><tr><td>polygon</td><td>mainnet,mumbai</td><td>https,wss</td><td>api.chainup.net</td></tr><tr><td>tron</td><td>mainnet</td><td>https</td><td>api.chainup.net</td></tr><tr><td>ethereum2</td><td>mainnet,prater,holesky,sepolia</td><td>https</td><td>api.chainup.net</td></tr><tr><td>polkadot</td><td>mainnet,westend</td><td>https,wss</td><td>api.chainup.net</td></tr><tr><td>filecoin</td><td>mainnet,calibration,hyperspace</td><td>https</td><td>api.chainup.net</td></tr><tr><td>ipfs</td><td>pub</td><td>https</td><td>api.chainup.net</td></tr><tr><td>bitcoin</td><td>mainnet,testnet,testnet4,signet</td><td>https</td><td>api.chainup.net</td></tr><tr><td>litecoin</td><td>mainnet,testnet</td><td>https</td><td>api.chainup.net</td></tr><tr><td>near</td><td>mainnet,testnet</td><td>https</td><td>api.chainup.net</td></tr><tr><td>etc</td><td>mainnet</td><td>https,wss</td><td>api.chainup.net</td></tr><tr><td>bch</td><td>mainnet</td><td>https</td><td>api.chainup.net</td></tr><tr><td>kusama</td><td>mainnet</td><td>https,wss</td><td>api.chainup.net</td></tr><tr><td>bsv</td><td>mainnet</td><td>https</td><td>api.chainup.net</td></tr><tr><td>eos</td><td>mainnet</td><td>https</td><td>api.chainup.net</td></tr><tr><td>fantom</td><td>mainnet</td><td>https,wss</td><td>api.chainup.net</td></tr><tr><td>aptos</td><td>mainnet</td><td>https</td><td>api.chainup.net</td></tr><tr><td>sui</td><td>mainnet,testnet</td><td>https,wss</td><td>api.chainup.net</td></tr><tr><td>avax</td><td>mainnet</td><td>https,wss</td><td>api.chainup.net</td></tr><tr><td>arbitrum</td><td>mainnet</td><td>https,wss</td><td>api.chainup.net</td></tr><tr><td>omni</td><td>mainnet</td><td>https</td><td>api.chainup.net</td></tr><tr><td>cosmos</td><td>mainnet</td><td>https</td><td>api.chainup.net</td></tr><tr><td>dogecoin</td><td>mainnet</td><td>https,wss</td><td>api.chainup.net</td></tr><tr><td>optimism</td><td>mainnet,goerli</td><td>https,wss</td><td>api.chainup.net</td></tr><tr><td>xrp</td><td>mainnet</td><td>https,wss</td><td>api.chainup.net</td></tr><tr><td>dash</td><td>mainnet</td><td>https</td><td>api.chainup.net</td></tr><tr><td>zcash</td><td>mainnet</td><td>https</td><td>api.chainup.net</td></tr><tr><td>base</td><td>mainnet</td><td>https,wss</td><td>api.chainup.net</td></tr><tr><td>scroll</td><td>mainnet</td><td>https,wss</td><td>api.chainup.net</td></tr><tr><td>qtum</td><td>mainnet</td><td>https</td><td>api.chainup.net</td></tr><tr><td>starknet</td><td>mainnet</td><td>https</td><td>api.chainup.net</td></tr><tr><td>blast</td><td>mainnet</td><td>https,wss</td><td>api.chainup.net</td></tr><tr><td>worldchain</td><td>mainnet</td><td>https</td><td>api.chainup.net</td></tr></tbody></table>


# Dashboard stats

The dashboard shows the generic API usage stats such as the number of calls made, the average response time, and the success rate of those calls. It may also display information about the devices or programs that are making the API calls, as well as the specific endpoints or functions that are being accessed. This information can be useful for developers and administrators who want to monitor the performance and usage of their API.

<figure><img src="/files/TJpQ6cAUdWfkxpESiFRh" alt=""><figcaption><p>Dashboard</p></figcaption></figure>


# Ethereum

Welcome to the Ethereum documentation! Learn how to interact with Ethereum using ChainUp Cloud

In this section, you will be able to learn about what makes Ethereum special and how you can leverage available tools to build amazing products!

You can then get started with the available RPC & REST APIs we support[ **via ChainUp Cloud**.](https://cloud.chainup.com)

Last but not least, if you are looking for guidelines or simply some inspiration, check out available tutorials in [**For Developers**](/introduction/for-developers/use-blockchain-api).

Be sure to check out the [**official Ethereum documentation**](https://ethereum.org/en/developers/docs/apis/json-rpc/).


# JSON-RPC methods

### Example RPC

{% tabs %}
{% tab title="Curl" %}

```
curl https://api.chainup.net/ethereum/mainnet/<YOUR_API_KEY> \
-X POST \
-H 'content-type: application/json' \
-H "CONSISTENT-HASH: true" \
--data '{"jsonrpc":"2.0","method":"net_peerCount","params":[],"id":1}' 
```

{% endtab %}

{% tab title="Javascript" %}

```
const axios = require('axios'); 
//npm install axios if you don have the module installed

let options = {
    url: "https://api.chainup.net/ethereum/mainnet/<YOUR_API_KEY>",
    method: "post",
    headers: {
        "content-type": "application/json",
        "CONSISTENT-HASH": "true"  // Add your custom header here
    },
    data: {"jsonrpc":"2.0","method":"net_peerCount","params":[],"id":1}
};

axios(options)
    .then(response => {
        console.log('Post successful: response:', response.data);
    })
    .catch(error => {
        console.error('An error has occurred:', error);
    });
```

{% endtab %}

{% tab title="Python" %}

```python
import requests
import json

headers = {
    "content-type": "application/json",
    "CONSISTENT-HASH": "true"  # Add your custom header here
}

payload = json.dumps({
    "id": 1,
    "jsonrpc": "2.0",
    "method": "net_peerCount",
    "params": []
})

url = "https://api.chainup.net/ethereum/mainnet/00164210c0334c76a235aca8b1dcf655"
r = requests.post(url=url, headers=headers, data=payload)

if r.status_code == 200:
    print("Post successful: response: ", r.content)
else:
    print("An error has occurred: ", r.status_code)

```

{% endtab %}
{% endtabs %}

### Ethereum RPC

You can review the official Ethereum RPC documentation [**HERE**](https://ethereum.org/en/developers/docs/apis/json-rpc/)

**Available Ethereum API request methods**

```solidity
          "eth_accounts"
          "eth_blockNumber"
          "eth_call"
          "eth_chainId"
          "eth_freeHistory"
          "eth_getBalance"
          "eth_getBlockByHash"
          "eth_getBlockByNumber"
          "eth_getBlockTransactionCountByHash"
          "eth_getBlocTransactionCountByNumber"
          "eth_getCode"
          "eth_getFilterChanges"
          "eth_getFilterLogs"
          "eth_getLogs"
          "eth_getStorageAt"
          "eth_getTransactionByHash"
          "eth_getTransactionByCount"
          "eth_getTransactionHashByCid"
          "eth_getTransactionReceipt"
          "eth_maxPriorityFeePerGas"
          "eth_newBlockFilter"
          "eth_newPendingTransactionFilter"
          "eth_sendRawTransaction"
          "eth_uninstallFilter"
          "eth_requestAccounts"
          "eth_sendTransaction"
          "eth_sign"
          "eth_gasPrice"
          "eth_estimateGas"
          "net_version"
```

{% hint style="info" %}
Due to the computational resources consumed by certain RPCs, the free public RPC only supports the RPCs mentioned above. The rest of the JSON-RPCs will be intercepted and return a 403 status code.
{% endhint %}

{% hint style="info" %}
We only collect user IP addresses for the purpose of rate limiting. For more information, please visit: <https://www.chainup.com/privacyPolicy>
{% endhint %}


# WebSocket stream

Unlike HTTP, with WebSockets, you don't need to continuously make requests when you want specific information. WebSockets maintain a network connection for you (if done right) and listen for changes . You may view the official documentation [here](https://ethereum.org/ml/developers/tutorials/using-websockets/).&#x20;

{% tabs %}
{% tab title="WebSocket" %}

```
wscat -c wss://api.chainup.net/ws/ethereum/mainnet/<YOUR_API_KEY>
<  {"jsonrpc":  "2.0", "id": 0, "method":  "eth_gasPrice"}
<  {"jsonrpc": "2.0","id":0,"result":"0x6f56b59ac"}
```

{% endtab %}

{% tab title="Javascript" %}

<pre><code><strong>const Web3 = require('web3');
</strong>
const web3 = new Web3("wss://api.chainup.net/ws/ethereum/mainnet/&#x3C;YOUR_API_KEY>")

web3.eth.getBlockNumber().then(console.log) // -> 9022457

</code></pre>

{% endtab %}

{% tab title="Python" %}

```
from web3 import Web3

websocket_url='wss://api.chainup.net/ws/ethereum/mainnet/<YOUR_API_KEY>'
w3 = Web3(Web3.HTTPProvider(websocket_url))

# You can check if the connection is established using isConnected function.
w3.isConnected()

# Output: True
```

{% endtab %}
{% endtabs %}


# Solana

In this section, you will be able to learn about what makes Solana special and how you can leverage available tools to build amazing products!

You can then get started with the available RPC & REST APIs we support [ **via ChainUp Cloud**.](https://cloud.chainup.com)

Last but not least, if you are looking for guidelines or simply some inspiration, check out available tutorials in [**For Developers**](/introduction/for-developers/use-blockchain-api).

Be sure to check out the[ **official Solana documentation.**](https://solana.com/docs/rpc)

🚀 Let's start building the decentralized web 🚀

At ChainUp, we provide a high-performance RPC service optimized for front-end interfaces across multiple blockchains, including Solana, Sui, and Ethereum. &#x20;

* **Reliability**: Our service maintains high uptime, even during periods of market volatility.
* **Performance**: Designed to perform under stress, our systems are continually optimized for better results.
* **Scalability**: Built with growth in mind, our systems scale as your project grows.
* **Flexibility**: We offer tailored solutions to fit your specific needs.
* **24/7 Support**: Our team is always available via Telegram and Slack to provide the best support.
* **Transparency**: Gain insights with our metrics dashboard and have direct access to our team for any questions.


# JSON-RPC methods

### Solana RPC

At Chainup Cloud, we manage Solana RPC endpoints, handling hundreds of billions of requests each month. To simplify integration for developers, we've created documentation with examples of how to call RPC methods using cURL, JavaScript, Python.  Chainup Cloud supports a wide range of Solana APIs, making development easier and more efficient.

<figure><img src="/files/GamJPL7RqMVhVHXs5hSv" alt=""><figcaption></figcaption></figure>

You can review the official [**Solana RPC documentation HERE**](https://solana.com/docs/rpc)

### Example RPC

{% tabs %}
{% tab title="Curl" %}

```
curl   https://api.chainup.net/solana/mainnet/<YOUR_API_KEY>  \
-X POST \
-H "Content-Type: application/json" \
--data '{"jsonrpc": "2.0","id": 1,"method": "getAccountInfo","params": ["7cVfgArCheMR6Cs4t6vz5rfnqd56vZq4ndaBrY5xkxXy",{"encoding": "base58"}]}'
```

{% endtab %}

{% tab title="Javascript" %}

<pre class="language-javascript"><code class="lang-javascript"><strong>const axios = require('axios');
</strong>//npm install axios if you don have the module installed`
let options = {
    url: "https://api.chainup.net/solana/mainnet/&#x3C;YOUR_API_KEY>",
    method: "post",
    headers:
    { 
     "content-type": "application/json"
    },
    body: JSON.stringify({"jsonrpc": "2.0","id": 1,"method": "getAccountInfo","params": ["7cVfgArCheMR6Cs4t6vz5rfnqd56vZq4ndaBrY5xkxXy",{"encoding": "base58"}])
};

axios(options)
.then(response => {
console.log('Post successful: response:', response.data);
})
.catch(error => {
console.error('An error has occurred:', error);
});
</code></pre>

{% endtab %}

{% tab title="Python" %}

```python
import requests
import json

# Set the headers for the request
headers = {
    "Content-Type": "application/json",
    "CONSISTENT-HASH": "true"
}

# Prepare the payload for the RPC request
payload = json.dumps({
    "jsonrpc": "2.0",
    "id": 1,
    "method": "getAccountInfo",
    "params": [
        "7cVfgArCheMR6Cs4t6vz5rfnqd56vZq4ndaBrY5xkxXy",
        {"encoding": "base58"}
    ]
})

# Send the POST request to the Solana RPC endpoint
url = "https://api.chainup.net/solana/mainnet/<YOUR_API_KEY>"

try:
    r = requests.post(url=url, headers=headers, data=payload)
    # Check if the request was successful
    if r.status_code == 200:
        print("Post successful: response: ", r.content)
    else:
        print(f"An error occurred: {r.status_code}")
except requests.exceptions.RequestException as e:
    print(f"Request failed: {e}")

```

{% endtab %}
{% endtabs %}


# Solana Nodes FAQ

**What is the role of a validator in the Solana network?**\
Validators are nodes that participate in the consensus process by confirming transactions and producing new blocks. They are crucial for maintaining the security and integrity of the blockchain.

**How does Solana achieve high throughput?**\
Solana utilizes a unique consensus mechanism called Proof of History (PoH) combined with a version of Proof of Stake (PoS). This allows the network to process thousands of transactions per second.

**What are the minimum requirements to run a Solana node?**\
To run a Solana node, you typically need a powerful computer or server with a multi-core CPU, at least 16 GB of RAM, and a fast SSD for storage. Additionally, a stable internet connection is essential.

**Can I run a Solana node on a virtual machine?**\
Yes, you can run a Solana node on a virtual machine, but ensure that the VM meets the necessary hardware specifications to handle the load effectively.

**What programming languages can I use to interact with the Solana blockchain?**\
You can interact with the Solana blockchain using various programming languages, including JavaScript, Rust, and Python. The Solana SDKs provide libraries for these languages.

**How do I stake my SOL tokens?**\
To stake SOL tokens, you need to choose a validator, delegate your tokens to them via a wallet that supports staking, and follow the staking process outlined in the wallet’s interface.

**What is the difference between a full node and a light node?**\
A full node keeps a complete copy of the blockchain, while a light node only stores a subset of the blockchain data. Light nodes rely on full nodes for transaction verification and data retrieval.

**What is a Solana wallet?**\
A Solana wallet is a software application that allows users to store, send, and receive SOL tokens and other assets on the Solana blockchain. Examples include Phantom, Sollet, and Solflare.

**How can I monitor the performance of my Solana node?**\
You can monitor your node’s performance using various tools such as Grafana, which can visualize metrics like CPU usage, memory, and network traffic. Solana also provides built-in telemetry for monitoring.

**What are some common use cases for Solana?**\
Solana is used for various applications, including decentralized finance (DeFi) platforms, non-fungible tokens (NFTs), gaming applications, and decentralized exchanges (DEXs).


# Websocket Stream

Unlike HTTP, with WebSockets, you don't need to continuously make requests when you want specific information. WebSockets maintain a network connection for you (if done right) and listen for changes . You may view the[ **official Solana Websocket documentation here.** ](https://solana.com/docs/rpc/websocket)

{% tabs %}
{% tab title="WebSocket" %}

<pre><code>wscat -c wss://api.chainup.net/ws/solana/mainnet/&#x3C;YOUR_API_KEY>
<strong>
</strong><strong>&#x3C; {"jsonrpc": "2.0", "id": 0, "method": "accountUnsubscribe", "params": [0]}
</strong>&#x3C;  { "jsonrpc": "2.0", "result": true, "id": 1 }
</code></pre>

{% endtab %}

{% tab title="Javascript" %}

<pre><code><strong>const Web3 = require('web3');
</strong>
const web3 = new Web3("wss://api.chainup.net/ws/solana/mainnet/&#x3C;YOUR_API_KEY>")

web3.solana.getBlockSlot().then(console.log) // -> 1022457

</code></pre>

{% endtab %}

{% tab title="Python" %}

```
from web3 import Web3

websocket_url='wss://api.chainup.net/ws/solana/mainnet/<YOUR_API_KEY>'
w3 = Web3(Web3.WebsocketProvider(websocket_url))

# You can check if the connection is established using isConnected function.
w3.isConnected()

# Output: True
```

{% endtab %}
{% endtabs %}


# TON

Welcome to the  Chainup TON API documentation! This resource provides essential information for developers looking to integrate with the TON blockchain.

## Overview of TON APIs

### TON offers two primary services for accessing blockchain data:

1. **TON HTTP API**: This API converts the ADNL binary protocol to HTTP, allowing you to communicate with TON nodes as if you were directly connected. It's designed for ease of use and compatibility with standard web technologies.
2. **TON Indexer API**: This service indexes blockchain data into PostgreSQL, enabling efficient data retrieval through API calls. It is particularly useful for applications that require access to historical blockchain data.

## Accessing the APIs

* **TON HTTP API Base URL**:\
  `https://api.chainup.net/ton/mainnet/{token}/api/v2`
* **TON Indexer API Base URL**:\
  `https://api.chainup.net/ton/mainnet/{token}/api/v3`

## Example Usage

You can interact with the APIs using standard HTTP requests. Below are examples of how to fetch masterchain information:

## Using the TON HTTP API

```
curl -X 'GET' \
  'https://api.chainup.net/ton/mainnet/{token}/api/v2/getMasterchainInfo' \
  -H 'accept: application/json'
```

## Using the TON Indexer API

```
curl -X 'GET' \
  'https://api.chainup.net/ton/mainnet/{token}/api/v3/masterchainInfo' \
  -H 'accept: application/json'
```

### Note on ADNL Protocol

TON nodes do not provide HTTP RPC APIs and communicate exclusively through the ADNL binary protocol. If you require access methods for ADNL, please reach out to our support team for assistance.


# HTTP API

## **Getting Started**

This documentation provides a comprehensive guide to using the TON HTTP API, including API endpoints, request and response formats, and error handling. Whether you're building a new application or integrating with an existing one, this documentation will help you get started with the TON HTTP API quickly and efficiently.

{% openapi src="/files/v8jrwq6KnM2jEpcXUdLD" path="/getAddressInformation" method="get" %}
[ton\_http\_api.json](https://3946753200-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F2ofbWCtvCf8VWwPLyyEW%2Fuploads%2FJGh9AEwvndMzzmAar3R4%2Fton_http_api.json?alt=media\&token=5e75b12a-55e4-4a0b-a1c9-752abb34b43e)
{% endopenapi %}

{% openapi src="/files/v8jrwq6KnM2jEpcXUdLD" path="/getExtendedAddressInformation" method="get" %}
[ton\_http\_api.json](https://3946753200-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F2ofbWCtvCf8VWwPLyyEW%2Fuploads%2FJGh9AEwvndMzzmAar3R4%2Fton_http_api.json?alt=media\&token=5e75b12a-55e4-4a0b-a1c9-752abb34b43e)
{% endopenapi %}

{% openapi src="/files/v8jrwq6KnM2jEpcXUdLD" path="/getWalletInformation" method="get" %}
[ton\_http\_api.json](https://3946753200-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F2ofbWCtvCf8VWwPLyyEW%2Fuploads%2FJGh9AEwvndMzzmAar3R4%2Fton_http_api.json?alt=media\&token=5e75b12a-55e4-4a0b-a1c9-752abb34b43e)
{% endopenapi %}

{% openapi src="/files/v8jrwq6KnM2jEpcXUdLD" path="/getTransactions" method="get" %}
[ton\_http\_api.json](https://3946753200-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F2ofbWCtvCf8VWwPLyyEW%2Fuploads%2FJGh9AEwvndMzzmAar3R4%2Fton_http_api.json?alt=media\&token=5e75b12a-55e4-4a0b-a1c9-752abb34b43e)
{% endopenapi %}

{% openapi src="/files/v8jrwq6KnM2jEpcXUdLD" path="/getAddressBalance" method="get" %}
[ton\_http\_api.json](https://3946753200-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F2ofbWCtvCf8VWwPLyyEW%2Fuploads%2FJGh9AEwvndMzzmAar3R4%2Fton_http_api.json?alt=media\&token=5e75b12a-55e4-4a0b-a1c9-752abb34b43e)
{% endopenapi %}

{% openapi src="/files/v8jrwq6KnM2jEpcXUdLD" path="/getAddressState" method="get" %}
[ton\_http\_api.json](https://3946753200-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F2ofbWCtvCf8VWwPLyyEW%2Fuploads%2FJGh9AEwvndMzzmAar3R4%2Fton_http_api.json?alt=media\&token=5e75b12a-55e4-4a0b-a1c9-752abb34b43e)
{% endopenapi %}

{% openapi src="/files/v8jrwq6KnM2jEpcXUdLD" path="/packAddress" method="get" %}
[ton\_http\_api.json](https://3946753200-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F2ofbWCtvCf8VWwPLyyEW%2Fuploads%2FJGh9AEwvndMzzmAar3R4%2Fton_http_api.json?alt=media\&token=5e75b12a-55e4-4a0b-a1c9-752abb34b43e)
{% endopenapi %}

{% openapi src="/files/v8jrwq6KnM2jEpcXUdLD" path="/unpackAddress" method="get" %}
[ton\_http\_api.json](https://3946753200-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F2ofbWCtvCf8VWwPLyyEW%2Fuploads%2FJGh9AEwvndMzzmAar3R4%2Fton_http_api.json?alt=media\&token=5e75b12a-55e4-4a0b-a1c9-752abb34b43e)
{% endopenapi %}

{% openapi src="/files/v8jrwq6KnM2jEpcXUdLD" path="/getMasterchainInfo" method="get" %}
[ton\_http\_api.json](https://3946753200-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F2ofbWCtvCf8VWwPLyyEW%2Fuploads%2FJGh9AEwvndMzzmAar3R4%2Fton_http_api.json?alt=media\&token=5e75b12a-55e4-4a0b-a1c9-752abb34b43e)
{% endopenapi %}

{% openapi src="/files/v8jrwq6KnM2jEpcXUdLD" path="/getMasterchainBlockSignatures" method="get" %}
[ton\_http\_api.json](https://3946753200-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F2ofbWCtvCf8VWwPLyyEW%2Fuploads%2FJGh9AEwvndMzzmAar3R4%2Fton_http_api.json?alt=media\&token=5e75b12a-55e4-4a0b-a1c9-752abb34b43e)
{% endopenapi %}

{% openapi src="/files/v8jrwq6KnM2jEpcXUdLD" path="/getShardBlockProof" method="get" %}
[ton\_http\_api.json](https://3946753200-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F2ofbWCtvCf8VWwPLyyEW%2Fuploads%2FJGh9AEwvndMzzmAar3R4%2Fton_http_api.json?alt=media\&token=5e75b12a-55e4-4a0b-a1c9-752abb34b43e)
{% endopenapi %}

{% openapi src="/files/v8jrwq6KnM2jEpcXUdLD" path="/getConsensusBlock" method="get" %}
[ton\_http\_api.json](https://3946753200-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F2ofbWCtvCf8VWwPLyyEW%2Fuploads%2FJGh9AEwvndMzzmAar3R4%2Fton_http_api.json?alt=media\&token=5e75b12a-55e4-4a0b-a1c9-752abb34b43e)
{% endopenapi %}

{% openapi src="/files/v8jrwq6KnM2jEpcXUdLD" path="/lookupBlock" method="get" %}
[ton\_http\_api.json](https://3946753200-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F2ofbWCtvCf8VWwPLyyEW%2Fuploads%2FJGh9AEwvndMzzmAar3R4%2Fton_http_api.json?alt=media\&token=5e75b12a-55e4-4a0b-a1c9-752abb34b43e)
{% endopenapi %}

{% openapi src="/files/v8jrwq6KnM2jEpcXUdLD" path="/shards" method="get" %}
[ton\_http\_api.json](https://3946753200-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F2ofbWCtvCf8VWwPLyyEW%2Fuploads%2FJGh9AEwvndMzzmAar3R4%2Fton_http_api.json?alt=media\&token=5e75b12a-55e4-4a0b-a1c9-752abb34b43e)
{% endopenapi %}

{% openapi src="/files/v8jrwq6KnM2jEpcXUdLD" path="/getBlockTransactions" method="get" %}
[ton\_http\_api.json](https://3946753200-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F2ofbWCtvCf8VWwPLyyEW%2Fuploads%2FJGh9AEwvndMzzmAar3R4%2Fton_http_api.json?alt=media\&token=5e75b12a-55e4-4a0b-a1c9-752abb34b43e)
{% endopenapi %}

{% openapi src="/files/v8jrwq6KnM2jEpcXUdLD" path="/getBlockHeader" method="get" %}
[ton\_http\_api.json](https://3946753200-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F2ofbWCtvCf8VWwPLyyEW%2Fuploads%2FJGh9AEwvndMzzmAar3R4%2Fton_http_api.json?alt=media\&token=5e75b12a-55e4-4a0b-a1c9-752abb34b43e)
{% endopenapi %}

{% openapi src="/files/v8jrwq6KnM2jEpcXUdLD" path="/getConfigParam" method="get" %}
[ton\_http\_api.json](https://3946753200-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F2ofbWCtvCf8VWwPLyyEW%2Fuploads%2FJGh9AEwvndMzzmAar3R4%2Fton_http_api.json?alt=media\&token=5e75b12a-55e4-4a0b-a1c9-752abb34b43e)
{% endopenapi %}

{% openapi src="/files/v8jrwq6KnM2jEpcXUdLD" path="/getTokenData" method="get" %}
[ton\_http\_api.json](https://3946753200-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F2ofbWCtvCf8VWwPLyyEW%2Fuploads%2FJGh9AEwvndMzzmAar3R4%2Fton_http_api.json?alt=media\&token=5e75b12a-55e4-4a0b-a1c9-752abb34b43e)
{% endopenapi %}

{% openapi src="/files/v8jrwq6KnM2jEpcXUdLD" path="/tryLocateTx" method="get" %}
[ton\_http\_api.json](https://3946753200-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F2ofbWCtvCf8VWwPLyyEW%2Fuploads%2FJGh9AEwvndMzzmAar3R4%2Fton_http_api.json?alt=media\&token=5e75b12a-55e4-4a0b-a1c9-752abb34b43e)
{% endopenapi %}

{% openapi src="/files/v8jrwq6KnM2jEpcXUdLD" path="/tryLocateResultTx" method="get" %}
[ton\_http\_api.json](https://3946753200-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F2ofbWCtvCf8VWwPLyyEW%2Fuploads%2FJGh9AEwvndMzzmAar3R4%2Fton_http_api.json?alt=media\&token=5e75b12a-55e4-4a0b-a1c9-752abb34b43e)
{% endopenapi %}

{% openapi src="/files/v8jrwq6KnM2jEpcXUdLD" path="/tryLocateSourceTx" method="get" %}
[ton\_http\_api.json](https://3946753200-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F2ofbWCtvCf8VWwPLyyEW%2Fuploads%2FJGh9AEwvndMzzmAar3R4%2Fton_http_api.json?alt=media\&token=5e75b12a-55e4-4a0b-a1c9-752abb34b43e)
{% endopenapi %}

{% openapi src="/files/v8jrwq6KnM2jEpcXUdLD" path="/detectAddress" method="get" %}
[ton\_http\_api.json](https://3946753200-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F2ofbWCtvCf8VWwPLyyEW%2Fuploads%2FJGh9AEwvndMzzmAar3R4%2Fton_http_api.json?alt=media\&token=5e75b12a-55e4-4a0b-a1c9-752abb34b43e)
{% endopenapi %}

{% openapi src="/files/v8jrwq6KnM2jEpcXUdLD" path="/sendBoc" method="post" %}
[ton\_http\_api.json](https://3946753200-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F2ofbWCtvCf8VWwPLyyEW%2Fuploads%2FJGh9AEwvndMzzmAar3R4%2Fton_http_api.json?alt=media\&token=5e75b12a-55e4-4a0b-a1c9-752abb34b43e)
{% endopenapi %}

{% openapi src="/files/v8jrwq6KnM2jEpcXUdLD" path="/sendBocReturnHash" method="post" %}
[ton\_http\_api.json](https://3946753200-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F2ofbWCtvCf8VWwPLyyEW%2Fuploads%2FJGh9AEwvndMzzmAar3R4%2Fton_http_api.json?alt=media\&token=5e75b12a-55e4-4a0b-a1c9-752abb34b43e)
{% endopenapi %}

{% openapi src="/files/v8jrwq6KnM2jEpcXUdLD" path="/sendQuery" method="post" %}
[ton\_http\_api.json](https://3946753200-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F2ofbWCtvCf8VWwPLyyEW%2Fuploads%2FJGh9AEwvndMzzmAar3R4%2Fton_http_api.json?alt=media\&token=5e75b12a-55e4-4a0b-a1c9-752abb34b43e)
{% endopenapi %}

{% openapi src="/files/v8jrwq6KnM2jEpcXUdLD" path="/estimateFee" method="post" %}
[ton\_http\_api.json](https://3946753200-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F2ofbWCtvCf8VWwPLyyEW%2Fuploads%2FJGh9AEwvndMzzmAar3R4%2Fton_http_api.json?alt=media\&token=5e75b12a-55e4-4a0b-a1c9-752abb34b43e)
{% endopenapi %}

{% openapi src="/files/v8jrwq6KnM2jEpcXUdLD" path="/runGetMethod" method="post" %}
[ton\_http\_api.json](https://3946753200-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F2ofbWCtvCf8VWwPLyyEW%2Fuploads%2FJGh9AEwvndMzzmAar3R4%2Fton_http_api.json?alt=media\&token=5e75b12a-55e4-4a0b-a1c9-752abb34b43e)
{% endopenapi %}

{% openapi src="/files/v8jrwq6KnM2jEpcXUdLD" path="/jsonRPC" method="post" %}
[ton\_http\_api.json](https://3946753200-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F2ofbWCtvCf8VWwPLyyEW%2Fuploads%2FJGh9AEwvndMzzmAar3R4%2Fton_http_api.json?alt=media\&token=5e75b12a-55e4-4a0b-a1c9-752abb34b43e)
{% endopenapi %}


# Indexer API

## **Getting Started**

The **TON Indexer API** provides a powerful way to access indexed blockchain data from the TON network. By storing blockchain data in PostgreSQL, this API allows for efficient queries and retrieval of historical information.

{% openapi src="/files/H3JdKbmbxFaTr21l9JhI" path="/api/v3/masterchainInfo" method="get" %}
[ton\_indexer\_api.json](https://3946753200-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F2ofbWCtvCf8VWwPLyyEW%2Fuploads%2F1Vyp6x4iEGRmDuKFIdyi%2Fton_indexer_api.json?alt=media\&token=1ded97e7-1424-487c-ae27-e7067565ab5f)
{% endopenapi %}

{% openapi src="/files/H3JdKbmbxFaTr21l9JhI" path="/api/v3/blocks" method="get" %}
[ton\_indexer\_api.json](https://3946753200-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F2ofbWCtvCf8VWwPLyyEW%2Fuploads%2F1Vyp6x4iEGRmDuKFIdyi%2Fton_indexer_api.json?alt=media\&token=1ded97e7-1424-487c-ae27-e7067565ab5f)
{% endopenapi %}

{% openapi src="/files/H3JdKbmbxFaTr21l9JhI" path="/api/v3/masterchainBlockShardState" method="get" %}
[ton\_indexer\_api.json](https://3946753200-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F2ofbWCtvCf8VWwPLyyEW%2Fuploads%2F1Vyp6x4iEGRmDuKFIdyi%2Fton_indexer_api.json?alt=media\&token=1ded97e7-1424-487c-ae27-e7067565ab5f)
{% endopenapi %}

{% openapi src="/files/H3JdKbmbxFaTr21l9JhI" path="/api/v3/addressBook" method="get" %}
[ton\_indexer\_api.json](https://3946753200-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F2ofbWCtvCf8VWwPLyyEW%2Fuploads%2F1Vyp6x4iEGRmDuKFIdyi%2Fton_indexer_api.json?alt=media\&token=1ded97e7-1424-487c-ae27-e7067565ab5f)
{% endopenapi %}

{% openapi src="/files/H3JdKbmbxFaTr21l9JhI" path="/api/v3/masterchainBlockShards" method="get" %}
[ton\_indexer\_api.json](https://3946753200-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F2ofbWCtvCf8VWwPLyyEW%2Fuploads%2F1Vyp6x4iEGRmDuKFIdyi%2Fton_indexer_api.json?alt=media\&token=1ded97e7-1424-487c-ae27-e7067565ab5f)
{% endopenapi %}

{% openapi src="/files/H3JdKbmbxFaTr21l9JhI" path="/api/v3/transactions" method="get" %}
[ton\_indexer\_api.json](https://3946753200-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F2ofbWCtvCf8VWwPLyyEW%2Fuploads%2F1Vyp6x4iEGRmDuKFIdyi%2Fton_indexer_api.json?alt=media\&token=1ded97e7-1424-487c-ae27-e7067565ab5f)
{% endopenapi %}

{% openapi src="/files/H3JdKbmbxFaTr21l9JhI" path="/api/v3/transactionsByMasterchainBlock" method="get" %}
[ton\_indexer\_api.json](https://3946753200-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F2ofbWCtvCf8VWwPLyyEW%2Fuploads%2F1Vyp6x4iEGRmDuKFIdyi%2Fton_indexer_api.json?alt=media\&token=1ded97e7-1424-487c-ae27-e7067565ab5f)
{% endopenapi %}

{% openapi src="/files/H3JdKbmbxFaTr21l9JhI" path="/api/v3/transactionsByMessage" method="get" %}
[ton\_indexer\_api.json](https://3946753200-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F2ofbWCtvCf8VWwPLyyEW%2Fuploads%2F1Vyp6x4iEGRmDuKFIdyi%2Fton_indexer_api.json?alt=media\&token=1ded97e7-1424-487c-ae27-e7067565ab5f)
{% endopenapi %}

{% openapi src="/files/H3JdKbmbxFaTr21l9JhI" path="/api/v3/adjacentTransactions" method="get" %}
[ton\_indexer\_api.json](https://3946753200-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F2ofbWCtvCf8VWwPLyyEW%2Fuploads%2F1Vyp6x4iEGRmDuKFIdyi%2Fton_indexer_api.json?alt=media\&token=1ded97e7-1424-487c-ae27-e7067565ab5f)
{% endopenapi %}

{% openapi src="/files/H3JdKbmbxFaTr21l9JhI" path="/api/v3/messages" method="get" %}
[ton\_indexer\_api.json](https://3946753200-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F2ofbWCtvCf8VWwPLyyEW%2Fuploads%2F1Vyp6x4iEGRmDuKFIdyi%2Fton_indexer_api.json?alt=media\&token=1ded97e7-1424-487c-ae27-e7067565ab5f)
{% endopenapi %}

{% openapi src="/files/H3JdKbmbxFaTr21l9JhI" path="/api/v3/nft/collections" method="get" %}
[ton\_indexer\_api.json](https://3946753200-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F2ofbWCtvCf8VWwPLyyEW%2Fuploads%2F1Vyp6x4iEGRmDuKFIdyi%2Fton_indexer_api.json?alt=media\&token=1ded97e7-1424-487c-ae27-e7067565ab5f)
{% endopenapi %}

{% openapi src="/files/H3JdKbmbxFaTr21l9JhI" path="/api/v3/nft/items" method="get" %}
[ton\_indexer\_api.json](https://3946753200-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F2ofbWCtvCf8VWwPLyyEW%2Fuploads%2F1Vyp6x4iEGRmDuKFIdyi%2Fton_indexer_api.json?alt=media\&token=1ded97e7-1424-487c-ae27-e7067565ab5f)
{% endopenapi %}

{% openapi src="/files/H3JdKbmbxFaTr21l9JhI" path="/api/v3/nft/transfers" method="get" %}
[ton\_indexer\_api.json](https://3946753200-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F2ofbWCtvCf8VWwPLyyEW%2Fuploads%2F1Vyp6x4iEGRmDuKFIdyi%2Fton_indexer_api.json?alt=media\&token=1ded97e7-1424-487c-ae27-e7067565ab5f)
{% endopenapi %}

{% openapi src="/files/H3JdKbmbxFaTr21l9JhI" path="/api/v3/jetton/masters" method="get" %}
[ton\_indexer\_api.json](https://3946753200-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F2ofbWCtvCf8VWwPLyyEW%2Fuploads%2F1Vyp6x4iEGRmDuKFIdyi%2Fton_indexer_api.json?alt=media\&token=1ded97e7-1424-487c-ae27-e7067565ab5f)
{% endopenapi %}

{% openapi src="/files/H3JdKbmbxFaTr21l9JhI" path="/api/v3/jetton/wallets" method="get" %}
[ton\_indexer\_api.json](https://3946753200-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F2ofbWCtvCf8VWwPLyyEW%2Fuploads%2F1Vyp6x4iEGRmDuKFIdyi%2Fton_indexer_api.json?alt=media\&token=1ded97e7-1424-487c-ae27-e7067565ab5f)
{% endopenapi %}

{% openapi src="/files/H3JdKbmbxFaTr21l9JhI" path="/api/v3/jetton/transfers" method="get" %}
[ton\_indexer\_api.json](https://3946753200-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F2ofbWCtvCf8VWwPLyyEW%2Fuploads%2F1Vyp6x4iEGRmDuKFIdyi%2Fton_indexer_api.json?alt=media\&token=1ded97e7-1424-487c-ae27-e7067565ab5f)
{% endopenapi %}

{% openapi src="/files/H3JdKbmbxFaTr21l9JhI" path="/api/v3/jetton/burns" method="get" %}
[ton\_indexer\_api.json](https://3946753200-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F2ofbWCtvCf8VWwPLyyEW%2Fuploads%2F1Vyp6x4iEGRmDuKFIdyi%2Fton_indexer_api.json?alt=media\&token=1ded97e7-1424-487c-ae27-e7067565ab5f)
{% endopenapi %}

{% openapi src="/files/H3JdKbmbxFaTr21l9JhI" path="/api/v3/message" method="post" %}
[ton\_indexer\_api.json](https://3946753200-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F2ofbWCtvCf8VWwPLyyEW%2Fuploads%2F1Vyp6x4iEGRmDuKFIdyi%2Fton_indexer_api.json?alt=media\&token=1ded97e7-1424-487c-ae27-e7067565ab5f)
{% endopenapi %}

{% openapi src="/files/H3JdKbmbxFaTr21l9JhI" path="/api/v3/runGetMethod" method="post" %}
[ton\_indexer\_api.json](https://3946753200-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F2ofbWCtvCf8VWwPLyyEW%2Fuploads%2F1Vyp6x4iEGRmDuKFIdyi%2Fton_indexer_api.json?alt=media\&token=1ded97e7-1424-487c-ae27-e7067565ab5f)
{% endopenapi %}

{% openapi src="/files/H3JdKbmbxFaTr21l9JhI" path="/api/v3/account" method="get" %}
[ton\_indexer\_api.json](https://3946753200-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F2ofbWCtvCf8VWwPLyyEW%2Fuploads%2F1Vyp6x4iEGRmDuKFIdyi%2Fton_indexer_api.json?alt=media\&token=1ded97e7-1424-487c-ae27-e7067565ab5f)
{% endopenapi %}

{% openapi src="/files/H3JdKbmbxFaTr21l9JhI" path="/api/v3/estimateFee" method="post" %}
[ton\_indexer\_api.json](https://3946753200-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F2ofbWCtvCf8VWwPLyyEW%2Fuploads%2F1Vyp6x4iEGRmDuKFIdyi%2Fton_indexer_api.json?alt=media\&token=1ded97e7-1424-487c-ae27-e7067565ab5f)
{% endopenapi %}

{% openapi src="/files/H3JdKbmbxFaTr21l9JhI" path="/api/v3/wallet" method="get" %}
[ton\_indexer\_api.json](https://3946753200-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F2ofbWCtvCf8VWwPLyyEW%2Fuploads%2F1Vyp6x4iEGRmDuKFIdyi%2Fton_indexer_api.json?alt=media\&token=1ded97e7-1424-487c-ae27-e7067565ab5f)
{% endopenapi %}


# BNB

Welcome to the BNB documentation! Learn how to interact with BNB Chain  (BNB ) using ChainUp Cloud

In this section, you will be able to learn about what makes BNB special and how you can leverage available tools to build amazing products!

You can then get started with the available RPC & REST APIs we support [ **via ChainUp Cloud**.](https://cloud.chainup.com)

Last but not least, if you are looking for guidelines or simply some inspiration, check out available tutorials in [**For Developers**](/introduction/for-developers/use-blockchain-api).

Be sure to check out the[ **official BNB documentation**.](https://docs.bnbchain.org/docs/rpc#json-rpc-methods)

🚀 Let's start building the decentralized web 🚀


# JSON-RPC methods

### BSC RPC

You can review the official BSC RPC documentation **HERE**

### Example RPC

{% tabs %}
{% tab title="Curl" %}

```
curl https://api.chainup.net/bsc/mainnet/<YOUR_API_KEY> \
-X POST \
-H 'content-type: application/json' \
-H "CONSISTENT-HASH: true" \
--data '{"jsonrpc":"2.0","method":"eth_syncing","params":[],"id":1}' 
```

{% endtab %}

{% tab title="Javascript" %}

```javascript
const axios = require('axios');
//npm install axios if you don have the module installed`

let options = {
    url: "https://api.chainup.net/bsc/mainnet/<YOUR_API_KEY>",
    method: "post",
    headers:
    { 
     "content-type": "application/json"
    },
    body: JSON.stringify({"jsonrpc":"2.0","method":"net_peerCount","params":[],"id":1})
};

axios(options)
.then(response => {
console.log('Post successful: response:', response.data);
})
.catch(error => {
console.error('An error has occurred:', error);
});
```

{% endtab %}

{% tab title="Python" %}

```python
import requests
import json

headers = {"content-type": "application/json" ,
            "CONSISTENT-HASH": "true"}
payload = json.dumps({
    "id": 1,
    "jsonrpc": "2.0",
    "method": "net_peerCount",
    "params": []
})
r = requests.post(url="https://api.chainup.net/bsc/mainnet/<YOUR_API_KEY>", headers=headers, data=payload)
if r.status_code == 200:
    print("Post successful: response: ", r.content)
else:
    print("An error has occurred: ", r.status_code)
```

{% endtab %}

{% tab title="Websocket" %}
`websocat wss://api.chainup.net/ws/bsc/mainnet/<YOUR_API_KEY>`
{% endtab %}
{% endtabs %}


# WebSocket stream

Unlike HTTP, with WebSockets, you don't need to continuously make requests when you want specific information. WebSockets maintain a network connection for you (if done right) and listen for changes . You may view the official documentation [here](https://docs.bnbchain.org/docs/Integrate#the-recommended-way-via-websocket).&#x20;

{% tabs %}
{% tab title="WebSocket" %}

```
wscat -c wss://api.chainup.net/ws/bsc/mainnet/<YOUR_API_KEY>
<  {"jsonrpc":  "2.0", "id": 0, "method":  "eth_gasPrice"}
<  {"jsonrpc": "2.0","id":0,"result":"0x6f56b59ac"}
```

{% endtab %}

{% tab title="Javascript" %}

<pre><code><strong>const Web3 = require('web3');
</strong>
const web3 = new Web3("wss://api.chainup.net/ws/bsc/mainnet/&#x3C;YOUR_API_KEY>")

web3.eth.getBlockNumber().then(console.log) // -> 9022457

</code></pre>

{% endtab %}

{% tab title="Python" %}

```
from web3 import Web3

websocket_url='wss://api.chainup.net/ws/bsc/mainnet/<YOUR_API_KEY>'
w3 = Web3(Web3.HTTPProvider(websocket_url))

# You can check if the connection is established using isConnected function.
w3.isConnected()

# Output: True
```

{% endtab %}
{% endtabs %}


# Polygon (Matic)

Welcome to the Polygon documentation! Learn how to interact with Polygon using ChainUp Cloud

In this section, you will be able to learn about what makes Polygon special and how you can leverage available tools to build amazing products!

You can then get started with the available RPC & REST APIs we support  [ **via ChainUp Cloud**.](https://cloud.chainup.com)

Last but not least, if you are looking for guidelines or simply some inspiration, check out available tutorials in [**For Developers**](/introduction/for-developers/use-blockchain-api).

Be sure to check out the [**official Polygon documentation**](https://docs.polygon.technology/).

🚀 Let's start building the decentralized web 🚀


# JSON-RPC methods

### Polygon RPC

You can review the official Polygon RPC documentation [**HERE**](https://ethereum.org/en/developers/docs/apis/json-rpc/)

### Example RPC

{% tabs %}
{% tab title="Curl" %}

```
curl https://api.chainup.net/polygon/mainnet/<YOUR_API_KEY> \
-X POST \
-H 'content-type: application/json' \
-H "CONSISTENT-HASH: true" \
--data '{"jsonrpc":"2.0","method":"net_peerCount","params":[],"id":1}' 
```

{% endtab %}

{% tab title="Javascript" %}

```javascript
const axios = require('axios');
//npm install axios if you don have the module installed`

let options = {
    url: "https://api.chainup.net/polygon/mainnet/<YOUR_API_KEY>",
    method: "post",
    headers:
    { 
     "content-type": "application/json" ,
     "CONSISTENT-HASH": "true"
    },
    body: JSON.stringify({"jsonrpc":"2.0","method":"net_peerCount","params":[],"id":1})
};

axios(options)
.then(response => {
console.log('Post successful: response:', response.data);
})
.catch(error => {
console.error('An error has occurred:', error);
});
```

{% endtab %}

{% tab title="Python" %}

```python
import requests
import json

headers = {"content-type": "application/json" ,
    "CONSISTENT-HASH": "true" }
payload = json.dumps({
    "id": 1,
    "jsonrpc": "2.0",
    "method": "net_peerCount",
    "params": []
})
r = requests.post(url="https://api.chainup.net/polygon/mainnet/<YOUR_API_KEY>", headers=headers, data=payload)
if r.status_code == 200:
    print("Post successful: response: ", r.content)
else:
    print("An error has occurred: ", r.status_code)
```

{% endtab %}
{% endtabs %}


# WebSocket stream

Unlike HTTP, with WebSockets, you don't need to continuously make requests when you want specific information. WebSockets maintain a network connection for you (if done right) and listen for changes . You may view the official documentation [here](https://docs.polygon.technology/docs/edge/get-started/json-rpc-commands/).&#x20;

{% tabs %}
{% tab title="WebSocket" %}

```
wscat -c wss://api.chainup.net/ws/polygon/mainnet/<YOUR_API_KEY>
<  {"jsonrpc":  "2.0", "id": 0, "method":  "eth_gasPrice"}
<  {"jsonrpc": "2.0","id":0,"result":"0x6f56b59ac"}
```

{% endtab %}

{% tab title="Javascript" %}

<pre><code><strong>const Web3 = require('web3');
</strong>
const web3 = new Web3("wss://api.chainup.net/ws/polygon/mainnet/&#x3C;YOUR_API_KEY>")

web3.eth.getBlockNumber().then(console.log) // -> 9022457

</code></pre>

{% endtab %}

{% tab title="Python" %}

```
from web3 import Web3

websocket_url='wss://api.chainup.net/ws/polygon/mainnet/<YOUR_API_KEY>'
w3 = Web3(Web3.HTTPProvider(websocket_url))

# You can check if the connection is established using isConnected function.
w3.isConnected()

# Output: True
```

{% endtab %}
{% endtabs %}


# Tron

Welcome to the Tron documentation! Learn how to interact with Tron using ChainUp Cloud

In this section, you will be able to learn about what makes Tron special and how you can leverage available tools to build amazing products!

You can then get started with the available RPC & REST APIs we support [ ](https://cloud.chainup.com)[**via ChainUp Cloud**.](https://cloud.chainup.com)

Last but not least, if you are looking for guidelines or simply some inspiration, check out available tutorials in [**For Developers**](/introduction/for-developers/use-blockchain-api).

Be sure to check out the [**official Tron documentation**](https://developers.tron.network/).

🚀 Let's start building the decentralized web 🚀


# JSON-RPC methods

### Tron RPC

You can review the official Tron RPC documentation [**HERE**](https://developers.tron.network/reference/json-rpc-api-overview)

### Example RPC

{% tabs %}
{% tab title="Curl" %}

```
curl https://api.chainup.net/tron/mainnet/<YOUR_API_KEY> \
-X POST \
-H 'content-type: application/json' \
-H "CONSISTENT-HASH: true" \
--data '{"jsonrpc":"2.0","method":"net_peerCount","params":[],"id":1}' 
```

{% endtab %}

{% tab title="Javascript" %}

```javascript

const axios = require('axios');
//npm install axios if you don have the module installed`

let options = {
    url: "https://api.chainup.net/tron/mainnet/<YOUR_API_KEY>",
    method: "post",
    headers:
    { 
     "content-type": "application/json" ,
     "CONSISTENT-HASH": "true" },
    body: JSON.stringify({"jsonrpc":"2.0","method":"net_peerCount","params":[],"id":1})
};

axios(options)
.then(response => {
console.log('Post successful: response:', response.data);
})
.catch(error => {
console.error('An error has occurred:', error);
});

```

{% endtab %}

{% tab title="Python" %}

```python
import requests
import json

headers = {"content-type": "application/json" ,
            "CONSISTENT-HASH": "true" }
payload = json.dumps({
    "id": 1,
    "jsonrpc": "2.0",
    "method": "net_peerCount",
    "params": []
})
r = requests.post(url="https://api.chainup.net/tron/mainnet/<YOUR_API_KEY>", headers=headers, data=payload)
if r.status_code == 200:
    print("Post successful: response: ", r.content)
else:
    print("An error has occurred: ", r.status_code)
```

{% endtab %}

{% tab title="HTTP" %}
`curl -i https://api.chainup.net/tron/mainnet/YOUR_API_KEY>/wallet/getnowblock`
{% endtab %}
{% endtabs %}


# Bitcoin

Welcome to the Bitcoin documentation! Learn how to interact with Bitcoin using ChainUp Cloud

Chainup Cloud provides a Bitcoin RPC API that serves hundreds of billions of requests per month. We have documentation on how to use our API with cURL, JavaScript, Python,   and any applicable Web3 SDKs. The following are the Chainup Cloud-supported Bitcoin APIs:

Here are some additional details about&#x20;

**Bitcoin JSON-RPC API:** This is the core Bitcoin API that provides access to all of the Bitcoin blockchain data.\
\
In this section, you will be able to learn about what makes Bitcoin special and how you can leverage available tools to build amazing products!

You can then get started with the available RPC & REST APIs we support[ **via ChainUp Cloud**.](https://cloud.chainup.com)

Last but not least, if you are looking for guidelines or simply some inspiration, check out available tutorials in [**For Developers**](/introduction/for-developers/use-blockchain-api).

Be sure to check out the **official Bitcoin documentation**.


# JSON-RPC methods

### Bitcoin RPC

You can review the official[ Bitcoin RPC documentation **HERE**](https://bitcoincore.org/en/doc/24.0.0/rpc/blockchain/getbestblockhash/)**.**&#x20;

### Example RPC

{% tabs %}
{% tab title="Curl" %}

```
curl https://api.chainup.net/bitcoin/mainnet/<YOUR_API_KEY> \
-X POST \
-H 'content-type: application/json' \
-H "CONSISTENT-HASH: true" \
--data '{"jsonrpc":"2.0","method":"getblockchaininfo","params":[],"id":1}'
```

{% endtab %}

{% tab title="Javascript" %}

```
const axios = require('axios');
let options = {
url: "https://api.chainup.net/bitcoin/mainnet/<YOUR_API_KEY>",
method: "post",
headers:
{ 
"content-type": "application/json",
"CONSISTENT-HASH": "true" 
},
body: JSON.stringify({"jsonrpc":"2.0","method":"getblockchaininfo","params":[],"id":1})
};
axios(options)
    .then(response => {
        console.log('Post successful: response:', response.data);
    })
    .catch(error => {
        console.error('An error has occurred:', error);

```

{% endtab %}

{% tab title="Python" %}

```
import requests
import json

headers = {"content-type": "application/json"}
payload = json.dumps({
    "id": 1,
    "jsonrpc": "2.0",
    "method": "getblockchaininfo",
    "params": []
})
r = requests.post(url="https://api.chainup.net/bitcoin/mainnet/<YOUR_API_KEY>", headers=headers, data=payload)
if r.status_code == 200:
    print("Post successful: response: ", r.content)
else:
    print("An error has occurred: ", r.status_code)
```

{% endtab %}
{% endtabs %}

### **Available  Bitcoin  API request methods**

```
      "getbestblockhash"
      "getblock"
      "getblockchaininfo"
      "getblockcount"
      "getblockfilter"
      "getblockfrompeer"
      "getblockhash"
      "getblockheader"
      "getblockstats"
      "getchaintips"
      "getchaintxstats"
      "getdeploymentinfo"
      "getdifficulty"
      "getmempoolancestors"
      "getmempooldescendants"
      "getmempoolentry"
      "getmempoolinfo"
      "getrawmempool"
      "gettxout"
      "gettxoutproof"
      "gettxoutsetinfo"
      "gettxspendingprevout"
      "preciousblock"
      "pruneblockchain"
      "savemempool"
      "scantxoutset"
      "verifychain"
      "verifytxoutproof"
```

### <br>


# Filecoin

Welcome to the Filecoin documentation! Learn how to interact with Filecoin using ChainUp Cloud

In this section, you will be able to learn about what makes Filecoin special and how you can leverage available tools to build amazing products!

You can then get started with the available RPC & REST APIs we support[ **via ChainUp Cloud**.](https://cloud.chainup.com)

Last but not least, if you are looking for guidelines or simply some inspiration, check out available tutorials in [**For Developers**](/introduction/for-developers/use-blockchain-api).

Be sure to check out the [**official Filecoin documentation**](https://docs.filecoin.io/).


# JSON-RPC methods

### Filecoin RPC

You can review the official Filecoin RPC documentation [**HERE**](https://lotus.filecoin.io/reference/basics/overview/)

{% hint style="info" %}
Due to the computational resources consumed by certain RPCs, the free public RPC only supports the RPCs mentioned above. The rest of the JSON-RPCs will be intercepted and return a 403 status code.
{% endhint %}

{% hint style="info" %}
We only collect user IP addresses for the purpose of rate limiting. For more information, please visit: <https://www.chainup.com/privacyPolicy>
{% endhint %}

### Example RPC

{% tabs %}
{% tab title="Curl" %}

```
curl https://api.chainup.net/filecoin/mainnet/<YOUR_API_KEY> \
-X POST \
-H 'content-type: application/json' \
-H "CONSISTENT-HASH: true" \
--data '{"jsonrpc":"2.0","method":"Filecoin.Version","params":[],"id":1}'
```

{% endtab %}

{% tab title="Javascript" %}

```
const axios = require('axios');
//npm install axios if you don have the module installed

let options = {
url: "https://api.chainup.net/filecoin/mainnet/<YOUR_API_KEY>/rpc/v1",
method: "post",
headers:
{
"content-type": "application/json",
"CONSISTENT-HASH": "true"
},
body: JSON.stringify({"jsonrpc":"2.0","method":"Filecoin.Version","params":[],"id":1})
};

axios(options)
.then(response => {
console.log('Post successful: response:', response.data);
})
.catch(error => {
console.error('An error has occurred:', error);
});
```

{% endtab %}

{% tab title="Python" %}

````
```python
import requests
import json

headers = {"content-type": "application/json",
    "CONSISTENT-HASH": "true" }
payload = json.dumps({
    "id": 1,
    "jsonrpc": "2.0",
    "method": "Filecoin.Version",
    "params": []
})
r = requests.post(url="https://api.chainup.net/filecoin/mainnet/<YOUR_API_KEY>/rpc/v1", headers=headers, data=payload)
if r.status_code == 200:
    print("Post successful: response: ", r.content)
else:
    print("An error has occurred: ", r.status_code)
```
````

{% endtab %}
{% endtabs %}


# Public APIs

The Public API has minimum service rates, making it suitable for use with MetaMask. To access premium support, register with ChainUp Cloud

{% hint style="info" %}
Note That each ip address is limited to only 60 request per minute.
{% endhint %}

### Endpoints

[https://filecoin.chainup.net/rpc/v1\
https://filecoin-calibration.chainup.net/rpc/v1\
https://filecoin-hyperspace.chainup.net/rpc/v1](<https://filecoin.chainup.net/rpc/v1&#xA;https://filecoin-calibration.chainup.net/rpc/v1&#xA;https://filecoin-hyperspace.chainup.net/rpc/v1>)

{% hint style="info" %}
We only collect user IP addresses for the purpose of rate limiting. For more information, please visit: <https://www.chainup.com/privacyPolicy>
{% endhint %}

### **Available Filecoin API request methods**

```
      Filecoin.ChainGetBlockMessages
      Filecoin.ChainGetGenesis
      Filecoin.ChainGetMessage
      Filecoin.ChainGetParentMessages
      Filecoin.ChainGetParentReceipts
      Filecoin.ChainGetPath
      Filecoin.ChainGetTipSet
      Filecoin.ChainGetTipSetAfterHeight
      Filecoin.ChainGetTipSetByHeight
      Filecoin.ChainHasObj
      Filecoin.ChainHead
      Filecoin.ChainPutObj
      Filecoin.ChainReadObj
      Filecoin.Discover
      Filecoin.EthAccounts
      Filecoin.EthBlockNumber
      Filecoin.EthCall
      Filecoin.EthChainId
      Filecoin.EthEstimateGas
      Filecoin.EthFeeHistory
      Filecoin.EthGasPrice
      Filecoin.EthGetBalance
      Filecoin.EthGetBlockByHash
      Filecoin.EthGetBlockByNumber
      Filecoin.EthGetBlockTransactionCountByHash
      Filecoin.EthGetBlockTransactionCountByNumber
      Filecoin.EthGetCode
      Filecoin.EthGetFilterChanges
      Filecoin.EthGetFilterLogs
      Filecoin.EthGetLogs
      Filecoin.EthGetMessageCidByTransactionHash
      Filecoin.EthGetStorageAt
      Filecoin.EthGetTransactionByHash
      Filecoin.EthGetTransactionCount
      Filecoin.EthGetTransactionHashByCid
      Filecoin.EthGetTransactionReceipt
      Filecoin.EthMaxPriorityFeePerGas
      Filecoin.EthNewBlockFilter
      Filecoin.EthNewFilter
      Filecoin.EthNewPendingTransactionFilter
      Filecoin.EthProtocolVersion
      Filecoin.EthSendRawTransaction
      Filecoin.EthSubscribe
      Filecoin.EthUninstallFilter
      Filecoin.EthUnsubscribe
      Filecoin.GasEstimateGasPremium
      Filecoin.GasEstimateMessageGas
      Filecoin.MpoolGetNonce
      Filecoin.MpoolPush
      Filecoin.MsigGetAvailableBalance
      Filecoin.MsigGetPending
      Filecoin.MsigGetVested
      Filecoin.MsigGetVestingSchedule
      Filecoin.NetListening
      Filecoin.NetVersion
      Filecoin.StateAccountKey
      Filecoin.StateCall
      Filecoin.StateDealProviderCollateralBounds
      Filecoin.StateDecodeParams
      Filecoin.StateGetActor
      Filecoin.StateListMiners
      Filecoin.StateLookupID
      Filecoin.StateMarketBalance
      Filecoin.StateMarketStorageDeal
      Filecoin.StateMinerInfo
      Filecoin.StateMinerPower
      Filecoin.StateMinerProvingDeadline
      Filecoin.StateMinerSectorCount
      Filecoin.StateNetworkName
      Filecoin.StateNetworkVersion
      Filecoin.StateReadState
      Filecoin.StateReplay
      Filecoin.StateSearchMsg
      Filecoin.StateSectorGetInfo
      Filecoin.StateVerifiedClientStatus
      Filecoin.StateVerifierStatus
      Filecoin.StateWaitMsg
      Filecoin.Version
      Filecoin.WalletBalance
      Filecoin.Web3ClientVersion
```


# Polkadot

Welcome to the Polkadot documentation! Learn how to interact with Polkadot using ChainUp Cloud

In this section, you will be able to learn about what makes Polkadot special and how you can leverage available tools to build amazing products!

You can then get started with the available RPC & REST APIs we support [ **via ChainUp Cloud**.](https://cloud.chainup.com)

Last but not least, if you are looking for guidelines or simply some inspiration, check out available tutorials in [**For Developers**](/introduction/for-developers/use-blockchain-api).

Be sure to check out the[ **official Polkadot documentation**](https://wiki.polkadot.network/en/).

🚀 Let's start building the decentralized web 🚀


# JSON-RPC methods

### Polkadot RPC

You can review the official Polkadot RPC documentation [**HERE**](https://polkadot.js.org/docs/substrate/rpc/)

### Example RPC

{% tabs %}
{% tab title="Curl" %}

```
curl https://api.chainup.net/polkadot/mainnet/<YOUR_API_KEY> \
-X POST \
-H 'content-type: application/json' \
-H "CONSISTENT-HASH: true" \
--data '{"jsonrpc":"2.0","method":"chain_getBlock","params":[],"id":32}'
```

{% endtab %}

{% tab title="Javascript" %}

```
const request = require('request');

let options = {
    url: "https://api.chainup.net/polkadot/mainnet/<YOUR_API_KEY>",
    method: "post",
    headers:
    { 
     "content-type": "application/json"
    },
    body: JSON.stringify({"jsonrpc":"2.0","method":"chain_getBlock","params":[],"id":32})
};

request(options, (error, response, body) => {
    if (error) {
        console.error('An error has occurred: ', error);
    } else {
        console.log('Post successful: response: ', body);
    }
});
```

{% endtab %}

{% tab title="Python" %}

```
import requests
import json

headers = {"content-type": "application/json"}
payload = json.dumps({
    "id": 32,
    "jsonrpc": "2.0",
    "method": "chain_getBlock",
    "params": []
})
r = requests.post(url="https://api.chainup.net/polkadot/mainnet/<YOUR_API_KEY>", headers=headers, data=payload)
if r.status_code == 200:
    print("Post successful: response: ", r.content)
else:
    print("An error has occurred: ", r.status_code)
```

{% endtab %}
{% endtabs %}


# WebSocket stream

Unlike HTTP, with WebSockets, you don't need to continuously make requests when you want specific information. WebSockets maintain a network connection for you (if done right) and listen for changes . You may view the official documentation [here](https://wiki.polkadot.network/docs/maintain-wss).&#x20;

{% tabs %}
{% tab title="WebSocket" %}

```
wscat -c wss://api.chainup.net/ws/polkadot/mainnet/<YOUR_API_KEY>
<  {"jsonrpc":"2.0","method":"chain_getBlock","params":[],"id":32}
<  {"jsonrpc":"2.0","result":{"block":{"header":{"parentHash":"0x8a55738db2a55ee21eadf27756348c6e3883c93fc4c55424511da8c5ea8d3a13","number":"0xb04b2a", ... }
```

{% endtab %}

{% tab title="Javascript" %}

```
// Required imports
const { ApiPromise, WsProvider } = require('@polkadot/api');

async function main () {
  // Initialise the provider to connect to the local node
  const provider = new WsProvider('wss://api.chainup.net/ws/polkadot/mainnet/<YOUR_API_KEY>');

  // Create the API and wait until ready
  const api = await ApiPromise.create({ provider });

  // Retrieve the chain & node information information via rpc calls
  const [chain, nodeName, nodeVersion] = await Promise.all([
    api.rpc.system.chain(),
    api.rpc.system.name(),
    api.rpc.system.version()
  ]);

  console.log(`You are connected to chain ${chain} using ${nodeName} v${nodeVersion}`);
}

main().catch(console.error).finally(() => process.exit());
```

{% endtab %}

{% tab title="Python" %}

```
import asyncio
from jsonrpc_websocket import Server

async def routine():
    server = Server('wss://api.chainup.net/ws/polkadot/mainnet/<YOUR_API_KEY>')
    try:
        await server.ws_connect()

        chain = await server.api.rpc.system.chain()
        nodeName = await api.rpc.system.name()
        nodeVersion = await api.rpc.system.version()
        
        print(f'You are connected to chain {chain} using {nodeName} v{nodeVersion}')
    finally:
        await server.close()

asyncio.get_event_loop().run_until_complete(routine())
```

{% endtab %}
{% endtabs %}


# Litecoin

Welcome to the Litecoin documentation! Learn how to interact with Litecoin using ChainUp Cloud

In this section, you will be able to learn about what makes Litecoin special and how you can leverage available tools to build amazing products!

You can then get started with the available RPC & REST APIs we support [ **via ChainUp Cloud**.](https://cloud.chainup.com)

Last but not least, if you are looking for guidelines or simply some inspiration, check out available tutorials in [**For Developers**](/introduction/for-developers/use-blockchain-api).

Be sure to check out the[ **official Litecoin documentation**](https://litecoin.info/index.php/Main_Page).

🚀 Let's start building the decentralized web 🚀


# JSON-RPC methods

### Litecoin RPC

You can review the official Litecoin RPC documentation [**HERE**](https://litecoin.info/index.php/Litecoin_API)

### Example RPC

{% tabs %}
{% tab title="Curl" %}

```
curl https://api.chainup.net/litecoin/mainnet/<YOUR_API_KEY> \
-X POST \
-H 'content-type: application/json' \
-H "CONSISTENT-HASH: true" \
--data '{"jsonrpc":"2.0","method":"getblockchaininfo","params":[],"id":1}'
```

{% endtab %}

{% tab title="Javascript" %}

```javascript

const axios = require('axios');
//npm install axios if you don have the module installed`
let options = {
    url: "https://api.chainup.net/litecoin/mainnet/<YOUR_API_KEY>",
    method: "post",
    headers:
    { 
     "content-type": "application/json",
     "CONSISTENT-HASH": "true"
    },
    body: JSON.stringify({"jsonrpc":"2.0","method":"getblockchaininfo","params":[],"id":1})
};

axios(options)
.then(response => {
console.log('Post successful: response:', response.data);
})
.catch(error => {
console.error('An error has occurred:', error);
});
```

{% endtab %}

{% tab title="Python" %}

```python
import requests
import json

headers = {"content-type": "application/json",
    "CONSISTENT-HASH": "true" } 
payload = json.dumps({
    "id": 1,
    "jsonrpc": "2.0",
    "method": "getblockchaininfo",
    "params": []
})
r = requests.post(url="https://api.chainup.net/litecoin/mainnet/<YOUR_API_KEY>", headers=headers, data=payload)
if r.status_code == 200:
    print("Post successful: response: ", r.content)
else:
    print("An error has occurred: ", r.status_code)


```

{% endtab %}
{% endtabs %}


# Near

Welcome to the Near documentation! Learn how to interact with Near using ChainUp Cloud

In this section, you will be able to learn about what makes Litecoin special and how you can leverage available tools to build amazing products!

You can then get started with the available RPC & REST APIs we support [ **via ChainUp Cloud**.](https://cloud.chainup.com)

Last but not least, if you are looking for guidelines or simply some inspiration, check out available tutorials in [**For Developers**](/introduction/for-developers/use-blockchain-api).

Be sure to check out the [**official Near documentation**](https://docs.near.org/api/rpc/introduction).

🚀 Let's start building the decentralized web 🚀


# JSON-RPC methods

### Litecoin RPC

You can review the official Litecoin RPC documentation [**HERE**](https://litecoin.info/index.php/Litecoin_API)

### Example RPC

{% tabs %}
{% tab title="Curl" %}

<pre><code><strong>curl https://api.chainup.net/near/mainnet/&#x3C;YOUR_API_KEY> \
</strong>-X POST \
-H 'content-type: application/json' \
-H "CONSISTENT-HASH: true" \
---data '{"jsonrpc":"2.0","method":"network_info","params":[],"id":1}'  
</code></pre>

{% endtab %}

{% tab title="Javascript" %}

<pre class="language-javascript"><code class="lang-javascript"><strong>const axios = require('axios');
</strong>//npm install axios if you don have the module installed`
let options = {
    url: "https://api.chainup.net/near/mainnet/&#x3C;YOUR_API_KEY>",
    method: "post",
    headers:
    { 
     "content-type": "application/json"
    },
    body: JSON.stringify({"jsonrpc":"2.0","method":"network_info","params":[],"id":1})
};

axios(options)
.then(response => {
console.log('Post successful: response:', response.data);
})
.catch(error => {
console.error('An error has occurred:', error);
});
</code></pre>

{% endtab %}

{% tab title="Python" %}

```python
import requests
import json

headers = {"content-type": "application/json",
            "CONSISTENT-HASH": "true" }
payload = json.dumps({
    "id": 1,
    "jsonrpc": "2.0",
    "method": "network_info",
    "params": []
})
r = requests.post(url="https://api.chainup.net/near/mainnet/<YOUR_API_KEY>", headers=headers, data=payload)
if r.status_code == 200:
    print("Post successful: response: ", r.content)
else:
    print("An error has occurred: ", r.status_code)
```

{% endtab %}
{% endtabs %}


# Ethereum Beacon

Welcome to the Ethereum Beacon documentation . Learn how to interact with Ethereum Beacon using ChainUp Cloud

The Ethereum beacon chain is a core component of the Ethereum 2.0 upgrade. It is a new proof-of-stake (PoS) blockchain that will eventually replace the current proof-of-work (PoW) Ethereum blockchain. The beacon chain is responsible for managing the overall operation of the Ethereum 2.0 network, including managing the validator set and the consensus mechanism.

In this section, you will be able to learn about what makes Ethereum special and how you can leverage available tools to build amazing products!

You can then get started with the available RPC & REST APIs we support [ **via ChainUp Cloud**.](https://cloud.chainup.com)

Last but not least, if you are looking for guidelines or simply some inspiration, check out available tutorials in [**For Developers**](/introduction/for-developers/use-blockchain-api).

Be sure to check out the [**official Ethereum documentation**](https://ethereum.org/en/developers/docs/apis/json-rpc/).


# JSON-RPC methods

### Ethereum Beacon API

You can review the official Ethereum Beacon API documentation [**HERE**](https://ethereum.github.io/beacon-APIs/?urls.primaryName=dev#/Beacon)

### Example API

{% tabs %}
{% tab title="Curl" %}

```
curl https://api.chainup.net/ethereum2/mainnet/<YOUR_API_KEY>/eth/v1/node/syncing \
-X GET \
-H 'content-type: application/json' \
-H "CONSISTENT-HASH: true" 
```

{% endtab %}

{% tab title="Javascript" %}

```javascript
const axios = require('axios');
//npm install axios if you don have the module installed`

let options = {
    url: "https://api.chainup.net/ethereum2/mainnet/<YOUR_API_KEY>/eth/v1/node/syncing",
    method: "get",
    headers:
    { 
     "content-type": "application/json",
     "CONSISTENT-HASH": "true"
    }
};

axios(options)
.then(response => {
console.log('Post successful: response:', response.data);
})
.catch(error => {
console.error('An error has occurred:', error);
});
```

{% endtab %}

{% tab title="Python" %}

<pre class="language-python"><code class="lang-python">
<strong>import requests
</strong>import json

headers = {"content-type": "application/json",
    "CONSISTENT-HASH": "true"}
r = requests.get(url="https://api.chainup.net/ethereum2/mainnet/&#x3C;YOUR_API_KEY>/eth/v1/node/syncing", headers=headers)
if r.status_code == 200:
    print("Get successful: response: ", r.content)
else:
    print("An error has occurred: ", r.status_code)

</code></pre>

{% endtab %}
{% endtabs %}


# Ethereum Classic - ETC

Welcome to the Ethereum Classic documentation! Learn how to interact with Ethereum Classic using ChainUp Cloud

In this section, you will be able to learn about what makes Ethereum Classic special and how you can leverage available tools to build amazing products!

You can then get started with the available RPC & REST APIs we support [ **via ChainUp Cloud**.](https://cloud.chainup.com)

Last but not least, if you are looking for guidelines or simply some inspiration, check out available tutorials in [**For Developers**](/introduction/for-developers/use-blockchain-api).

Be sure to check out the [**official Ethereum Classic documentation**](https://docs.ethereumclassic.org/).

🚀 Let's start building the decentralized web 🚀


# JSON-RPC methods

### Ethereum Classic RPC

You can review the official Ethereum Classic RPC documentation [**HERE**](https://docs.ethereumclassic.org/docs/doc2)

### Example RPC

{% tabs %}
{% tab title="Curl" %}

```
curl https://api.chainup.net/etc/mainnet/<YOUR_API_KEY> \
-X POST \
-H 'content-type: application/json' \
-H "CONSISTENT-HASH: true" \
--data '{"jsonrpc":"2.0","method":"net_peerCount","params":[],"id":1}' 
```

{% endtab %}

{% tab title="Javascript" %}

```javascript
const axios = require('axios');
//npm install axios if you don have the module installed`

let options = {
    url: "https://api.chainup.net/etc/mainnet/<YOUR_API_KEY>",
    method: "post",
    headers:
    { 
     "content-type": "application/json",
          "CONSISTENT-HASH": "true"
    },
    body: JSON.stringify({"jsonrpc":"2.0","method":"net_peerCount","params":[],"id":1})
};

axios(options)
.then(response => {
console.log('Post successful: response:', response.data);
})
.catch(error => {
console.error('An error has occurred:', error);
});

```

{% endtab %}

{% tab title="Python" %}

```python
import requests
import json

headers = {"content-type": "application/json" ,
    "CONSISTENT-HASH": "true" }
payload = json.dumps({
    "id": 1,
    "jsonrpc": "2.0",
    "method": "net_peerCount",
    "params": []
})
r = requests.post(url="https://api.chainup.net/etc/mainnet/<YOUR_API_KEY>", headers=headers, data=payload)
if r.status_code == 200:
    print("Post successful: response: ", r.content)
else:
    print("An error has occurred: ", r.status_code)
```

{% endtab %}
{% endtabs %}


# Bitcoin Cash - BCH

Welcome to the Bitcoin Cash documentation! Learn how to interact with Bitcoin Cash using ChainUp Cloud

In this section, you will be able to learn about what makes Bitcoin Cash special and how you can leverage available tools to build amazing products!

You can then get started with the available RPC & REST APIs we support [ **via ChainUp Cloud**.](https://cloud.chainup.com)

Last but not least, if you are looking for guidelines or simply some inspiration, check out available tutorials in [**For Developers**](/introduction/for-developers/use-blockchain-api).

Be sure to check out the [**official Bitcoin Cash documentation**](https://docs.bitcoincashnode.org/).

🚀 Let's start building the decentralized web 🚀


# JSON-RPC methods

### Bitcoin Cash RPC

You can review the official Bitcoin Cash RPC documentation [**HERE**](https://docs.bitcoincashnode.org/doc/json-rpc/)

### Example RPC

{% tabs %}
{% tab title="Curl" %}

```
curl https://api.chainup.net/bch/mainnet/<YOUR_API_KEY> \
-X POST \
-H 'content-type: application/json' \
-H "CONSISTENT-HASH: true" \
--data '{"jsonrpc":"2.0","method":"getblockchaininfo","params":[],"id":1}'
```

{% endtab %}

{% tab title="Javascript" %}

````javascript
```javascript
const axios = require('axios');
//npm install axios if you don have the module installed`

let options = {
    url: "https://api.chainup.net/bch/mainnet/<YOUR_API_KEY>",
    method: "post",
    headers:
    { 
     "content-type": "application/json",
     "CONSISTENT-HASH": "true"
    },
    body: JSON.stringify({"jsonrpc":"2.0","method":"getblockchaininfo","params":[],"id":1})
};

axios(options)
.then(response => {
console.log('Post successful: response:', response.data);
})
.catch(error => {
console.error('An error has occurred:', error);
});
```
````

{% endtab %}

{% tab title="Python" %}

````python
```python
import requests
import json

headers = {"content-type": "application/json",
    "CONSISTENT-HASH": "true" }
payload = json.dumps({
    "id": 1,
    "jsonrpc": "2.0",
    "method": "getblockchaininfo",
    "params": []
})
r = requests.post(url="https://api.chainup.net/bch/mainnet/<YOUR_API_KEY>", headers=headers, data=payload)
if r.status_code == 200:
    print("Post successful: response: ", r.content)
else:
    print("An error has occurred: ", r.status_code)
```
````

{% endtab %}
{% endtabs %}


# Kusama

Welcome to the Kusama documentation! Learn how to interact with Kusama using ChainUp Cloud

In this section, you will be able to learn about what makes Kusama special and how you can leverage available tools to build amazing products!

You can then get started with the available RPC & REST APIs we support [ **via ChainUp Cloud**.](https://cloud.chainup.com)

Last but not least, if you are looking for guidelines or simply some inspiration, check out available tutorials in [**For Developers**](/introduction/for-developers/use-blockchain-api).

Be sure to check out the[ **official Kusama documentation**](https://guide.kusama.network/docs/kusama-getting-started).

🚀 Let's start building the decentralized web 🚀


# JSON-RPC methods

### Kusama RPC

You can review the official Kusama RPC documentation [**HERE**](https://polkadot.js.org/docs/substrate/rpc/)

### Example RPC

{% tabs %}
{% tab title="Curl" %}

```
curl https://api.chainup.net/kusama/mainnet/<YOUR_API_KEY> \
-X POST \
-H 'content-type: application/json' \
-H "CONSISTENT-HASH: true" \
--data '{"jsonrpc":"2.0","method":"chain_getBlock","params":[],"id":32}'
```

{% endtab %}

{% tab title="Javascript" %}

````javascript
```javascript
const axios = require('axios');
//npm install axios if you don have the module installed`

let options = {
    url: "https://api.chainup.net/kusama/mainnet/<YOUR_API_KEY>",
    method: "post",
    headers:
    { 
     "content-type": "application/json",
     "CONSISTENT-HASH": "true"
    },
    body: JSON.stringify({"jsonrpc":"2.0","method":"chain_getBlock","params":[],"id":32})
};

axios(options)
.then(response => {
console.log('Post successful: response:', response.data);
})
.catch(error => {
console.error('An error has occurred:', error);
});
```
````

{% endtab %}

{% tab title="Python" %}

````python
```python
import requests
import json

headers = {"content-type": "application/json",
    "CONSISTENT-HASH": "true" } 
payload = json.dumps({
    "id": 32,
    "jsonrpc": "2.0",
    "method": "chain_getBlock",
    "params": []
})
r = requests.post(url="https://api.chainup.net/kusama/mainnet/<YOUR_API_KEY>", headers=headers, data=payload)
if r.status_code == 200:
    print("Post successful: response: ", r.content)
else:
    print("An error has occurred: ", r.status_code)
```
````

{% endtab %}
{% endtabs %}


# WebSocket stream

Unlike HTTP, with WebSockets, you don't need to continuously make requests when you want specific information. WebSockets maintain a network connection for you (if done right) and listen for changes . You may view the official documentation [here](https://wiki.polkadot.network/docs/maintain-wss).&#x20;

{% tabs %}
{% tab title="WebSocket" %}

```
wscat -c wss://api.chainup.net/ws/kusama/mainnet/<YOUR_API_KEY>
<  {"jsonrpc":"2.0","method":"chain_getBlock","params":[],"id":32}
<  {"jsonrpc":"2.0","result":{"block":{"header":{"parentHash":"0x8a55738db2a55ee21eadf27756348c6e3883c93fc4c55424511da8c5ea8d3a13","number":"0xb04b2a", ... }
```

{% endtab %}

{% tab title="Javascript" %}

```
// Required imports
const { ApiPromise, WsProvider } = require('@polkadot/api');

async function main () {
  // Initialise the provider to connect to the local node
  const provider = new WsProvider('wss://api.chainup.net/ws/kusama/mainnet/<YOUR_API_KEY>');

  // Create the API and wait until ready
  const api = await ApiPromise.create({ provider });

  // Retrieve the chain & node information information via rpc calls
  const [chain, nodeName, nodeVersion] = await Promise.all([
    api.rpc.system.chain(),
    api.rpc.system.name(),
    api.rpc.system.version()
  ]);

  console.log(`You are connected to chain ${chain} using ${nodeName} v${nodeVersion}`);
}

main().catch(console.error).finally(() => process.exit());
```

{% endtab %}

{% tab title="Python" %}

```
import asyncio
from jsonrpc_websocket import Server

async def routine():
    server = Server('wss://api.chainup.net/ws/kusama/mainnet/<YOUR_API_KEY>')
    try:
        await server.ws_connect()

        chain = await server.api.rpc.system.chain()
        nodeName = await api.rpc.system.name()
        nodeVersion = await api.rpc.system.version()
        
        print(f'You are connected to chain {chain} using {nodeName} v{nodeVersion}')
    finally:
        await server.close()

asyncio.get_event_loop().run_until_complete(routine())
```

{% endtab %}
{% endtabs %}


# EOS

Welcome to the EOS documentation! Learn how to interact with EOS using ChainUp Cloud

In this section, you will be able to learn about what makes EOS special and how you can leverage available tools to build amazing products!

You can then get started with the available RPC & REST APIs we support [ **via ChainUp Cloud**.](https://cloud.chainup.com)

Last but not least, if you are looking for guidelines or simply some inspiration, check out available tutorials in [**For Developers**](/introduction/for-developers/use-blockchain-api).

Be sure to check out the [**official EOS documentation**](https://developers.eos.io/).

🚀 Let's start building the decentralized web 🚀


# JSON-RPC methods

### EOS API

You can review the official EOS API documentation [**HERE**](https://developers.eos.io/manuals/eos/latest/nodeos/plugins/chain_api_plugin/api-reference/index)

### Example API

{% tabs %}
{% tab title="Curl" %}

```
curl https://api.chainup.net/eos/mainnet/<YOUR_API_KEY>/v1/chain/get_info \
-X GET \
-H 'content-type: application/json'
-H "CONSISTENT-HASH: true" \
```

{% endtab %}

{% tab title="Javascript" %}

````javascript
```javascript
const axios = require('axios');
//npm install axios if you don have the module installed`

let options = {
    url: "https://api.chainup.net/eos/mainnet/<YOUR_API_KEY>/v1/chain/get_info",
    method: "get",
    headers:
    { 
     "content-type": "application/json",
     "CONSISTENT-HASH": "true"
    }
};

axios(options)
.then(response => {
console.log('Post successful: response:', response.data);
})
.catch(error => {
console.error('An error has occurred:', error);
});
```
````

{% endtab %}

{% tab title="Python" %}

```python
import requests
import json

headers = {"content-type": "application/json"  ,
    "CONSISTENT-HASH": "true" } 
r = requests.get(url="https://api.chainup.net/eos/mainnet/<YOUR_API_KEY>/v1/chain/get_info", headers=headers)
if r.status_code == 200:
    print("Get successful: response: ", r.content)
else:
    print("An error has occurred: ", r.status_code)
```

{% endtab %}
{% endtabs %}


# Fantom

Welcome to the Fantom documentation! Learn how to interact with Fantom using ChainUp Cloud

In this section, you will be able to learn about what makes Fantom special and how you can leverage available tools to build amazing products!

You can then get started with the available RPC & REST APIs we support [ **via ChainUp Cloud**.](https://cloud.chainup.com)

Last but not least, if you are looking for guidelines or simply some inspiration, check out available tutorials in [**For Developers**](/introduction/for-developers/use-blockchain-api).

Be sure to check out the [**official Fantom documentation**](https://docs.fantom.foundation/).

🚀 Let's start building the decentralized web 🚀


# JSON-RPC methods

### Fantom RPC

You can review the official Fantom RPC documentation [**HERE**](https://docs.fantom.foundation/api/web3-api)

### Example RPC

{% tabs %}
{% tab title="Curl" %}

```
curl https://api.chainup.net/fantom/mainnet/<YOUR_API_KEY> \
-X POST \
-H 'content-type: application/json' \
-H "CONSISTENT-HASH: true" \
--data '{"jsonrpc":"2.0","method":"net_peerCount","params":[],"id":1}' 
```

{% endtab %}

{% tab title="Javascript" %}

````javascript
```javascript
const axios = require('axios');
//npm install axios if you don have the module installed`

let options = {
    url: "https://api.chainup.net/fantom/mainnet/<YOUR_API_KEY>",
    method: "post",
    headers:
    { 
     "content-type": "application/json", 
     "CONSISTENT-HASH": "true"
    },
    body: JSON.stringify({"jsonrpc":"2.0","method":"net_peerCount","params":[],"id":1})
};

axios(options)
.then(response => {
console.log('Post successful: response:', response.data);
})
.catch(error => {
console.error('An error has occurred:', error);
});
```
````

{% endtab %}

{% tab title="Python" %}

````python
```python
import requests
import json

headers = {"content-type": "application/json",
    "CONSISTENT-HASH": "true" } 
payload = json.dumps({
    "id": 1,
    "jsonrpc": "2.0",
    "method": "net_peerCount",
    "params": []
})
r = requests.post(url="https://api.chainup.net/fantom/mainnet/<YOUR_API_KEY>", headers=headers, data=payload)
if r.status_code == 200:
    print("Post successful: response: ", r.content)
else:
    print("An error has occurred: ", r.status_code)
```
````

{% endtab %}
{% endtabs %}


# Aptos

Welcome to the Aptos documentation! Learn how to interact with Aptos using ChainUp Cloud

In this section, you will be able to learn about what makes Aptos special and how you can leverage available tools to build amazing products!

You can then get started with the available RPC & REST APIs we support [ **via ChainUp Cloud**.](https://cloud.chainup.com)

Last but not least, if you are looking for guidelines or simply some inspiration, check out available tutorials in [**For Developers**](/introduction/for-developers/use-blockchain-api).

Be sure to check out the [**official Aptos documentation**](https://aptos.dev/).

🚀 Let's start building the decentralized web 🚀


# HTTP Methods

### Example HTTP Restful methods

{% tabs %}
{% tab title="HTTP Rest" %}

```
curl -i -X GET https://api.chainup.net/aptos/mainnet/<YOUR_API_KEY>/v1
```

{% endtab %}
{% endtabs %}


# Avalanche

Welcome to the Avalanche documentation! Learn how to interact with Avalanche using ChainUp Cloud

In this section, you will be able to learn about what makes Avalanche special and how you can leverage available tools to build amazing products!

You can then get started with the available RPC & REST APIs we support [ **via ChainUp Cloud**.](https://cloud.chainup.com)

Last but not least, if you are looking for guidelines or simply some inspiration, check out available tutorials in [**For Developers**](/introduction/for-developers/use-blockchain-api).

Be sure to check out the [**official Avalanche documentation**](https://docs.avax.network/).

🚀 Let's start building the decentralized web 🚀


# JSON-RPC methods

### Avalanche RPC

You can review the official Avalanche RPC documentation [**HERE**](https://docs.avax.network/apis/avalanchego/apis/c-chain)

### Example RPC

{% tabs %}
{% tab title="Curl" %}

```
curl https://api.chainup.net/avax/mainnet/<YOUR_API_KEY>/ext/bc/C/rpc  \
-X POST \
-H 'content-type: application/json' \
-H "CONSISTENT-HASH: true" \
--data '{"jsonrpc":"2.0","method":"eth_syncing","params":[],"id":32}'
```

{% endtab %}

{% tab title="Javascript" %}

````
```javascript
const axios = require('axios');
//npm install axios if you don have the module installed`

let options = {
    url: "https://api.chainup.net/avax/mainnet/<YOUR_API_KEY>/ext/bc/C/rpc",
    method: "post",
    headers:
    { 
     "content-type": "application/json" ,
     "CONSISTENT-HASH": "true" 
    },
    body: JSON.stringify({"jsonrpc":"2.0","method":"eth_syncing","params":[],"id":32})
};

axios(options)
.then(response => {
console.log('Post successful: response:', response.data);
})
.catch(error => {
console.error('An error has occurred:', error);
});
```
````

{% endtab %}

{% tab title="Python" %}

````python
```python
import requests
import json

headers = {"content-type": "application/json" ,
            "CONSISTENT-HASH": "true" } 
payload = json.dumps({
    "id": 32,
    "jsonrpc": "2.0",
    "method": "eth_syncing",
    "params": []
})
r = requests.post(url="https://api.chainup.net/avax/mainnet/<YOUR_API_KEY>/ext/bc/C/rpc", headers=headers, data=payload)
if r.status_code == 200:
    print("Post successful: response: ", r.content)
else:
    print("An error has occurred: ", r.status_code)
```
````

{% endtab %}
{% endtabs %}


# Cosmos

In this section, you will be able to learn about what makes Cosmos special and how you can leverage available tools to build amazing products!

You can then get started with the available RPC & REST APIs we support [**via ChainUp Cloud**.](https://cloud.chainup.com)

Last but not least, if you are looking for guidelines or simply some inspiration, check out available tutorials in [**For Developers**](/introduction/for-developers/use-blockchain-api).

Be sure to check out the[ **official Cosmos documentation.**](https://docs.cosmos.network/main/learn/advanced/grpc_rest)

🚀 Let's start building the decentralized web 🚀


# HTTP Methods

{% tabs %}
{% tab title="HTTP Rest" %}

```
 curl -i -X GET https://api.chainup.net/cosmos/mainnet/<YOUR_API_KEY>/blocks/latest
```

{% endtab %}
{% endtabs %}

### Example HTTP Rest

&#x20;


# Omni


# JSON-RPC methods

### Omni RPC

You can review the[ official Omni RPC documentation **HERE**](https://docs.omni.network/)**.**&#x20;

### Example RPC

{% tabs %}
{% tab title="Curl" %}

```sh
curl https://api.chainup.net/omni/mainnet/<YOUR_API_KEY> \
-X POST \
-H 'content-type: application/json' \
--data '{"jsonrpc":"2.0","method":"getpeerinfo","params":[],"id":32}'
```

{% endtab %}

{% tab title="Javascript" %}

````javascript
```javascript
const axios = require('axios');
//npm install axios if you don have the module installed`

let options = {
    url: "https://api.chainup.net/omni/mainnet/<YOUR_API_KEY>",
    method: "post",
    headers:
    { 
     "content-type": "application/json",
     "CONSISTENT-HASH": "true" 
    },
    body: JSON.stringify({"jsonrpc":"2.0","method":"getpeerinfo","params":[],"id":1})
};

axios(options)
.then(response => {
console.log('Post successful: response:', response.data);
})
.catch(error => {
console.error('An error has occurred:', error);
});

```
````

{% endtab %}

{% tab title="Python" %}

````python
```python
import requests
import json

headers = {"content-type": "application/json" ,
            "CONSISTENT-HASH": "true" } 
payload = json.dumps({
    "id": 1,
    "jsonrpc": "2.0",
    "method": "getpeerinfo",
    "params": []
})
r = requests.post(url="https://api.chainup.net/omni/mainnet/<YOUR_API_KEY>", headers=headers, data=payload)
if r.status_code == 200:
    print("Post successful: response: ", r.content)
else:
    print("An error has occurred: ", r.status_code)
```
````

{% endtab %}
{% endtabs %}


# Arbitrum

In this section, you will be able to learn about what makes Arbitrum special and how you can leverage available tools to build amazing products!

You can then get started with the available RPC & REST APIs we support [**via ChainUp Cloud**.](https://cloud.chainup.com)

Last but not least, if you are looking for guidelines or simply some inspiration, check out available tutorials in [**For Developers**](/introduction/for-developers/use-blockchain-api).

Be sure to check out the [**official Arbitrum documentation.**](https://docs.arbitrum.io/node-running/node-providers)

🚀 Let's start building the decentralized web 🚀


# JSON-RPC methods

### Arbitrum RPC

You can review the official[ Arbitrum API documentation **HERE.** ](https://arbiscan.io/apis#contracts)

### Example RPC

{% tabs %}
{% tab title="Curl" %}

```
curl https://api.chainup.net/arbitrum/mainnet/<YOUR_API_KEY> \
-X POST \
-H 'content-type: application/json' \
-H "CONSISTENT-HASH: true" \
--data '{"jsonrpc":"2.0","method":"eth_syncing","params":[],"id":1}' 
```

{% endtab %}

{% tab title="Javascript" %}

````
```javascript

const axios = require('axios');
//npm install axios if you don have the module installed`

let options = {
    // url: "https://api.chainup.net/arbitrum/mainnet/<YOUR_API_KEY>",
    url: "https://api.chainup.net/arbitrum/mainnet/dc59a7e90f05424a81d825d033d0f2de",
    method: "post",
    headers:
    { 
     "content-type": "application/json",
     "CONSISTENT-HASH": "true"
    },
    body: JSON.stringify({"jsonrpc":"2.0","method":"eth_syncing","params":[],"id":1})
};

axios(options)
.then(response => {
console.log('Post successful: response:', response.data);
})
.catch(error => {
console.error('An error has occurred:', error);
});
```
````

{% endtab %}

{% tab title="Python" %}

````python
```python
import requests
import json

headers = {"content-type": "application/json" ,
            "CONSISTENT-HASH": "true" } 
payload = json.dumps({
    "id": 1,
    "jsonrpc": "2.0",
    "method": "eth_syncing",
    "params": []
})
r = requests.post(url="https://api.chainup.net/arbitrum/mainnet/<YOUR_API_KEY>", headers=headers, data=payload)
if r.status_code == 200:
    print("Post successful: response: ", r.content)
else:
    print("An error has occurred: ", r.status_code)
```
````

{% endtab %}
{% endtabs %}


# Dogecoin

Welcome to the Dogecoin documentation! Learn how to interact with Dogecoin using ChainUp Cloud

In this section, you will be able to learn about what makes Dogecoin special and how you can leverage available tools to build amazing products!

You can then get started with the available RPC & REST APIs we support [**via ChainUp Cloud**](https://app.chainupcloud.com/login).

Last but not least, if you are looking for guidelines or simply some inspiration, check out available tutorials in [**For Developers**](/introduction/for-developers/use-blockchain-api).

Be sure to check out the [**official Dogecoin API documentation.**](https://docs.dogechain.dog/docs/get-started/json-rpc-commands)

🚀 Let's start building the decentralized web 🚀


# JSON-RPC methods

### **Dogecoin** RPC

You can review the official [**Dogecoin API documentation HERE**](https://docs.dogechain.dog/docs/get-started/json-rpc-commands)**.**&#x20;

### Example RPC

{% tabs %}
{% tab title="Curl" %}

<pre><code>curl https://api.chainup.net/dogecoin/mainnet/&#x3C;YOUR_API_KEY> \
-X POST \
<strong>-H 'content-type: application/json' \
</strong>-H "CONSISTENT-HASH: true" \
--data '{"jsonrpc":"2.0","method":"getpeerinfo","params":[],"id":32}'
</code></pre>

{% endtab %}

{% tab title="Javascript" %}

````javascript
```javascript
const axios = require('axios');
//npm install axios if you don have the module installed`

let options = {
url: "https://api.chainup.net/dogecoin/mainnet/<YOUR_API_KEY>",
method: "post",
headers:
{
"content-type": "application/json",
"CONSISTENT-HASH": "true"
},
body: JSON.stringify({"jsonrpc":"2.0","method":"getpeerinfo","params":[],"id":1})
};

request(options, (error, response, body) => {
if (error) {
console.error('An error has occurred: ', error);
} else {
console.log('Post successful: response: ', body);
}
});
```
````

{% endtab %}

{% tab title="Python" %}

````python
```python
import requests
import json

headers = {"content-type": "application/json",
            "CONSISTENT-HASH": "true" } 
payload = json.dumps({
"id": 1,
"jsonrpc": "2.0",
"method": "getpeerinfo",
"params": []
})
r = requests.post(url="https://api.chainup.net/dogecoin/mainnet/<YOUR_API_KEY>", headers=headers, data=payload)
if r.status_code == 200:
print("Post successful: response: ", r.content)
else:
print("An error has occurred: ", r.status_code)
```
````

{% endtab %}
{% endtabs %}


# Optimism

In this section, you will be able to learn about what makes Arbitrum special and how you can leverage available tools to build amazing products!

You can then get started with the available RPC & REST APIs we support [**via ChainUp Cloud**.](https://cloud.chainup.com)

Last but not least, if you are looking for guidelines or simply some inspiration, check out available tutorials in [**For Developers**](/introduction/for-developers/use-blockchain-api).

Be sure to check out the[ **official Optimism documentation**](https://docs.optimism.io/builders/node-operators/json-rpc)**.**

🚀 Let's start building the decentralized web 🚀


# JSON-RPC methods

The standard Ethereum methods documented here are supported by Chainup Cloud on the Optimism network.

### **Optimism** RPC

You can review custom methods specific to Optimism can be found in the [**official Optimism API documentation**](https://docs.optimism.io/builders/node-operators/json-rpc)**.**&#x20;

{% hint style="info" %}
Please note that the Optimism Bedrock migration introduces support for various JSON-RPC methods. For detailed information, refer to the [**official Optimism API documentation**](https://docs.optimism.io/builders/node-operators/json-rpc).
{% endhint %}

### Example RPC

{% tabs %}
{% tab title="Curl" %}

<pre><code>curl https://api.chainup.net/optimism/mainnet/&#x3C;YOUR_API_KEY> \
-X POST \
<strong>-H 'content-type: application/json' \
</strong>-H "CONSISTENT-HASH: true" \
--data '{"jsonrpc":"2.0","method":"getblockchaininfo","params":[],"id":1}' 
</code></pre>

{% endtab %}

{% tab title="Javascript" %}

````javascript
```javascript
const axios = require('axios');
//npm install axios if you don have the module installed`

let options = {
url: "https://api.chainup.net/optimism/mainnet/<YOUR_API_KEY>",
method: "post",
headers:
{
"content-type": "application/json",
"CONSISTENT-HASH": "true"
},
body: JSON.stringify({"jsonrpc":"2.0","method":"getblockchaininfo","params":[],"id":1})
};

request(options, (error, response, body) => {
if (error) {
console.error('An error has occurred: ', error);
} else {
console.log('Post successful: response: ', body);
}
});


```
````

{% endtab %}

{% tab title="Python" %}

```python
import requests
import json

headers = {"content-type": "application/json",
            "CONSISTENT-HASH": "true" } 
payload = json.dumps({
"id": 1,
"jsonrpc": "2.0",
"method": "getblockchaininfo",
"params": []
})
r = requests.post(url="https://api.chainup.net/optimism/mainnet/<YOUR_API_KEY>", headers=headers, data=payload)
if r.status_code == 200:
print("Post successful: response: ", r.content)
else:
print("An error has occurred: ", r.status_code)
```

{% endtab %}
{% endtabs %}


# Dash

In this section, you will be able to learn about what makes Litecoin special and how you can leverage available tools to build amazing products!

You can then get started with the available RPC & REST APIs we support [ **via ChainUp Cloud**.](https://cloud.chainup.com)

Last but not least, if you are looking for guidelines or simply some inspiration, check out available tutorials in [**For Developers**](/introduction/for-developers/use-blockchain-api).

Be sure to check out the **official Dash documentation**.

🚀 Let's start building the decentralized web 🚀


# JSON-RPC methods

### **Zcash** RPC

You can review the official **Zcash RPC documentation HERE**

### Example RPC

{% tabs %}
{% tab title="Curl" %}

<pre><code><strong>curl https://api.chainup.net/zcash/mainnet/&#x3C;YOUR_API_KEY> \
</strong>-X POST \
-H 'content-type: application/json' \
-H "CONSISTENT-HASH: true" \
---data '{"jsonrpc":"2.0","method":"network_info","params":[],"id":1}'  
</code></pre>

{% endtab %}

{% tab title="Javascript" %}

<pre class="language-javascript"><code class="lang-javascript"><strong>const axios = require('axios');
</strong>//npm install axios if you don have the module installed`
let options = {
    url: "https://api.chainup.net/zcash/mainnet/&#x3C;YOUR_API_KEY>",
    method: "post",
    headers:
    { 
     "content-type": "application/json"
    },
    body: JSON.stringify({"jsonrpc":"2.0","method":"network_info","params":[],"id":1})
};

axios(options)
.then(response => {
console.log('Post successful: response:', response.data);
})
.catch(error => {
console.error('An error has occurred:', error);
});
</code></pre>

{% endtab %}

{% tab title="Python" %}

```python
import requests
import json

headers = {"content-type": "application/json",
            "CONSISTENT-HASH": "true" }
payload = json.dumps({
    "id": 1,
    "jsonrpc": "2.0",
    "method": "network_info",
    "params": []
})
r = requests.post(url="https://api.chainup.net/zcash/mainnet/<YOUR_API_KEY>", headers=headers, data=payload)
if r.status_code == 200:
    print("Post successful: response: ", r.content)
else:
    print("An error has occurred: ", r.status_code)
```

{% endtab %}
{% endtabs %}


# Zcash

In this section, you will be able to learn about what makes Litecoin special and how you can leverage available tools to build amazing products!

You can then get started with the available RPC & REST APIs we support [ **via ChainUp Cloud**.](https://cloud.chainup.com)

Last but not least, if you are looking for guidelines or simply some inspiration, check out available tutorials in [**For Developers**](/introduction/for-developers/use-blockchain-api).

Be sure to check out the **official Zcash documentation**.

🚀 Let's start building the decentralized web 🚀


# JSON-RPC methods

### Zcash RPC

You can review the official[ **Zcash RPC documentation HERE**](https://zcash.github.io/rpc/)

### Example RPC

{% tabs %}
{% tab title="Curl" %}

<pre><code><strong>curl https://api.chainup.net/zcash/mainnet/&#x3C;YOUR_API_KEY> \
</strong>-X POST \
-H 'content-type: application/json' \
-H "CONSISTENT-HASH: true" \
---data '{"jsonrpc":"2.0","method":"getblock","params":[],"id":1}'  
</code></pre>

{% endtab %}

{% tab title="Javascript" %}

<pre class="language-javascript"><code class="lang-javascript"><strong>const axios = require('axios');
</strong>//npm install axios if you don have the module installed`
let options = {
    url: "https://api.chainup.net/zcash/mainnet/&#x3C;YOUR_API_KEY>",
    method: "post",
    headers:
    { 
     "content-type": "application/json"
    },
    body: JSON.stringify({"jsonrpc":"2.0","method":"getblock","params":[],"id":1})
};

axios(options)
.then(response => {
console.log('Post successful: response:', response.data);
})
.catch(error => {
console.error('An error has occurred:', error);
});
</code></pre>

{% endtab %}

{% tab title="Python" %}

```python
import requests
import json

headers = {"content-type": "application/json",
            "CONSISTENT-HASH": "true" }
payload = json.dumps({
    "id": 1,
    "jsonrpc": "2.0",
    "method": "getblock",
    "params": []
})
r = requests.post(url="https://api.chainup.net/zcash/mainnet/<YOUR_API_KEY>", headers=headers, data=payload)
if r.status_code == 200:
    print("Post successful: response: ", r.content)
else:
    print("An error has occurred: ", r.status_code)
```

{% endtab %}
{% endtabs %}


# XRP


# JSON-RPC methods

### XRP RPC

You can review the official [**XRP RPC documentation HERE**](https://xrpl.org/docs)

### Example RPC

{% tabs %}
{% tab title="Curl" %}

<pre><code><strong>curl https://api.chainup.net/xrp/mainnet/&#x3C;YOUR_API_KEY> \
</strong>-X POST \
-H 'content-type: application/json' \
-H "CONSISTENT-HASH: true" \
---data '{"jsonrpc":"2.0","method":"getblock","params":[],"id":1}'  
</code></pre>

{% endtab %}

{% tab title="Javascript" %}

<pre class="language-javascript"><code class="lang-javascript"><strong>const axios = require('axios');
</strong>//npm install axios if you don have the module installed`
let options = {
    url: "https://api.chainup.net/xrp/mainnet/&#x3C;YOUR_API_KEY>",
    method: "post",
    headers:
    { 
     "content-type": "application/json"
    },
    body: JSON.stringify({"jsonrpc":"2.0","method":"getblock","params":[],"id":1})
};

axios(options)
.then(response => {
console.log('Post successful: response:', response.data);
})
.catch(error => {
console.error('An error has occurred:', error);
});
</code></pre>

{% endtab %}

{% tab title="Python" %}

```python
import requests
import json

headers = {"content-type": "application/json",
            "CONSISTENT-HASH": "true" }
payload = json.dumps({
    "id": 1,
    "jsonrpc": "2.0",
    "method": "getblock",
    "params": []
})
r = requests.post(url="https://api.chainup.net/xrp/mainnet/<YOUR_API_KEY>", headers=headers, data=payload)
if r.status_code == 200:
    print("Post successful: response: ", r.content)
else:
    print("An error has occurred: ", r.status_code)
```

{% endtab %}
{% endtabs %}


# Base

In this section, you will be able to learn about what makes Litecoin special and how you can leverage available tools to build amazing products!

You can then get started with the available RPC & REST APIs we support [ **via ChainUp Cloud**.](https://cloud.chainup.com)

Last but not least, if you are looking for guidelines or simply some inspiration, check out available tutorials in [**For Developers**](/introduction/for-developers/use-blockchain-api).

Be sure to check out the[ **official Base documentation**.](https://docs.base.org/docs/network-information/#base-testnet-sepolia)

🚀 Let's start building the decentralized web 🚀


# JSON-RPC methods

### Base RPC

You can review the official [**Base RPC documentation HERE**](https://docs.base.org/docs/network-information/#base-testnet-sepolia)

### Example RPC

{% tabs %}
{% tab title="Curl" %}

<pre><code><strong>curl https://api.chainup.net/base/mainnet/&#x3C;YOUR_API_KEY> \
</strong>-X POST \
-H 'content-type: application/json' \
-H "CONSISTENT-HASH: true" \
---data '{"jsonrpc":"2.0","method":"getblock","params":[],"id":1}'  
</code></pre>

{% endtab %}

{% tab title="Javascript" %}

<pre class="language-javascript"><code class="lang-javascript"><strong>const axios = require('axios');
</strong>//npm install axios if you don have the module installed`
let options = {
    url: "https://api.chainup.net/base/mainnet/&#x3C;YOUR_API_KEY>",
    method: "post",
    headers:
    { 
     "content-type": "application/json"
    },
    body: JSON.stringify({"jsonrpc":"2.0","method":"getblock","params":[],"id":1})
};

axios(options)
.then(response => {
console.log('Post successful: response:', response.data);
})
.catch(error => {
console.error('An error has occurred:', error);
});
</code></pre>

{% endtab %}

{% tab title="Python" %}

```python
import requests
import json

headers = {"content-type": "application/json",
            "CONSISTENT-HASH": "true" }
payload = json.dumps({
    "id": 1,
    "jsonrpc": "2.0",
    "method": "getblock",
    "params": []
})
r = requests.post(url="https://api.chainup.net/base/mainnet/<YOUR_API_KEY>", headers=headers, data=payload)
if r.status_code == 200:
    print("Post successful: response: ", r.content)
else:
    print("An error has occurred: ", r.status_code)
```

{% endtab %}
{% endtabs %}




---

[Next Page](/llms-full.txt/1)

