Skip to content

Commit 04a84e7

Browse files
UltraDAGcomClaude Opus 4.6 (1M context)
andcommitted
site: UDAG token is live — swap countdown/waitlist for Uniswap CTAs
Replace the pre-launch countdown + waitlist flow with a live-state UI: - Hero: "LIVE" banner with contract address; primary CTA now links to Uniswap - Launch section: animated LIVE badge, contract/network/supply info card, Buy on Uniswap + View on Arbiscan buttons - Bottom CTA: "Trade UDAG on Uniswap" with Buy/Arbiscan buttons - Email form retained but repurposed as "Get ecosystem updates" - Removed countdown HTML (JS gracefully handles missing elements) Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
1 parent 0b9620f commit 04a84e7

2 files changed

Lines changed: 163 additions & 56 deletions

File tree

site/src/pages/index.astro

Lines changed: 37 additions & 56 deletions
Original file line numberDiff line numberDiff line change
@@ -53,8 +53,9 @@ const LAUNCH_DATE = new Date('2026-05-22T12:00:00Z').getTime();
5353
<h1>Blockchain finality<br /><em>10 seconds.</em><br />Built for <em>machines.</em></h1>
5454
<p class="hero-subtitle">DAG-BFT consensus for IoT, sensors, and autonomous agents. Live on testnet.</p>
5555

56-
<!-- Token launch banner -->
57-
<div class="token-banner">
56+
<!-- Token live banner -->
57+
<div class="token-banner token-banner-live">
58+
<span class="token-banner-status"><span class="token-banner-dot"></span>LIVE</span>
5859
<span class="token-banner-label">UDAG on Arbitrum:</span>
5960
<a href="https://arbiscan.io/token/0x9cFD2011DF13d9E394B5Bb59f0f7e7A5C512155b" target="_blank" rel="noopener noreferrer" class="token-banner-addr">
6061
0x9cFD2011DF13d9E394B5Bb59f0f7e7A5C512155b
@@ -63,7 +64,7 @@ const LAUNCH_DATE = new Date('2026-05-22T12:00:00Z').getTime();
6364
</div>
6465

6566
<div class="hero-actions">
66-
<a href="/network" class="btn-primary">Watch it live →</a>
67+
<a href="https://app.uniswap.org/explore/tokens/arbitrum/0x9cfd2011df13d9e394b5bb59f0f7e7a5c512155b?inputCurrency=NATIVE" target="_blank" rel="noopener noreferrer" class="btn-primary">Buy UDAG on Uniswap →</a>
6768
<a href="/whitepaper" class="btn-secondary">Read the whitepaper →</a>
6869
</div>
6970

@@ -74,19 +75,10 @@ const LAUNCH_DATE = new Date('2026-05-22T12:00:00Z').getTime();
7475
<input type="hidden" name="id" value="daf1702c98" />
7576
<input type="email" name="EMAIL" placeholder="your@email.com" required autocomplete="email" aria-label="Email address" class="email-input-inline" />
7677
<div class="email-hp"><input type="text" name="b_7c006c449bd3dc3a523bce11d_daf1702c98" tabindex="-1" value="" /></div>
77-
<button type="submit" class="email-btn-inline">Get Early Access</button>
78+
<button type="submit" class="email-btn-inline">Get ecosystem updates</button>
7879
</form>
7980
</div>
8081

81-
<!-- Countdown -->
82-
<div class="hero-launch">
83-
<div class="countdown-inline">
84-
<span class="countdown-num" id="cd-hero-days">--</span>d
85-
<span class="countdown-num" id="cd-hero-hours">--</span>h
86-
<span class="countdown-num" id="cd-hero-mins">--</span>m
87-
<span class="countdown-label-inline">until token launch</span>
88-
</div>
89-
</div>
9082

9183
<!-- Social links -->
9284
<div class="hero-social">
@@ -154,50 +146,35 @@ const LAUNCH_DATE = new Date('2026-05-22T12:00:00Z').getTime();
154146
</div>
155147
</div>
156148

157-
<!-- Token Launch Section -->
149+
<!-- Token Live Section -->
158150
<div class="launch-section" id="launch">
159151
<div class="launch-inner">
160-
<div class="launch-badge">TOKEN LAUNCH</div>
161-
<h2 class="launch-title">UDAG Token Launch</h2>
162-
<p class="launch-subtitle">Be the first to know. Join the waitlist for priority access.</p>
163-
164-
<!-- Countdown -->
165-
<div class="countdown" id="countdown">
166-
<div class="countdown-block">
167-
<span class="countdown-num" id="cd-days">--</span>
168-
<span class="countdown-label">Days</span>
169-
</div>
170-
<div class="countdown-sep">:</div>
171-
<div class="countdown-block">
172-
<span class="countdown-num" id="cd-hours">--</span>
173-
<span class="countdown-label">Hours</span>
174-
</div>
175-
<div class="countdown-sep">:</div>
176-
<div class="countdown-block">
177-
<span class="countdown-num" id="cd-mins">--</span>
178-
<span class="countdown-label">Minutes</span>
179-
</div>
180-
<div class="countdown-sep">:</div>
181-
<div class="countdown-block">
182-
<span class="countdown-num" id="cd-secs">--</span>
183-
<span class="countdown-label">Seconds</span>
152+
<div class="launch-badge launch-badge-live"><span class="launch-badge-dot"></span>LIVE NOW</div>
153+
<h2 class="launch-title">UDAG is <em>live</em> on Arbitrum.</h2>
154+
<p class="launch-subtitle">Tradable now on Uniswap. Bridge-backed 1:1 with native UDAG on the main chain.</p>
155+
156+
<div class="launch-token-card">
157+
<div class="launch-token-row">
158+
<span class="launch-token-label">Contract</span>
159+
<a href="https://arbiscan.io/token/0x9cFD2011DF13d9E394B5Bb59f0f7e7A5C512155b" target="_blank" rel="noopener noreferrer" class="launch-token-addr">
160+
0x9cFD2011DF13d9E394B5Bb59f0f7e7A5C512155b
161+
</a>
162+
<button class="launch-token-copy" onclick="navigator.clipboard.writeText('0x9cFD2011DF13d9E394B5Bb59f0f7e7A5C512155b'); this.textContent='Copied!'; setTimeout(()=>this.textContent='Copy', 1500)" aria-label="Copy contract address">Copy</button>
163+
</div>
164+
<div class="launch-token-row">
165+
<span class="launch-token-label">Network</span>
166+
<span class="launch-token-value">Arbitrum One</span>
167+
</div>
168+
<div class="launch-token-row">
169+
<span class="launch-token-label">Supply</span>
170+
<span class="launch-token-value">21M max · 2.52M circulating (IDO)</span>
184171
</div>
185172
</div>
186173

187-
<!-- Email Form -->
188-
<form class="email-form" id="email-form" onsubmit="return handleEmailSubmit(event)">
189-
<input type="hidden" name="u" value="7c006c449bd3dc3a523bce11d" />
190-
<input type="hidden" name="id" value="daf1702c98" />
191-
<div class="email-input-wrap">
192-
<input type="email" name="EMAIL" id="email-input" placeholder="your@email.com" required autocomplete="email" aria-label="Email address" class="email-input" />
193-
<div class="email-hp"><input type="text" name="b_7c006c449bd3dc3a523bce11d_daf1702c98" tabindex="-1" value="" /></div>
194-
<button type="submit" class="email-btn" id="email-btn">
195-
<span id="email-btn-text">Get Early Access</span>
196-
<svg id="email-btn-check" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3" stroke-linecap="round" stroke-linejoin="round"><polyline points="20 6 9 17 4 12"></polyline></svg>
197-
</button>
198-
</div>
199-
<p class="email-note">No spam. Only launch updates and early access.</p>
200-
</form>
174+
<div class="launch-actions">
175+
<a href="https://app.uniswap.org/explore/tokens/arbitrum/0x9cfd2011df13d9e394b5bb59f0f7e7a5c512155b?inputCurrency=NATIVE" target="_blank" rel="noopener noreferrer" class="btn-primary btn-lg">Buy UDAG on Uniswap →</a>
176+
<a href="https://arbiscan.io/token/0x9cFD2011DF13d9E394B5Bb59f0f7e7A5C512155b" target="_blank" rel="noopener noreferrer" class="btn-secondary btn-lg">View on Arbiscan →</a>
177+
</div>
201178

202179
<!-- Social -->
203180
<div class="launch-social">
@@ -686,15 +663,19 @@ const LAUNCH_DATE = new Date('2026-05-22T12:00:00Z').getTime();
686663
<!-- Bottom CTA -->
687664
<div class="launch-section bottom-cta">
688665
<div class="launch-inner">
689-
<h2 class="launch-title">Don't miss the launch</h2>
690-
<p class="launch-subtitle">Join the waitlist and follow us for priority access to UDAG.</p>
691-
<form class="email-form" onsubmit="return handleEmailSubmit(event)">
666+
<h2 class="launch-title">Trade UDAG on Uniswap</h2>
667+
<p class="launch-subtitle">Live on Arbitrum One. Bridge-backed, 8-decimal ERC-20, 21M max supply.</p>
668+
<div class="launch-actions">
669+
<a href="https://app.uniswap.org/explore/tokens/arbitrum/0x9cfd2011df13d9e394b5bb59f0f7e7a5c512155b?inputCurrency=NATIVE" target="_blank" rel="noopener noreferrer" class="btn-primary btn-lg">Buy on Uniswap →</a>
670+
<a href="https://arbiscan.io/token/0x9cFD2011DF13d9E394B5Bb59f0f7e7A5C512155b" target="_blank" rel="noopener noreferrer" class="btn-secondary btn-lg">View on Arbiscan →</a>
671+
</div>
672+
<form class="email-form" onsubmit="return handleEmailSubmit(event)" style="margin-top: 32px;">
692673
<input type="hidden" name="u" value="7c006c449bd3dc3a523bce11d" />
693674
<input type="hidden" name="id" value="daf1702c98" />
694675
<div class="email-input-wrap">
695676
<input type="email" name="EMAIL" placeholder="your@email.com" required autocomplete="email" aria-label="Email address" class="email-input" />
696677
<div class="email-hp"><input type="text" name="b_7c006c449bd3dc3a523bce11d_daf1702c98" tabindex="-1" value="" /></div>
697-
<button type="submit" class="email-btn">Get Early Access</button>
678+
<button type="submit" class="email-btn">Get ecosystem updates</button>
698679
</div>
699680
</form>
700681
<div class="launch-social-links">

site/src/styles/homepage.css

Lines changed: 126 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1570,6 +1570,132 @@ section h2 em {
15701570
gap: 24px;
15711571
}
15721572

1573+
/* Token live banner */
1574+
.token-banner-live {
1575+
border-color: rgba(74,222,128,0.35);
1576+
background: linear-gradient(135deg, rgba(74,222,128,0.10), rgba(74,222,128,0.03));
1577+
}
1578+
1579+
.token-banner-status {
1580+
display: inline-flex;
1581+
align-items: center;
1582+
gap: 6px;
1583+
color: rgb(74,222,128);
1584+
font-weight: 600;
1585+
font-size: 11px;
1586+
letter-spacing: 0.08em;
1587+
}
1588+
1589+
.token-banner-dot {
1590+
width: 7px;
1591+
height: 7px;
1592+
border-radius: 50%;
1593+
background: rgb(74,222,128);
1594+
box-shadow: 0 0 10px rgb(74,222,128);
1595+
animation: pulse-dot 2s ease-in-out infinite;
1596+
}
1597+
1598+
@keyframes pulse-dot {
1599+
0%, 100% { opacity: 1; }
1600+
50% { opacity: 0.4; }
1601+
}
1602+
1603+
/* Launch badge - live variant */
1604+
.launch-badge-live {
1605+
background: rgba(74,222,128,0.12);
1606+
border: 1px solid rgba(74,222,128,0.3);
1607+
color: rgb(74,222,128);
1608+
display: inline-flex;
1609+
align-items: center;
1610+
gap: 8px;
1611+
}
1612+
1613+
.launch-badge-dot {
1614+
width: 8px;
1615+
height: 8px;
1616+
border-radius: 50%;
1617+
background: rgb(74,222,128);
1618+
box-shadow: 0 0 10px rgb(74,222,128);
1619+
animation: pulse-dot 2s ease-in-out infinite;
1620+
}
1621+
1622+
/* Launch token card */
1623+
.launch-token-card {
1624+
background: rgba(255,255,255,0.03);
1625+
border: 1px solid var(--border);
1626+
border-radius: 12px;
1627+
padding: 24px;
1628+
margin: 32px auto;
1629+
max-width: 640px;
1630+
text-align: left;
1631+
}
1632+
1633+
.launch-token-row {
1634+
display: flex;
1635+
align-items: center;
1636+
justify-content: space-between;
1637+
padding: 8px 0;
1638+
gap: 16px;
1639+
flex-wrap: wrap;
1640+
}
1641+
1642+
.launch-token-row + .launch-token-row {
1643+
border-top: 1px solid var(--border);
1644+
}
1645+
1646+
.launch-token-label {
1647+
color: var(--subtle);
1648+
font-size: 13px;
1649+
}
1650+
1651+
.launch-token-addr {
1652+
color: var(--accent);
1653+
font-family: 'SF Mono', Menlo, monospace;
1654+
font-size: 12px;
1655+
text-decoration: none;
1656+
word-break: break-all;
1657+
flex: 1;
1658+
text-align: right;
1659+
}
1660+
1661+
.launch-token-addr:hover {
1662+
text-decoration: underline;
1663+
}
1664+
1665+
.launch-token-value {
1666+
color: var(--white);
1667+
font-size: 14px;
1668+
}
1669+
1670+
.launch-token-copy {
1671+
background: rgba(61,155,233,0.15);
1672+
border: 1px solid rgba(61,155,233,0.3);
1673+
color: var(--accent);
1674+
padding: 4px 10px;
1675+
border-radius: 6px;
1676+
font-size: 11px;
1677+
cursor: pointer;
1678+
font-family: inherit;
1679+
}
1680+
1681+
.launch-token-copy:hover {
1682+
background: rgba(61,155,233,0.25);
1683+
}
1684+
1685+
/* Launch actions */
1686+
.launch-actions {
1687+
display: flex;
1688+
gap: 16px;
1689+
justify-content: center;
1690+
flex-wrap: wrap;
1691+
margin: 16px 0 32px;
1692+
}
1693+
1694+
.btn-lg {
1695+
padding: 14px 28px;
1696+
font-size: 15px;
1697+
}
1698+
15731699
/* Token launch banner */
15741700
.token-banner {
15751701
display: inline-flex;

0 commit comments

Comments
 (0)