# Elysium API Quickstart

> How to get started building on Elysium using Alchemy

> For the complete documentation index, see [llms.txt](/docs/llms.txt).

<Tip title="Don't have an API key?" icon="star">
  Build faster with production-ready APIs, smart wallets and rollup infrastructure across 70+ chains. Create your free Alchemy API key and{" "}
  <a href="https://dashboard.alchemy.com/signup">get started today</a>.
</Tip>

Elysium is an Arbitrum Orbit chain from Kinetiq that settles to HyperEVM. It runs the standard EVM, so existing Solidity contracts and Ethereum tooling work against Elysium without modification. The main differences from Ethereum mainnet are the chain configuration (chain ID `99801` on testnet), HYPE as the native gas token, and sub-second block times.

The Elysium API is a collection of JSON-RPC methods that lets you interact with the Elysium network. If you're familiar with Ethereum's JSON-RPC API, working with Elysium will feel immediately familiar.

## Send your first request on Alchemy

Elysium is not yet in viem's bundled chain list, so you can define it inline with `defineChain`. Let's install [`viem`](https://www.npmjs.com/package/viem) and create a client connected to Alchemy.

<CodeGroup>
  ```text npm
  npm install --save viem
  ```

  ```text yarn
  yarn add viem
  ```
</CodeGroup>

## Create a client connected to Alchemy

<CodeGroup>
```js
import { createPublicClient, defineChain, http } from "viem";

export const elysiumTestnet = defineChain({
  id: 99801,
  name: "Elysium Testnet",
  testnet: true,
  nativeCurrency: { decimals: 18, name: "HYPE", symbol: "HYPE" },
  rpcUrls: {
    default: {
      http: ["https://elysium-testnet.g.alchemy.com/v2/YOUR_ALCHEMY_API_KEY"],
    },
  },
});

const client = createPublicClient({
  chain: elysiumTestnet,
  transport: http(),
});
```
</CodeGroup>

Now that you've created a client connected to Alchemy, you can continue with some basics:

## Get the latest block number

<CodeGroup>
```js
const blockNumber = await client.getBlockNumber();
console.log("Current block number:", blockNumber);
```
</CodeGroup>

## Get an address balance

<CodeGroup>
```js
const balance = await client.getBalance({ address: "0xb9D83D298D46C4dd73618F19a2A40084Ce36476a" });
console.log("Balance (HYPE):", Number(balance) / 1e18);
```
</CodeGroup>

## Read block data

<CodeGroup>
```js
const block = await client.getBlock({
  blockNumber: blockNumber, // from previous example
});
console.log(block);
```
</CodeGroup>

## Fetch a transaction by hash

<CodeGroup>
```js
const tx = await client.getTransaction({ hash: "0xYOUR_TX_HASH" });
console.log(tx);
```
</CodeGroup>

## Fetch a transaction receipt

<CodeGroup>
```js
const receipt = await client.getTransactionReceipt({
  hash: "0xYOUR_TX_HASH"
});
console.log(receipt);
```
</CodeGroup>

# Elysium APIs

For the full list of Elysium APIs, see the [Elysium API Endpoints](/docs/chains#elysium-apis).