- Launch, divest, and buy back tokens, securely on-chain.
+ Launch, divest, and buy back tokens, all transparent.
- Launch with confidence using programmable LBP mechanics built for
- fair price discovery and transparent allocation.
+ Built for fair price discovery and minimal market impact, whether
+ you're launching a token, executing a buyback, or divesting a
+ treasury position.
@@ -80,16 +84,35 @@ export function Live() {
Token price
- $1.50 USDC
+
+ $1.50 USDC
+
From 3dde3e444a45ed5b454ecd93d4ff0cef1d45425c Mon Sep 17 00:00:00 2001
From: gustavobftorres
Date: Thu, 26 Feb 2026 16:56:47 -0300
Subject: [PATCH 4/6] improve KPI descriptions to match with title voices
---
components/layout/KPI.tsx | 10 +++++-----
1 file changed, 5 insertions(+), 5 deletions(-)
diff --git a/components/layout/KPI.tsx b/components/layout/KPI.tsx
index 9b01e72..ff392db 100644
--- a/components/layout/KPI.tsx
+++ b/components/layout/KPI.tsx
@@ -79,24 +79,24 @@ export function KPI() {
- Historical amount raised
+ Total Raised
{formatCurrency(raised)}
- Liquidity bootstrapped through on-chain auctions.
+ Bootstrapped through on-chain auctions across all LBPs.
- LBP pools created
+ LBPs Launched
{formatCount(pools)}
- Verified launches across ecosystems and communities.
+ Completed launches across ecosystems and communities.
@@ -107,7 +107,7 @@ export function KPI() {
{formatCount(participants)}
- Unique participants across LBP launches.
+ Individual wallets that participated in LBP launches.
From 20857fbfc440cdecdf16af8e99dabc536cfe17eb Mon Sep 17 00:00:00 2001
From: gustavobftorres
Date: Thu, 26 Feb 2026 17:02:03 -0300
Subject: [PATCH 5/6] improve descriptions on buy back deep-dive section
---
components/layout/Insights.tsx | 4 +-
components/layout/UseCases.tsx | 77 +++++++++++++++++-----------------
2 files changed, 41 insertions(+), 40 deletions(-)
diff --git a/components/layout/Insights.tsx b/components/layout/Insights.tsx
index bdd1277..bd7a06e 100644
--- a/components/layout/Insights.tsx
+++ b/components/layout/Insights.tsx
@@ -33,13 +33,13 @@ const INSIGHTS = [
{
subtitle: "Invert the Mechanics",
paragraph:
- "Reverse the standard logic by starting with high collateral weight (e.g., 90% DAI) to generate natural upward price pressure.",
+ "Start with high collateral weight (e.g., 90% DAI) to create natural upward price pressure as weights shift.",
Icon: RefreshCcw,
},
{
subtitle: "Passive Accumulation",
paragraph:
- "Operate as an automated limit order where arbitrageurs are incentivized to fill your treasury organically as weights adjust.",
+ "Function as an automated limit order: arbitrageurs fill your treasury with collateral as pool weights shift, requiring no active management.",
Icon: Magnet,
},
{
diff --git a/components/layout/UseCases.tsx b/components/layout/UseCases.tsx
index e22c223..126713a 100644
--- a/components/layout/UseCases.tsx
+++ b/components/layout/UseCases.tsx
@@ -21,7 +21,7 @@ const SLIDES = [
slug: "buy-back",
title: "Buy Back",
description:
- "Programmatic buy-backs with transparent price discovery and predictable liquidity.",
+ "Automated buybacks with transparent price discovery and controlled market impact.",
benefits: ["Market Stability", "Fair Pricing", "Transparent Execution"],
Icon: RefreshCcw,
caseStudy: {
@@ -49,7 +49,7 @@ const SLIDES = [
slug: "token-launches",
title: "Token Launches",
description:
- "Fair price discovery for new tokens. Let the market find the right price through an LBP.",
+ "Let the market set the price. Fairly, transparently, and without bot interference.",
benefits: ["No Bot Sniping", "Deep Initial Liquidity", "Community Driven"],
Icon: Rocket,
caseStudy: {
@@ -81,7 +81,7 @@ const SLIDES = [
slug: "divestment",
title: "Investment & Divestment",
description:
- "Gradual, market-driven divestment with configurable weights and transparent execution.",
+ "Gradually enter or exit positions with configurable parameters and minimal price impact.",
benefits: ["Minimal Price Impact", "Controlled Flow", "Verified Discovery"],
Icon: TrendingDown,
caseStudy: {
@@ -167,44 +167,46 @@ const UseCases = ({ activeIndex, onSelect, openCaseSlug }: UseCasesProps) => {
return url.toString();
}, []);
- const animateDeck = useCallback((currentActiveIndex: number) => {
- SLIDES.forEach((_, slideIndex) => {
- const wrapper = wrapperRefs.current[slideIndex];
- const card = cardRefs.current[slideIndex];
- if (!wrapper || !card) return;
+ const animateDeck = useCallback(
+ (currentActiveIndex: number) => {
+ SLIDES.forEach((_, slideIndex) => {
+ const wrapper = wrapperRefs.current[slideIndex];
+ const card = cardRefs.current[slideIndex];
+ if (!wrapper || !card) return;
- const position = getVisualPosition(slideIndex, currentActiveIndex);
- const layout = CARD_LAYOUT[position];
- const isFocused = position === 0;
- const scale = isFocused ? 1.1 : 1;
- const mobileOffsetY =
- position === 0 ? -8 : position === 1 ? -28 : -48;
- const translateX = isMobile ? 0 : layout.offsetX;
- const translateY = isMobile ? mobileOffsetY : isFocused ? -18 : 0;
- const rotate = isMobile ? 0 : layout.rotate;
- const deckScale = isMobile ? 1 : scale;
+ const position = getVisualPosition(slideIndex, currentActiveIndex);
+ const layout = CARD_LAYOUT[position];
+ const isFocused = position === 0;
+ const scale = isFocused ? 1.1 : 1;
+ const mobileOffsetY = position === 0 ? -8 : position === 1 ? -28 : -48;
+ const translateX = isMobile ? 0 : layout.offsetX;
+ const translateY = isMobile ? mobileOffsetY : isFocused ? -18 : 0;
+ const rotate = isMobile ? 0 : layout.rotate;
+ const deckScale = isMobile ? 1 : scale;
- animate(wrapper, {
- translateX,
- translateY,
- rotate,
- scale: deckScale,
- duration: 420,
- easing: "easeOutQuad",
- });
+ animate(wrapper, {
+ translateX,
+ translateY,
+ rotate,
+ scale: deckScale,
+ duration: 420,
+ easing: "easeOutQuad",
+ });
- // Set z-index immediately to prevent overlap issues during transition
- wrapper.style.zIndex = (isFocused ? 40 : layout.baseZ).toString();
+ // Set z-index immediately to prevent overlap issues during transition
+ wrapper.style.zIndex = (isFocused ? 40 : layout.baseZ).toString();
- animate(card, {
- boxShadow: isFocused
- ? "0 24px 60px rgba(230, 200, 163, 0.35)"
- : "0 18px 35px rgba(15, 23, 42, 0.2)",
- duration: 420,
- easing: "easeOutQuad",
+ animate(card, {
+ boxShadow: isFocused
+ ? "0 24px 60px rgba(230, 200, 163, 0.35)"
+ : "0 18px 35px rgba(15, 23, 42, 0.2)",
+ duration: 420,
+ easing: "easeOutQuad",
+ });
});
- });
- }, [isMobile]);
+ },
+ [isMobile],
+ );
useEffect(() => {
// Initialize styles for all slides
@@ -216,8 +218,7 @@ const UseCases = ({ activeIndex, onSelect, openCaseSlug }: UseCasesProps) => {
const position = getVisualPosition(slideIndex, activeIndex);
const layout = CARD_LAYOUT[position];
const isFocused = position === 0;
- const mobileOffsetY =
- position === 0 ? -8 : position === 1 ? -28 : -48;
+ const mobileOffsetY = position === 0 ? -8 : position === 1 ? -28 : -48;
const translateX = isMobile ? 0 : layout.offsetX;
const translateY = isMobile ? mobileOffsetY : isFocused ? -18 : 0;
const rotate = isMobile ? 0 : layout.rotate;
From f6ff3e4bb2e0e0b9a07b1b375bf232b511629ee4 Mon Sep 17 00:00:00 2001
From: gustavobftorres
Date: Thu, 26 Feb 2026 17:03:46 -0300
Subject: [PATCH 6/6] improve FAQ questions overall
---
components/layout/CommomQuestions.tsx | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/components/layout/CommomQuestions.tsx b/components/layout/CommomQuestions.tsx
index 4756d54..a01c5ac 100644
--- a/components/layout/CommomQuestions.tsx
+++ b/components/layout/CommomQuestions.tsx
@@ -29,7 +29,7 @@ const QUESTIONS = [
"Yes. LBPs offer the flexibility to implement structured fixed price strategies over time, enabling teams to launch tokens in a more efficient and controlled manner.",
},
{
- question: "I wanted to deploy a LBP on a EVM with no support. How can I proceed?",
+ question: "The chain I want to deploy on isn't supported yet. What are my options?",
answer:
"Contact our product and support team to learn more about new integrations and other issues.",
},