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
5 changes: 3 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -34,8 +34,9 @@
no transfer function. Proven with an adversarial fork suite against the live deployment.
- **Three chains, one set of rules.** Base, Robinhood Chain and Arc (Circle's L1, where gas and quotes are USDC), same contracts; Arc runs `LaunchFactoryArc`, the same source plus a guard that refuses native-asset quotes (see `contracts/docs/LAUNCHPAD.md`).
- **Any quote asset.** ETH, USDG, USDC on Arc, **TWIG** ([Twigpine](https://twigpine.com)'s token on Base: a 1:1 wrapper of GITLAWB,
wrap or unwrap any time with no fee; priced at GITLAWB's price; fees paid or burned in TWIG), **GITLAWB** ([Twigpine](https://twigpine.com)'s token, on Base and bridged 1:1 to
Robinhood Chain; priced from its Base Uniswap v4 WETH pool; fees paid or burned in GITLAWB; the Base form offers TWIG in its place), or a **tokenized stock**: Coinbase's B20 stocks on Base
wrap or unwrap any time with no fee; priced at GITLAWB's price; fees paid or burned in TWIG; no longer offered in the Base form, ahead of the planned
[token migration](https://migrate.twigpine.com), while launches already paired with it keep their badge, price and trading), **GITLAWB** ([Twigpine](https://twigpine.com)'s token, on Base and bridged 1:1 to

Check notice on line 38 in README.md

View workflow job for this annotation

GitHub Actions / pr-guard

pr-guard: A host the repository has not used before

README.md: migrate.twigpine.com
Robinhood Chain; priced from its Base Uniswap v4 WETH pool; fees paid or burned in GITLAWB; the Robinhood Chain form offers it), or a **tokenized stock**: Coinbase's B20 stocks on Base
(every stock Coinbase lists: NVDAc, AAPLc, TSLAc, NFLXc, …, and new listings picked up from Coinbase's registry as they appear; shown in USD where Chainlink publishes an on-chain feed) and Robinhood Stock Tokens on Robinhood Chain.
- **Trade in-page.** Buys and sells go straight to the Uniswap v4 pool through the Universal Router; the site
never touches funds.
Expand Down
108 changes: 54 additions & 54 deletions app/package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

4 changes: 2 additions & 2 deletions app/package.json
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
{
"name": "openlaunch",
"version": "0.1.0",
Expand All @@ -22,7 +22,7 @@
"lightweight-charts": "^5.2.1",
"lucide-react": "^1.42.0",
"motion": "^13.2.0",
"next": "^16.3.8",
"next": "^16.4.5",
"next-themes": "^0.4.6",
"postgres": "^3.4.9",
"react": "19.2.3",
Expand All @@ -40,7 +40,7 @@
"@types/react": "^19",
"@types/react-dom": "^19",
"eslint": "^9",
"eslint-config-next": "^16.3.8",
"eslint-config-next": "^16.4.5",
"tailwindcss": "^4",
"tsx": "^4.23.13",
"typescript": "^5"
Expand Down
2 changes: 1 addition & 1 deletion app/src/app/agents/page.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -76,7 +76,7 @@
<div className={styles.reference}>
<div className={styles.referenceHeading}><Braces size={16} aria-hidden="true" /><h3>Parameters, without the guesswork</h3></div>
<dl className={styles.parameters}>
<div><dt><code>quote</code></dt><dd>ETH uses address zero. For TWIG on Base (the quote the form offers there) use <code>0x6aC18bcf4eDE02591d4917452700ea5eaAea13c1</code>. For GITLAWB use <code>0x5F980Dcfc4c0fa3911554cf5ab288ed0eb13DBa3</code> on Base (still recognised, badged and priced) or <code>0xd1b0d44E4f6ed940fcC7A9F59Bf30Daf62cCFe3D</code> on Robinhood Chain; for USDG on Robinhood Chain, <code>0x5fc5360D0400a0Fd4f2af552ADD042D716F1d168</code>. For any ERC-20 quote call <code>findSalt(...)</code> first so the token address sorts above the quote.</dd></div>
<div><dt><code>quote</code></dt><dd>ETH uses address zero. For GITLAWB on Robinhood Chain use <code>0xd1b0d44E4f6ed940fcC7A9F59Bf30Daf62cCFe3D</code>; for USDG on Robinhood Chain, <code>0x5fc5360D0400a0Fd4f2af552ADD042D716F1d168</code>. On Base, TWIG (<code>0x6aC18bcf4eDE02591d4917452700ea5eaAea13c1</code>) and GITLAWB (<code>0x5F980Dcfc4c0fa3911554cf5ab288ed0eb13DBa3</code>) are still recognised, badged and priced, but the Base form offers neither: GITLAWB left it when TWIG took its place, and TWIG left it ahead of the planned token migration. For any ERC-20 quote call <code>findSalt(...)</code> first so the token address sorts above the quote.</dd></div>

Check notice on line 79 in app/src/app/agents/page.tsx

View workflow job for this annotation

GitHub Actions / pr-guard

pr-guard: On-chain address

app/src/app/agents/page.tsx: 0x5F980Dcfc4c0fa3911554cf5ab288ed0eb13DBa3 (already in the repository)

Check notice on line 79 in app/src/app/agents/page.tsx

View workflow job for this annotation

GitHub Actions / pr-guard

pr-guard: On-chain address

app/src/app/agents/page.tsx: 0x6aC18bcf4eDE02591d4917452700ea5eaAea13c1 (already in the repository)

Check notice on line 79 in app/src/app/agents/page.tsx

View workflow job for this annotation

GitHub Actions / pr-guard

pr-guard: On-chain address

app/src/app/agents/page.tsx: 0x5fc5360D0400a0Fd4f2af552ADD042D716F1d168 (already in the repository)

Check notice on line 79 in app/src/app/agents/page.tsx

View workflow job for this annotation

GitHub Actions / pr-guard

pr-guard: On-chain address

app/src/app/agents/page.tsx: 0xd1b0d44E4f6ed940fcC7A9F59Bf30Daf62cCFe3D (already in the repository)
<div><dt><code>supply</code></dt><dd><code>0</code> means the default <code>1B</code> supply.</dd></div>
<div><dt><code>startTick</code></dt><dd>Sets the opening market cap. A multiple of <code>200</code>; <code>184200 ≈ 10 ETH</code> FDV for <code>1B</code> supply.</dd></div>
<div><dt><code>lpFee</code></dt><dd>In pips: <code>0</code>, <code>10000 = 1%</code>, or <code>30000 = 3%</code>.</dd></div>
Expand Down
2 changes: 1 addition & 1 deletion app/src/app/api/quotes/route.ts
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ type StockHit = { key: "stock"; address: string; symbol: string; name: string; d

/**
* GET /api/quotes?chain=<base|robinhood|arc>[&q=AAPL] → quote assets the launch form may offer on that chain:
* the fixed ones (ETH, USDG, USDC, TWIG, GITLAWB — TWIG and GITLAWB with GITLAWB's live USD) plus tokenized stocks from that chain's registry (with live USD where the stock has a price):
* the fixed ones (ETH, USDG, USDC, GITLAWB on Robinhood Chain with GITLAWB's live USD; never TWIG, which left the Base form) plus tokenized stocks from that chain's registry (with live USD where the stock has a price):
* Coinbase tokenized stocks on Base, Robinhood Stock Tokens on Robinhood Chain, none on Arc.
* `stocks` is one page of matches; `stocksMatched` is how many match the search in all and `stocksTotal` how many the chain's registry holds, so the form can say there are more.
* Each stock's `issued` says whether any of it is in circulation: false = none yet (nobody can buy with it), null = not known (Robinhood, or no good read yet).
Expand Down
6 changes: 3 additions & 3 deletions app/src/app/llms.txt/route.ts
Original file line number Diff line number Diff line change
Expand Up @@ -68,7 +68,7 @@

## What a launch does
1. deploys a fixed-supply ERC-20 (1,000,000,000; no mint/pause/blacklist/tax/owner)
2. initializes a Uniswap v4 pool quote/token (quote = ETH, TWIG on Base, GITLAWB, USDG on Robinhood Chain, USDC on Arc, USDC or WETH on Base (priced, not in the form), or a registry stock token; tick spacing 200, no hook) at the chosen start tick
2. initializes a Uniswap v4 pool quote/token (quote = ETH, GITLAWB or USDG on Robinhood Chain, USDC on Arc, or a registry stock token, all in the form; also TWIG, GITLAWB, USDC or WETH on Base, priced but not in the form; tick spacing 200, no hook) at the chosen start tick
3. mints one single-sided position holding 100% of supply to an ownerless locker (no withdraw path exists)
4. registers fee routing: lpFee 0 | 10000 (1%) | 30000 (3%) pips; recipients [] = fees burned,
else {payout,bps}[] summing to 10000. Fixed forever.
Expand All @@ -85,7 +85,7 @@
USDC (Arc, 6 dec): 0x3600000000000000000000000000000000000000 (also the gas token; native balance = the same USDC at 18 decimals)
USDC (Base, 6 dec): 0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913 (Circle's; priced at $1)
WETH (Base, 18 dec): 0x4200000000000000000000000000000000000006 (priced at ETH; buyers pay WETH, not ETH)
TWIG (Base, 18 dec): 0x6aC18bcf4eDE02591d4917452700ea5eaAea13c1 (Twigpine's token: 1:1 wrapper of GITLAWB, wrap/unwrap any time, no fee; the Base form's quote; priced = GITLAWB; fees paid in TWIG, burned when recipients = [])
TWIG (Base, 18 dec): 0x6aC18bcf4eDE02591d4917452700ea5eaAea13c1 (Twigpine's token: 1:1 wrapper of GITLAWB, wrap/unwrap any time, no fee; no longer offered in the Base form, launches already paired with it keep trading; priced = GITLAWB; fees paid in TWIG, burned when recipients = [])

Check notice on line 88 in app/src/app/llms.txt/route.ts

View workflow job for this annotation

GitHub Actions / pr-guard

pr-guard: On-chain address

app/src/app/llms.txt/route.ts: 0x6aC18bcf4eDE02591d4917452700ea5eaAea13c1 (already in the repository)
GITLAWB (Base, 18 dec): 0x5F980Dcfc4c0fa3911554cf5ab288ed0eb13DBa3 (Twigpine's token; still recognised and priced on Base; fees paid in GITLAWB, burned when recipients = [])
GITLAWB (Robinhood, 18 dec): 0xd1b0d44E4f6ed940fcC7A9F59Bf30Daf62cCFe3D (LayerZero OFT of the Base token, 1:1)

Expand All @@ -100,7 +100,7 @@
${boostSection()}
## Community pairs (${PAIR_CHAINS_TEXT})
A launch may be paired with a listed community token: the site badges it and prices it in USD from one named pool (checked against
that pool's 30-minute average). The launch form does not offer them (ETH, TWIG and stocks only): such a launch is made against the
that pool's 30-minute average). The launch form does not offer them: such a launch is made against the
factory directly. The contracts accept any ERC-20 either way; an unlisted one shows as "Unlisted pair", unpriced. Each listing is
checked hourly and suspended when its checks fail.
- GET ${SITE_URL}/api/pairs (every pair: address, symbol, decimals, status, usd, price source)
Expand Down
2 changes: 1 addition & 1 deletion app/src/app/pairs/page.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ import { pairListingUsd } from "@/lib/launchpad/pairApply";
export const metadata = pageMetadata({
path: "/pairs",
title: "Community pairs",
description: "Tokens a launch on openlaunch can be paired with besides ETH and TWIG. Each is listed after public checks, priced from one named pool and watched every hour.",
description: "Community tokens a launch on openlaunch can be paired with. Each is listed after public checks, priced from one named pool and watched every hour.",
});
export const dynamic = "force-dynamic";

Expand Down
Loading
Loading