Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
72 changes: 72 additions & 0 deletions content/api-reference/giwa/giwa-api-faq.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,72 @@
---
title: Giwa API FAQ
description: Frequently asked questions about the Giwa API
subtitle: Frequently asked questions about the Giwa API
slug: reference/giwa-api-faq
---

## What is Giwa?

[Giwa](https://giwa.io/) is an Ethereum Layer 2 optimistic rollup built on the OP Stack by Dunamu, the parent company of Upbit, South Korea's largest cryptocurrency exchange. The name "Giwa" is taken from the traditional Korean clay roof tile, and stands for Global Infrastructure for Web3 Access. Giwa targets one-second block times, full EVM compatibility, and inherits Ethereum's security through data availability on L1.

## What is the Giwa API?

The Giwa API lets your applications connect to a Giwa node on the network. You can read onchain data, submit transactions, and interact with smart contracts using its JSON-RPC endpoints. The API follows the JSON-RPC standard, a stateless, lightweight, remote procedure call (RPC) protocol encoded in JSON.

## How can I get started using the Giwa API?

Explained in the [Giwa API Quickstart Guide](/docs/reference/giwa-api-quickstart).

## Is Giwa EVM compatible?

Yes. Giwa is built on the OP Stack, which means it supports any Ethereum Virtual Machine (EVM) codebase. You can deploy existing Solidity contracts, use the same tools you use for Ethereum, and bridge assets from Ethereum L1 or other interoperable chains to Giwa with minimal changes.

## What is a Giwa API key?

When accessing the Giwa network through a node provider like Alchemy, you use an API key to send transactions and retrieve data from the network.

For the best development experience, we recommend that you [sign up for a free API key](https://dashboard.alchemy.com/signup).

## Which libraries support Giwa?

Common Ethereum libraries such as [viem](https://viem.sh/), [ethers.js](https://docs.ethers.org/), and [web3.js](https://web3js.readthedocs.io/) all support Giwa given its EVM nature. `viem` exports both `giwaSepolia` and `giwaSepoliaPreconf` chain definitions out of the box.

## What programming languages work with Giwa?

Any language that works with Ethereum works with Giwa. Solidity is the primary choice for smart contract development. JavaScript and TypeScript are the most common languages for offchain interactions, while Python, Go, and Rust libraries also work.

## What does Giwa use for gas?

Giwa uses ETH as its native gas token, the same as Ethereum mainnet. Because Giwa is an OP Stack rollup, transaction fees are split into an L2 execution fee and an L1 security fee that covers the cost of publishing transaction data back to Ethereum.

## What is the block time on Giwa?

Giwa targets approximately one-second block times, giving applications near-real-time transaction confirmations while still inheriting Ethereum's security guarantees.

## Which networks does Alchemy support for Giwa?

Alchemy currently supports the following Giwa network:

* **Giwa Sepolia** (chain ID `91342`): `https://giwa-sepolia.g.alchemy.com/v2/{apiKey}`

Giwa mainnet has not yet launched. When it does, we will add mainnet endpoint support here.

## What testnet should I use for Giwa?

Use **Giwa Sepolia** (chain ID `91342`). It is a Layer 2 network connected to Ethereum Sepolia and lets you deploy smart contracts, execute transactions, and rehearse bridging flows at no cost. You can request testnet ETH from public Giwa Sepolia faucets.

## What methods does Alchemy support for the Giwa API?

You can find the list of all the methods Alchemy supports for the Giwa API on the [Giwa API Endpoints](/docs/chains#giwa-apis) page.

## How can I bridge assets between Ethereum and Giwa?

Giwa uses the standard OP Stack bridge to move assets between Ethereum and Giwa. Deposits from L1 to L2 typically confirm within a few minutes; withdrawals from L2 back to L1 include the standard OP Stack challenge period. See the [Giwa documentation](https://docs.giwa.io/) for the current bridge address and step-by-step instructions.

## Which block explorer should I use for Giwa?

Use [Giwa Sepolia Explorer](https://sepolia-explorer.giwa.io/) to look up transactions, addresses, tokens, and contracts on Giwa Sepolia.

## My question isn't here, where can I get help?

If you have any questions or feedback, contact us at support@alchemy.com or open a ticket in the Alchemy Dashboard.
36 changes: 36 additions & 0 deletions content/api-reference/giwa/giwa-api-overview.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
---
title: Giwa API Overview
description: Overview of available Giwa API methods
subtitle: Comprehensive list of Giwa JSON-RPC methods
slug: docs/giwa/giwa-api-overview
---

## Giwa APIs

馃摍 Get started with our [Giwa API Quickstart Guide](/docs/reference/giwa-api-quickstart).
Comment thread
dslovinsky marked this conversation as resolved.

| | |
| ----------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------- |
| [`eth_blockNumber`](/docs/chains/giwa/giwa-api-endpoints/eth-block-number) | [`eth_call`](/docs/chains/giwa/giwa-api-endpoints/eth-call) |
| [`eth_chainId`](/docs/chains/giwa/giwa-api-endpoints/eth-chain-id) | [`eth_estimateGas`](/docs/chains/giwa/giwa-api-endpoints/eth-estimate-gas) |
| [`eth_gasPrice`](/docs/chains/giwa/giwa-api-endpoints/eth-gas-price) | [`eth_getAccount`](/docs/chains/giwa/giwa-api-endpoints/eth-get-account) |
| [`eth_getBalance`](/docs/chains/giwa/giwa-api-endpoints/eth-get-balance) | [`eth_getBlockByHash`](/docs/chains/giwa/giwa-api-endpoints/eth-get-block-by-hash) |
| [`eth_getBlockByNumber`](/docs/chains/giwa/giwa-api-endpoints/eth-get-block-by-number) | [`eth_getBlockTransactionCountByHash`](/docs/chains/giwa/giwa-api-endpoints/eth-get-block-transaction-count-by-hash) |
| [`eth_getBlockTransactionCountByNumber`](/docs/chains/giwa/giwa-api-endpoints/eth-get-block-transaction-count-by-number) | [`eth_getCode`](/docs/chains/giwa/giwa-api-endpoints/eth-get-code) |
| [`eth_getFilterChanges`](/docs/chains/giwa/giwa-api-endpoints/eth-get-filter-changes) | [`eth_getFilterLogs`](/docs/chains/giwa/giwa-api-endpoints/eth-get-filter-logs) |
| [`eth_getLogs`](/docs/chains/giwa/giwa-api-endpoints/eth-get-logs) | [`eth_getRawTransactionByHash`](/docs/chains/giwa/giwa-api-endpoints/eth-get-raw-transaction-by-hash) |
| [`eth_getStorageAt`](/docs/chains/giwa/giwa-api-endpoints/eth-get-storage-at) | [`eth_getTransactionByBlockHashAndIndex`](/docs/chains/giwa/giwa-api-endpoints/eth-get-transaction-by-block-hash-and-index) |
| [`eth_getTransactionByBlockNumberAndIndex`](/docs/chains/giwa/giwa-api-endpoints/eth-get-transaction-by-block-number-and-index) | [`eth_getTransactionByHash`](/docs/chains/giwa/giwa-api-endpoints/eth-get-transaction-by-hash) |
| [`eth_getTransactionCount`](/docs/chains/giwa/giwa-api-endpoints/eth-get-transaction-count) | [`eth_getTransactionReceipt`](/docs/chains/giwa/giwa-api-endpoints/eth-get-transaction-receipt) |
| [`eth_newBlockFilter`](/docs/chains/giwa/giwa-api-endpoints/eth-new-block-filter) | [`eth_newFilter`](/docs/chains/giwa/giwa-api-endpoints/eth-new-filter) |
| [`eth_sendRawTransaction`](/docs/chains/giwa/giwa-api-endpoints/eth-send-raw-transaction) | [`eth_submitWork`](/docs/chains/giwa/giwa-api-endpoints/eth-submit-work) |
| [`eth_subscribe`](/docs/chains/giwa/giwa-api-endpoints/eth-subscribe) | [`eth_uninstallFilter`](/docs/chains/giwa/giwa-api-endpoints/eth-uninstall-filter) |
| [`eth_unsubscribe`](/docs/chains/giwa/giwa-api-endpoints/eth-unsubscribe) | [`net_version`](/docs/chains/giwa/giwa-api-endpoints/net-version) |
| [`web3_clientVersion`](/docs/chains/giwa/giwa-api-endpoints/web-3-client-version) | [`web3_sha3`](/docs/chains/giwa/giwa-api-endpoints/web-3-sha-3) |

## Related APIs

The following Alchemy APIs are also supported on Giwa:

* [Debug API](/docs/reference/debug-api-quickstart)
* [Trace API](/docs/reference/trace-api-quickstart)
98 changes: 98 additions & 0 deletions content/api-reference/giwa/giwa-api-quickstart.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,98 @@
---
title: Giwa API Quickstart
description: How to get started building on Giwa using Alchemy
subtitle: How to get started building on Giwa using Alchemy
slug: reference/giwa-api-quickstart
---

<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>

Giwa is an Ethereum Layer 2 optimistic rollup built on the OP Stack by Dunamu, the parent company of South Korean crypto exchange Upbit. Giwa targets one-second block times and full EVM compatibility, so existing Solidity contracts and Ethereum tooling work out of the box.

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

## Send your first request on Alchemy

Let's use the [`viem`](https://www.npmjs.com/package/viem) package to create a Giwa client connected to Alchemy and fetch the latest block number.

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

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

## Create a client connected to Alchemy

<CodeGroup>
```js
import { createPublicClient, http } from "viem";
import { giwaSepolia } from "viem/chains";

const client = createPublicClient({
chain: giwaSepolia,
transport: http("https://giwa-sepolia.g.alchemy.com/v2/YOUR_ALCHEMY_API_KEY"),
});
```
</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: "0xab5801a7d398351b8be11c439e05c5b3259aec9b" });
console.log("Balance (ETH):", 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>

# Giwa APIs

For the full list of Giwa APIs, see the [Giwa API Endpoints](/docs/chains#giwa-apis).
14 changes: 7 additions & 7 deletions content/api-reference/solana/solana-api-overview.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -35,13 +35,13 @@ slug: docs/solana/solana-api-overview
| [`getSupply`](/docs/chains/solana/solana-api-endpoints/get-supply) | [`getTokenAccountBalance`](/docs/chains/solana/solana-api-endpoints/get-token-account-balance) |
| [`getTokenAccountsByDelegate`](/docs/chains/solana/solana-api-endpoints/get-token-accounts-by-delegate) | [`getTokenAccountsByOwner`](/docs/chains/solana/solana-api-endpoints/get-token-accounts-by-owner) |
| [`getTokenAccountsByOwnerAtSlot`](/docs/chains/solana/solana-api-endpoints/get-token-accounts-by-owner-at-slot) | [`getTokenAccountsByOwnerV2`](/docs/chains/solana/solana-api-endpoints/get-token-accounts-by-owner-v-2) |
| [`getTokenHoldersAtSlot`](/docs/chains/solana/solana-api-endpoints/get-token-holders-at-slot) | [`getTokenLargestAccounts`](/docs/chains/solana/solana-api-endpoints/get-token-largest-accounts) |
| [`getTokenSupply`](/docs/chains/solana/solana-api-endpoints/get-token-supply) | [`getTransaction`](/docs/chains/solana/solana-api-endpoints/get-transaction) |
| [`getTransactionCount`](/docs/chains/solana/solana-api-endpoints/get-transaction-count) | [`getTransactionsForAddress`](/docs/chains/solana/solana-api-endpoints/get-transactions-for-address) |
| [`getVersion`](/docs/chains/solana/solana-api-endpoints/get-version) | [`getVoteAccounts`](/docs/chains/solana/solana-api-endpoints/get-vote-accounts) |
| [`isBlockhashValid`](/docs/chains/solana/solana-api-endpoints/is-blockhash-valid) | [`minimumLedgerSlot`](/docs/chains/solana/solana-api-endpoints/minimum-ledger-slot) |
| [`requestAirdrop`](/docs/chains/solana/solana-api-endpoints/request-airdrop) | [`sendTransaction`](/docs/chains/solana/solana-api-endpoints/send-transaction) |
| [`simulateBundle`](/docs/chains/solana/solana-api-endpoints/simulate-bundle) | [`simulateTransaction`](/docs/chains/solana/solana-api-endpoints/simulate-transaction) |
| [`getTokenHoldersAtSlot`](/docs/chains/solana/solana-api-endpoints/get-token-holders-at-slot) | [`getTokenLargestAccounts`](/docs/chains/solana/solana-api-endpoints/get-token-largest-accounts) |
| [`getTokenSupply`](/docs/chains/solana/solana-api-endpoints/get-token-supply) | [`getTransaction`](/docs/chains/solana/solana-api-endpoints/get-transaction) |
| [`getTransactionCount`](/docs/chains/solana/solana-api-endpoints/get-transaction-count) | [`getTransactionsForAddress`](/docs/chains/solana/solana-api-endpoints/get-transactions-for-address) |
| [`getVersion`](/docs/chains/solana/solana-api-endpoints/get-version) | [`getVoteAccounts`](/docs/chains/solana/solana-api-endpoints/get-vote-accounts) |
| [`isBlockhashValid`](/docs/chains/solana/solana-api-endpoints/is-blockhash-valid) | [`minimumLedgerSlot`](/docs/chains/solana/solana-api-endpoints/minimum-ledger-slot) |
| [`requestAirdrop`](/docs/chains/solana/solana-api-endpoints/request-airdrop) | [`sendTransaction`](/docs/chains/solana/solana-api-endpoints/send-transaction) |
| [`simulateBundle`](/docs/chains/solana/solana-api-endpoints/simulate-bundle) | [`simulateTransaction`](/docs/chains/solana/solana-api-endpoints/simulate-transaction) |

## Related APIs

Expand Down
13 changes: 13 additions & 0 deletions content/docs.yml
Original file line number Diff line number Diff line change
Expand Up @@ -1401,6 +1401,19 @@ navigation:
path: api-reference/boba/boba-api-faq.mdx
slug: boba

- section: Giwa
contents:
- page: Quickstart
path: api-reference/giwa/giwa-api-quickstart.mdx
- page: Giwa API Overview
path: api-reference/giwa/giwa-api-overview.mdx
- api: Giwa API Endpoints
api-name: giwa
slug: giwa-api-endpoints
- page: FAQ
path: api-reference/giwa/giwa-api-faq.mdx
slug: giwa

- tab: data
layout:
- section: Introduction
Expand Down
52 changes: 52 additions & 0 deletions src/openrpc/chains/giwa/giwa.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
# yaml-language-server: $schema=https://meta.open-rpc.org/

$schema: https://meta.open-rpc.org/
openrpc: 1.2.4
info:
title: Alchemy Giwa JSON-RPC Specification
description: A specification of the standard JSON-RPC methods for Giwa.
version: 0.0.0
servers:
- url: https://giwa-sepolia.g.alchemy.com/v2
name: Giwa Sepolia
methods:
- $ref: ../_components/evm/methods.yaml#/components/methods/eth_blockNumber
- $ref: ../_components/evm/methods.yaml#/components/methods/eth_call
- $ref: ../_components/evm/methods.yaml#/components/methods/eth_chainId
- $ref: ../_components/evm/methods.yaml#/components/methods/eth_estimateGas
- $ref: ../_components/evm/methods.yaml#/components/methods/eth_gasPrice
- $ref: ../_components/evm/methods.yaml#/components/methods/eth_getAccount
- $ref: ../_components/evm/methods.yaml#/components/methods/eth_getBalance
- $ref: ../_components/evm/methods.yaml#/components/methods/eth_getBlockByHash
- $ref: ../_components/evm/methods.yaml#/components/methods/eth_getBlockByNumber
- $ref: >-
../_components/evm/methods.yaml#/components/methods/eth_getBlockTransactionCountByHash
- $ref: >-
../_components/evm/methods.yaml#/components/methods/eth_getBlockTransactionCountByNumber
- $ref: ../_components/evm/methods.yaml#/components/methods/eth_getCode
- $ref: ../_components/evm/methods.yaml#/components/methods/eth_getFilterChanges
- $ref: ../_components/evm/methods.yaml#/components/methods/eth_getFilterLogs
- $ref: ../_components/evm/methods.yaml#/components/methods/eth_getLogs
- $ref: >-
../_components/evm/methods.yaml#/components/methods/eth_getRawTransactionByHash
- $ref: ../_components/evm/methods.yaml#/components/methods/eth_getStorageAt
- $ref: >-
../_components/evm/methods.yaml#/components/methods/eth_getTransactionByBlockHashAndIndex
- $ref: >-
../_components/evm/methods.yaml#/components/methods/eth_getTransactionByBlockNumberAndIndex
- $ref: >-
../_components/evm/methods.yaml#/components/methods/eth_getTransactionByHash
- $ref: >-
../_components/evm/methods.yaml#/components/methods/eth_getTransactionCount
- $ref: >-
../_components/evm/methods.yaml#/components/methods/eth_getTransactionReceipt
- $ref: ../_components/evm/methods.yaml#/components/methods/eth_newBlockFilter
- $ref: ../_components/evm/methods.yaml#/components/methods/eth_newFilter
- $ref: ../_components/evm/methods.yaml#/components/methods/eth_sendRawTransaction
- $ref: ../_components/evm/methods.yaml#/components/methods/eth_submitWork
- $ref: ../_components/evm/methods.yaml#/components/methods/eth_subscribe
- $ref: ../_components/evm/methods.yaml#/components/methods/eth_uninstallFilter
- $ref: ../_components/evm/methods.yaml#/components/methods/eth_unsubscribe
- $ref: ../_components/evm/methods.yaml#/components/methods/net_version
- $ref: ../_components/evm/methods.yaml#/components/methods/web3_clientVersion
- $ref: ../_components/evm/methods.yaml#/components/methods/web3_sha3
2 changes: 2 additions & 0 deletions src/openrpc/chains/solana/solana.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -71,6 +71,8 @@ methods:
../_components/solana/methods.yaml#/components/methods/getTokenAccountsByDelegate
- $ref: >-
../_components/solana/methods.yaml#/components/methods/getTokenAccountsByOwner
- $ref: >-
../_components/solana/methods.yaml#/components/methods/getTokenHoldersAtSlot
Comment thread
dslovinsky marked this conversation as resolved.
- $ref: >-
../_components/solana/methods.yaml#/components/methods/getTokenLargestAccounts
- $ref: ../_components/solana/methods.yaml#/components/methods/getTokenSupply
Expand Down
Loading