Joseon docs
AppExplorerLaunch app

Start here

Quickstart

Add GIWA Sepolia, get test ETH, launch a token in five minutes.

Before you start#

You need a browser wallet that lets you add a custom network — MetaMask, Rabby, and OKX all work. Joseon.fun connects to injected wallets directly and does not use WalletConnect, so no QR flow and no project allowlist.

1. Add GIWA Sepolia#

The app prompts you to switch networks on connect, so the fastest path is to just open joseon.fun and approve the prompt. To add it by hand:

FieldValue
Network nameGIWA Sepolia
Chain ID91342
RPC URLhttps://sepolia-rpc.giwa.io
Currency symbolETH
Block explorerhttps://sepolia-explorer.giwa.io

Or let the wallet add it programmatically:

await window.ethereum.request({
  method: 'wallet_addEthereumChain',
  params: [{
    chainId: '0x16CCE', // 91342
    chainName: 'GIWA Sepolia',
    nativeCurrency: { name: 'Ether', symbol: 'ETH', decimals: 18 },
    rpcUrls: ['https://sepolia-rpc.giwa.io'],
    blockExplorerUrls: ['https://sepolia-explorer.giwa.io'],
  }],
});

2. Get test ETH#

GIWA Sepolia ETH comes from Ethereum Sepolia across the standard OP Stack bridge. Get Sepolia ETH from any faucet, then bridge it to GIWA Sepolia. Budget from the fee table below.

What you are doingRoughly
Creating a token0.0000023 ETH of gas
A curve buy or sellwell under 0.00001 ETH of gas
Taking a launch all the way to graduation~3.68 ETH, including the 2% buy fee

Creating and trading costs almost nothing. Only graduating a curve on your own needs a meaningful balance, because you are supplying the whole 3.6 ETH the pool gets seeded with.

3. Launch a token#

On joseon.fun, hit Create and fill in:

  1. Name and symbol — written on-chain, permanent.
  2. Image and description — stored off-chain by the indexer and reachable through the token's ERC-1046 tokenURI(). Optionally pinned to IPFS.
  3. Creator fee recipient — yourself, or split across wallets. On-chain accrual always targets a single address; multi-wallet splits are recorded as metadata.
  4. Optional first buy — runs inside the same transaction as creation, so you are first in line on your own curve rather than racing the mempool.

Approving the transaction deploys two contracts: a JoseonTokenV2 and its BondingCurvePool. The token appears in the feed as soon as the indexer catches the TokenCreated event, which is normally within a block or two.

4. Trade the curve#

Buys take ETH and quote tokens out; sells take tokens and quote ETH out. Both charge 2%, and both preview the exact numbers before you sign — including willGraduate, which tells you whether your buy is the one that ends the curve.

If your buy is bigger than the curve has left to sell, the contract uses only what it needs and refunds the rest in the same transaction. You cannot overpay past graduation.

5. What graduation looks like#

The final buy triggers everything in one transaction: the pair is created, 3.6 WETH and 200M tokens are supplied, the initial LP tokens are minted straight into the permanent locker, and the launch flips to DEX_ACTIVE.

Afterwards the token page keeps working the same way — the UI just routes through JoseonSwapRouter instead of the curve, and the price chart stitches curve trades and DEX swaps into one continuous series.

Doing it without the UI#

Everything above is a contract call. Contract calls has copy-paste viem snippets for create, buy, sell, swap, and fee claims, and network lists the addresses to point them at.