Files
zeekay 081caef236 blockchain: the pages' words go through @hanzo/i18n
BlockchainProductLayout draws every field it is handed with t(), and the
fifteen product views mark their copy with phrase() where it is written.
The index and the chain directory wrap their own words; chain names,
code samples and figures stay as they are. The back arrow and the
call-to-action arrows mirror under dir="rtl", and the two disclosure
heads align to the start instead of the left.
2026-10-22 18:13:04 -07:00

101 lines
3.1 KiB
TypeScript

'use client'
import React from "react";
import {
Coins,
Search,
BarChart3,
Clock,
Globe,
Shield,
Zap,
RefreshCw,
Database,
} from "lucide-react";
import { phrase } from "@hanzo/i18n";
import BlockchainProductLayout, { type CodeExample } from "@/components/blockchain/BlockchainProductLayout";
const HanzoTokens = ({ codeExamples }: { codeExamples: CodeExample[] }) => {
return (
<BlockchainProductLayout
slug="tokens"
name={phrase("Token API")}
tagline={phrase("ERC-20 token data, balances & prices")}
description={phrase("One token data API for every EVM chain. Balances, historical prices, metadata, and ownership across 100+ networks in a single call.")}
icon={Coins}
features={[
{
icon: Coins,
title: phrase("Multi-chain Balances"),
description: phrase("Query token balances across all EVM chains in one request."),
},
{
icon: BarChart3,
title: phrase("Real-time Prices"),
description: phrase("Live token prices from multiple DEXs and aggregators."),
},
{
icon: Database,
title: phrase("Token Metadata"),
description: phrase("Name, symbol, decimals, logos, and contract info."),
},
{
icon: Clock,
title: phrase("Historical Data"),
description: phrase("Price history, balance snapshots, and transfer history."),
},
{
icon: Search,
title: phrase("Token Discovery"),
description: phrase("Search and discover tokens by name, symbol, or address."),
},
{
icon: Shield,
title: phrase("Spam Detection"),
description: phrase("Automatic filtering of spam tokens and scam contracts."),
},
{
icon: Zap,
title: phrase("Fast Response"),
description: phrase("Sub-100ms response times with global CDN caching."),
},
{
icon: Globe,
title: phrase("100+ Chains"),
description: phrase("Support for Ethereum, Polygon, Arbitrum, Base, and more."),
},
{
icon: RefreshCw,
title: phrase("Webhook Updates"),
description: phrase("Get notified on balance changes and transfers."),
},
]}
useCases={[
{
title: phrase("Portfolio Trackers"),
description: phrase("Build multi-chain portfolio apps with real-time valuations."),
},
{
title: phrase("Wallet Applications"),
description: phrase("Display token balances and transaction history."),
},
{
title: phrase("DeFi Dashboards"),
description: phrase("Track positions, yields, and token performance."),
},
{
title: phrase("Trading Bots"),
description: phrase("Real-time price feeds for automated trading strategies."),
},
]}
chains={[
"Ethereum", "Polygon", "Arbitrum", "Optimism", "Base",
"BNB Chain", "Avalanche", "Fantom", "zkSync", "Linea",
]}
codeExamples={codeExamples}
/>
);
};
export default HanzoTokens;