diff --git a/.claude/rules/mobile-ui.md b/.claude/rules/mobile-ui.md
new file mode 100644
index 00000000..9a429d7e
--- /dev/null
+++ b/.claude/rules/mobile-ui.md
@@ -0,0 +1,97 @@
+## Mobile UI Rules
+
+Mobile views live in `apps/terminal/src/components/trade/mobile/`. They mirror the desktop in element sizing and design tokens — only layout/spacing adapts.
+
+### Typography Scale (Mobile)
+
+Follow the same scale as desktop — do NOT inflate font sizes for "mobile readability":
+
+| Role | Token |
+|------|-------|
+| Metric labels (Size, Entry, Mark…) | `text-2xs text-text-weak` |
+| Metric values | `text-xs tabular-nums font-medium` |
+| Section labels / uppercase headers | `text-2xs font-medium uppercase` |
+| Card header asset name | `text-sm font-semibold` |
+| Mark price in header | `text-sm font-semibold tabular-nums` |
+| 24h change | `text-xs tabular-nums` |
+| Body / descriptions | `text-sm` |
+
+### Header Price Display
+
+- Header mark price: `text-sm font-semibold` (not `text-lg`)
+- Stack price + change **vertically** (price above, change below, right-aligned) — do not place them side by side
+- Do NOT show Long/Short position badges in chart/trade headers — the position is visible in the Positions tab
+
+### Controls — Ghost vs Outline
+
+Token/unit toggles vary by context:
+
+- **Next to a large input** (e.g. size input in trade form): use `variant="outline"` so the control reads as a bordered selector matching the input's visual weight:
+ ```tsx
+ }>
+ {token}
+
+ ```
+- **Standalone / next to a Dropdown trigger**: use `variant="ghost"` to match the Dropdown's minimal style.
+
+`variant="outline"` is also used for primary CTAs (Withdraw, Deposit, Close position).
+
+### Metric Grid in Cards (Positions / Orders)
+
+Do NOT use the `gap-px bg-stroke-weak/20` mosaic trick for metric grids. Instead use explicit row and column dividers:
+
+```tsx
+
+```
+
+MetricCell standard:
+```tsx
+
+
{label}
+
{value}
+ {sub &&
{sub}
}
+
+```
+
+### Card Action Buttons
+
+Action buttons in position/order cards use `size="xs"` (not raw `` elements):
+
+```tsx
+Limit Close
+Close
+```
+
+### Reference — Account View
+
+`mobile-account-view.tsx` is the visual reference for card style. Match its:
+- Card: `rounded-xs border border-stroke-weak/40 bg-bg-raised`
+- Stat label: `text-2xs text-text-weak`
+- Stat value: `text-base font-semibold tabular-nums` (for primary metrics only; secondary metrics use `text-xs`)
+
+### Button Size Standard (Mobile)
+
+Use one consistent size per context — never add `min-h-[*]` or `h-[*]` overrides to Button components; they fight the design system.
+
+| Context | Size |
+|---------|------|
+| Primary form action (Buy/Sell, trade submit) | `size="lg" className="w-full"` |
+| Standalone section CTA (Connect Wallet, empty states) | `size="sm"` |
+| Account actions (Withdraw, Deposit, Bridge) | `size="md"` in 3-col grid |
+| Card action buttons (Cancel, Close, Transfer) | `size="sm"` |
+| Card action buttons in position cards (TP/SL, Limit Close, Close) | `size="xs" className="flex-1 justify-center"` |
+| Ghost market switcher in card headers | `size="sm"` |
+| Inline toggle controls (unit switcher) | `size="sm" variant="ghost"` |
+
+Never use `min-h-[36px]` or `min-h-[44px]` as class overrides on Button — the component's size prop already handles height correctly.
diff --git a/apps/terminal/public/sw.js b/apps/terminal/public/sw.js
index 35a9f2fd..f6ea38ea 100644
--- a/apps/terminal/public/sw.js
+++ b/apps/terminal/public/sw.js
@@ -1,4 +1,5 @@
const CACHE_VERSION = "v1";
+const ASSET_CACHE = `assets-${CACHE_VERSION}`;
const CHARTING_CACHE = `charting-${CACHE_VERSION}`;
const FONT_CACHE = `fonts-${CACHE_VERSION}`;
const ICON_CACHE = `icons-${CACHE_VERSION}`;
@@ -16,7 +17,7 @@ self.addEventListener("activate", (event) => {
keys
.filter(
(k) =>
- ![CHARTING_CACHE, FONT_CACHE, ICON_CACHE, NAV_CACHE].includes(k),
+ ![ASSET_CACHE, CHARTING_CACHE, FONT_CACHE, ICON_CACHE, NAV_CACHE].includes(k),
)
.map((k) => caches.delete(k)),
),
@@ -30,6 +31,11 @@ self.addEventListener("fetch", (event) => {
if (request.method !== "GET") return;
+ if (url.pathname.startsWith("/assets/")) {
+ event.respondWith(cacheFirst(request, ASSET_CACHE));
+ return;
+ }
+
if (url.pathname.startsWith("/charting_library/")) {
event.respondWith(cacheFirst(request, CHARTING_CACHE));
return;
diff --git a/apps/terminal/src/components/account/account-balances.tsx b/apps/terminal/src/components/account/account-balances.tsx
new file mode 100644
index 00000000..8d0fe5db
--- /dev/null
+++ b/apps/terminal/src/components/account/account-balances.tsx
@@ -0,0 +1,240 @@
+import { Checkbox, Table, TableBody, TableCell, TableHead, TableHeader, TableRow } from "@hypeterminal/ui";
+import { t } from "@lingui/core/macro";
+import { Trans } from "@lingui/react/macro";
+import { WalletIcon } from "@phosphor-icons/react";
+import { Skeleton } from "boneyard-js/react";
+import { useId, useMemo } from "react";
+import { useConnection } from "wagmi";
+import { DEFAULT_QUOTE_TOKEN, HL_ALL_DEXS } from "@/config/constants";
+import { useAccountBalances } from "@/hooks/trade/use-account-balances";
+import { useIsMobile } from "@/hooks/use-mobile";
+import { cn } from "@/lib/cn";
+import { formatToken, formatUSD } from "@/lib/format";
+import { useSubAllMids } from "@/lib/hyperliquid/hooks/subscription";
+import { useSpotTokens } from "@/lib/hyperliquid/markets/use-spot-tokens";
+import { toNumberOrZero } from "@/lib/trade/numbers";
+import { useGlobalSettingsActions, useHideSmallBalances } from "@/stores/use-global-settings-store";
+import { AssetDisplay } from "../trade/components/asset-display";
+
+const SMALL_BALANCE_THRESHOLD = 1;
+
+interface SpotRow {
+ coin: string;
+ total: number;
+ available: number;
+ inOrders: number;
+ usdValue: number;
+ szDecimals: number;
+}
+
+export function AccountBalances() {
+ const { isConnected } = useConnection();
+ const { spotBalances, isLoading, hasError } = useAccountBalances();
+ const { getToken } = useSpotTokens();
+ const hideSmallBalances = useHideSmallBalances();
+ const { setHideSmallBalances } = useGlobalSettingsActions();
+ const isMobile = useIsMobile();
+
+ const { data: allMidsEvent } = useSubAllMids({ dex: HL_ALL_DEXS }, { enabled: isConnected });
+ const mids = allMidsEvent?.mids;
+
+ const rows = useMemo(() => {
+ const result: SpotRow[] = [];
+ for (const b of spotBalances) {
+ const total = toNumberOrZero(b.total);
+ if (total === 0) continue;
+
+ const hold = toNumberOrZero(b.hold);
+ const available = Math.max(0, total - hold);
+ const inOrders = hold;
+ const token = getToken(b.coin);
+ const szDecimals = token?.szDecimals ?? 2;
+
+ let usdValue: number;
+ if (b.coin === DEFAULT_QUOTE_TOKEN) {
+ usdValue = total;
+ } else {
+ const midPx = toNumberOrZero(mids?.[b.coin]);
+ usdValue = midPx > 0 ? total * midPx : toNumberOrZero(b.entryNtl);
+ }
+
+ result.push({ coin: b.coin, total, available, inOrders, usdValue, szDecimals });
+ }
+ result.sort((a, b) => b.usdValue - a.usdValue);
+ return result;
+ }, [spotBalances, mids, getToken]);
+
+ const filteredRows = useMemo(() => {
+ if (!hideSmallBalances) return rows;
+ return rows.filter((r) => r.usdValue >= SMALL_BALANCE_THRESHOLD);
+ }, [rows, hideSmallBalances]);
+
+ const totalValue = useMemo(() => rows.reduce((sum, r) => sum + r.usdValue, 0), [rows]);
+
+ if (!isConnected) return null;
+
+ if (isLoading) {
+ return (
+
+ );
+ }
+
+ if (hasError) {
+ return (
+
+
+
+ Failed to load balances.
+
+
+ );
+ }
+
+ if (rows.length === 0) {
+ return (
+
+
+
+ No spot balances.
+
+
+ );
+ }
+
+ return (
+
+
+ {isMobile ? (
+
+ {filteredRows.map((row) => (
+
+ ))}
+
+ ) : (
+
+ )}
+
+ );
+}
+
+function Section({ children }: { children: React.ReactNode }) {
+ return {children}
;
+}
+
+interface SectionHeaderProps {
+ totalValue: number | null;
+ hideSmall: boolean;
+ onHideSmallChange: (v: boolean) => void;
+}
+
+function SectionHeader({ totalValue, hideSmall, onHideSmallChange }: SectionHeaderProps) {
+ const checkboxId = useId();
+ return (
+
+
+
+ Spot Balances
+
+
+ onHideSmallChange(Boolean(checked))}
+ className="size-3"
+ />
+ {t`Hide small`}
+
+ {totalValue !== null && (
+ {formatUSD(totalValue, { compact: true })}
+ )}
+
+ );
+}
+
+function BalancesTable({ rows }: { rows: SpotRow[] }) {
+ return (
+
+
+
+ {t`Token`}
+ {t`Total`}
+ {t`Available`}
+ {t`In Orders`}
+ {t`USD Value`}
+
+
+
+ {rows.map((row, i) => (
+
+
+
+
+
+ {formatToken(row.total, row.coin === DEFAULT_QUOTE_TOKEN ? 2 : row.szDecimals)}
+
+
+ {formatToken(row.available, row.coin === DEFAULT_QUOTE_TOKEN ? 2 : row.szDecimals)}
+
+
+ {row.inOrders > 0
+ ? formatToken(row.inOrders, row.coin === DEFAULT_QUOTE_TOKEN ? 2 : row.szDecimals)
+ : "—"}
+
+
+ {formatUSD(row.usdValue, { compact: true })}
+
+
+ ))}
+
+
+ );
+}
+
+function BalanceCard({ row }: { row: SpotRow }) {
+ const decimals = row.coin === DEFAULT_QUOTE_TOKEN ? 2 : row.szDecimals;
+
+ return (
+
+
+
+
{formatUSD(row.usdValue, { compact: true })}
+
+
+
+
+
+ 0 ? formatToken(row.inOrders, decimals) : "—"}
+ valueClass={row.inOrders > 0 ? "text-text-warning" : undefined}
+ />
+
+
+
+ );
+}
+
+interface MetricCellProps {
+ label: string;
+ value: string;
+ valueClass?: string;
+}
+
+function MetricCell({ label, value, valueClass }: MetricCellProps) {
+ return (
+
+ );
+}
diff --git a/apps/terminal/src/components/account/account-history.tsx b/apps/terminal/src/components/account/account-history.tsx
new file mode 100644
index 00000000..b806e500
--- /dev/null
+++ b/apps/terminal/src/components/account/account-history.tsx
@@ -0,0 +1,591 @@
+import { t } from "@lingui/core/macro";
+import { Trans } from "@lingui/react/macro";
+import type { UserNonFundingLedgerUpdatesResponse } from "@nktkas/hyperliquid";
+import {
+ ArrowSquareOutIcon,
+ ArrowsDownUpIcon,
+ ClockCounterClockwiseIcon,
+ DownloadSimpleIcon,
+ GavelIcon,
+ GiftIcon,
+ PaperPlaneTiltIcon,
+ UploadSimpleIcon,
+} from "@phosphor-icons/react";
+import { useState } from "react";
+import { AssetDisplay } from "@/components/trade/components/asset-display";
+import { ScrollArea, ScrollBar } from "@/components/ui/scroll-area";
+import { Skeleton } from "@/components/ui/skeleton";
+import { Table, TableBody, TableCell, TableHead, TableHeader, TableRow } from "@/components/ui/table";
+import { Tabs, TabsContent, TabsContentGroup, TabsList, TabsTrigger } from "@/components/ui/tabs";
+import { cn } from "@/lib/cn";
+import { getExplorerTxUrl } from "@/lib/explorer";
+import { formatDateTimeShort, formatNumber, formatPercent, formatToken, formatUSD } from "@/lib/format";
+import { useMarkets } from "@/lib/hyperliquid";
+import { useInfoHistoricalOrders } from "@/lib/hyperliquid/hooks/info/useInfoHistoricalOrders";
+import { useInfoUserFillsByTime } from "@/lib/hyperliquid/hooks/info/useInfoUserFillsByTime";
+import { useInfoUserFunding } from "@/lib/hyperliquid/hooks/info/useInfoUserFunding";
+import { useInfoUserNonFundingLedgerUpdates } from "@/lib/hyperliquid/hooks/info/useInfoUserNonFundingLedgerUpdates";
+import { getValueColorClass, toNumber, toNumberOrZero } from "@/lib/trade/numbers";
+import { getSideClass, getSideLabel } from "@/lib/trade/open-orders";
+
+type TimeRange = "1d" | "7d" | "30d" | "all";
+
+const TIME_RANGES: Array<{ value: TimeRange; label: string }> = [
+ { value: "1d", label: "1D" },
+ { value: "7d", label: "7D" },
+ { value: "30d", label: "30D" },
+ { value: "all", label: "All" },
+];
+
+function getStartTime(range: TimeRange): number | undefined {
+ if (range === "all") return undefined;
+ const ms = { "1d": 86400000, "7d": 604800000, "30d": 2592000000 }[range];
+ return Date.now() - ms;
+}
+
+interface Props {
+ address: string;
+}
+
+export function AccountHistory({ address }: Props) {
+ const [tab, setTab] = useState("trades");
+
+ return (
+
+
+
+
+ Trades
+
+
+ Funding
+
+
+ Orders
+
+
+ Ledger
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ );
+}
+
+function TimeRangeSelector({ value, onChange }: { value: TimeRange; onChange: (v: TimeRange) => void }) {
+ return (
+
+ {TIME_RANGES.map((r) => (
+ onChange(r.value)}
+ className={cn(
+ "px-2 py-0.5 rounded-xs text-3xs font-medium transition-colors",
+ value === r.value
+ ? "bg-fill-brand-strong text-text-inverse-strong"
+ : "text-text-weak hover:text-text-strong hover:bg-bg-alternate",
+ )}
+ >
+ {r.label}
+
+ ))}
+
+ );
+}
+
+function LoadingSkeleton() {
+ return (
+
+
+
+
+
+
+ );
+}
+
+function EmptyState({ message }: { message: string }) {
+ return (
+
+
+ {message}
+
+ );
+}
+
+const HEAD_CLASS = "text-3xs font-medium uppercase text-text-weak h-7";
+const CELL_CLASS = "text-xs py-1.5";
+
+function ExplorerLink({ hash, time }: { hash: string; time: number }) {
+ const url = getExplorerTxUrl(hash);
+ if (!url) return {formatDateTimeShort(time)} ;
+
+ return (
+
+ {formatDateTimeShort(time)}
+
+
+ );
+}
+
+function TradesTab({ address }: { address: string }) {
+ const [range, setRange] = useState("7d");
+ const startTime = getStartTime(range);
+ const markets = useMarkets();
+
+ const { data, isLoading } = useInfoUserFillsByTime({
+ user: address,
+ startTime,
+ aggregateByTime: true,
+ });
+
+ const fills = data?.slice().sort((a, b) => b.time - a.time) ?? [];
+
+ return (
+
+
+
+ {fills.length} {t`trades`}
+
+
+
+ {isLoading ? (
+
+ ) : fills.length === 0 ? (
+
+ ) : (
+
+
+
+
+ {t`Asset`}
+ {t`Side`}
+ {t`Price`}
+ {t`Size`}
+ {t`Fee`}
+ {t`PNL`}
+ {t`Time`}
+
+
+
+ {fills.map((fill, i) => {
+ const fee = toNumber(fill.fee);
+ const closedPnl = toNumber(fill.closedPnl);
+ const showPnl = closedPnl !== null && closedPnl !== 0;
+
+ return (
+
+
+
+
+
+
+ {fill.liquidation ? t`Liquidated` : fill.dir}
+
+
+ {formatUSD(fill.px)}
+
+ {formatNumber(fill.sz, markets.getSzDecimals(fill.coin))}
+
+
+
+ {formatToken(fill.fee, { symbol: fill.feeToken })}
+
+
+
+ {showPnl ? (
+
+ {formatUSD(closedPnl, { signDisplay: "exceptZero" })}
+
+ ) : (
+ —
+ )}
+
+
+
+
+
+ );
+ })}
+
+
+
+
+ )}
+
+ );
+}
+
+function FundingTab({ address }: { address: string }) {
+ const [range, setRange] = useState("7d");
+ const startTime = getStartTime(range);
+ const markets = useMarkets();
+
+ const { data, isLoading } = useInfoUserFunding({
+ user: address,
+ startTime,
+ });
+
+ const entries = data?.slice().sort((a, b) => b.time - a.time) ?? [];
+ const totalFunding = entries.reduce((acc, f) => acc + toNumberOrZero(f.delta.usdc), 0);
+
+ return (
+
+
+
+ {entries.length} {t`payments`}
+ {entries.length > 0 && (
+
+ {formatUSD(totalFunding, { signDisplay: "exceptZero" })}
+
+ )}
+
+
+
+ {isLoading ? (
+
+ ) : entries.length === 0 ? (
+
+ ) : (
+
+
+
+
+ {t`Asset`}
+ {t`Position`}
+ {t`Rate`}
+ {t`Payment`}
+ {t`Time`}
+
+
+
+ {entries.map((entry, i) => {
+ const { delta } = entry;
+ const market = markets.getMarket(delta.coin);
+ const szi = toNumber(delta.szi);
+ const rate = toNumber(delta.fundingRate);
+ const usdc = toNumber(delta.usdc);
+ const positionSize = szi !== null ? Math.abs(szi) : null;
+
+ return (
+
+
+
+
+
+ {formatToken(positionSize, {
+ decimals: market?.szDecimals,
+ symbol: market?.shortName,
+ })}
+
+
+
+ {formatPercent(rate, {
+ minimumFractionDigits: 4,
+ maximumFractionDigits: 4,
+ })}
+
+
+
+ {formatUSD(usdc, { signDisplay: "exceptZero" })}
+
+
+
+
+
+ );
+ })}
+
+
+
+
+ )}
+
+ );
+}
+
+function OrdersTab({ address }: { address: string }) {
+ const markets = useMarkets();
+
+ const { data, isLoading } = useInfoHistoricalOrders({ user: address });
+
+ const orders =
+ data
+ ?.slice()
+ .sort((a, b) => b.statusTimestamp - a.statusTimestamp)
+ .slice(0, 200) ?? [];
+
+ return (
+
+
+
+ {orders.length} {t`orders`}
+
+
+ {isLoading ? (
+
+ ) : orders.length === 0 ? (
+
+ ) : (
+
+
+
+
+ {t`Asset`}
+ {t`Type`}
+ {t`Price`}
+ {t`Size`}
+ {t`Status`}
+ {t`Time`}
+
+
+
+ {orders.map((entry, i) => {
+ const { order } = entry;
+ const market = markets.getMarket(order.coin);
+
+ return (
+
+
+
+
+
+ {getSideLabel(order.side, market?.kind)}
+
+
+
+ {order.orderType}
+
+ {formatUSD(order.limitPx, { compact: false })}
+
+
+ {formatToken(order.origSz, market?.szDecimals)}
+
+
+
+
+
+ {formatDateTimeShort(entry.statusTimestamp)}
+
+
+ );
+ })}
+
+
+
+
+ )}
+
+ );
+}
+
+function OrderStatusBadge({ status }: { status: string }) {
+ const colorClass =
+ status === "filled"
+ ? "text-market-up bg-fill-success-weak"
+ : status === "open" || status === "triggered"
+ ? "text-text-brand bg-fill-brand-weak"
+ : "text-text-weak bg-bg-alternate/50";
+
+ return {status} ;
+}
+
+const LEDGER_TYPE_CONFIG: Record = {
+ deposit: { label: "Deposit", icon: DownloadSimpleIcon, colorClass: "text-market-up" },
+ withdraw: { label: "Withdraw", icon: UploadSimpleIcon, colorClass: "text-market-down" },
+ accountClassTransfer: { label: "Transfer", icon: ArrowsDownUpIcon, colorClass: "text-text-brand" },
+ internalTransfer: { label: "Transfer", icon: PaperPlaneTiltIcon, colorClass: "text-text-brand" },
+ liquidation: { label: "Liquidation", icon: GavelIcon, colorClass: "text-market-down" },
+ rewardsClaim: { label: "Reward", icon: GiftIcon, colorClass: "text-market-up" },
+ spotTransfer: { label: "Spot Transfer", icon: PaperPlaneTiltIcon, colorClass: "text-text-brand" },
+ subAccountTransfer: { label: "Sub Transfer", icon: ArrowsDownUpIcon, colorClass: "text-text-brand" },
+ send: { label: "Send", icon: PaperPlaneTiltIcon, colorClass: "text-market-down" },
+};
+
+type LedgerDelta = UserNonFundingLedgerUpdatesResponse[number]["delta"];
+
+function getLedgerAmount(delta: LedgerDelta): string | null {
+ switch (delta.type) {
+ case "deposit":
+ case "withdraw":
+ case "accountClassTransfer":
+ case "internalTransfer":
+ case "subAccountTransfer":
+ case "vaultCreate":
+ case "vaultDeposit":
+ case "vaultDistribution":
+ return delta.usdc;
+ case "rewardsClaim":
+ case "spotTransfer":
+ case "send":
+ case "deployGasAuction":
+ case "cStakingTransfer":
+ case "borrowLend":
+ case "spotGenesis":
+ case "activateDexAbstraction":
+ return delta.amount;
+ case "liquidation":
+ return delta.liquidatedNtlPos;
+ case "vaultWithdraw":
+ return delta.netWithdrawnUsd;
+ }
+}
+
+function getLedgerToken(delta: LedgerDelta): string {
+ if ("token" in delta && typeof delta.token === "string") return delta.token;
+ return "USDC";
+}
+
+function LedgerTab({ address }: { address: string }) {
+ const [range, setRange] = useState("30d");
+ const startTime = getStartTime(range);
+
+ const { data, isLoading } = useInfoUserNonFundingLedgerUpdates({
+ user: address,
+ startTime,
+ });
+
+ const entries = data?.slice().sort((a, b) => b.time - a.time) ?? [];
+
+ return (
+
+
+
+ {entries.length} {t`entries`}
+
+
+
+ {isLoading ? (
+
+ ) : entries.length === 0 ? (
+
+ ) : (
+
+
+
+
+ {t`Type`}
+ {t`Amount`}
+ {t`Details`}
+ {t`Time`}
+
+
+
+ {entries.map((entry, i) => {
+ const config = LEDGER_TYPE_CONFIG[entry.delta.type];
+ const Icon = config?.icon ?? ClockCounterClockwiseIcon;
+ const label = config?.label ?? entry.delta.type;
+ const colorClass = config?.colorClass ?? "text-text-weak";
+ const amount = getLedgerAmount(entry.delta);
+ const token = getLedgerToken(entry.delta);
+
+ return (
+
+
+
+
+ {label}
+
+
+
+ {amount !== null ? (
+
+ {token === "USDC"
+ ? formatUSD(amount, { signDisplay: "exceptZero" })
+ : formatToken(amount, { symbol: token })}
+
+ ) : (
+ —
+ )}
+
+
+
+
+
+
+
+
+ );
+ })}
+
+
+
+
+ )}
+
+ );
+}
+
+function LedgerDetails({ delta }: { delta: LedgerDelta }) {
+ switch (delta.type) {
+ case "accountClassTransfer":
+ return {delta.toPerp ? t`Spot → Perp` : t`Perp → Spot`} ;
+ case "internalTransfer":
+ case "send":
+ case "spotTransfer":
+ case "subAccountTransfer": {
+ const dest = delta.destination;
+ return (
+
+ → {dest.slice(0, 6)}...{dest.slice(-4)}
+
+ );
+ }
+ case "liquidation": {
+ const coins = delta.liquidatedPositions.map((p) => p.coin).join(", ");
+ return (
+
+ {delta.leverageType} · {coins}
+
+ );
+ }
+ case "rewardsClaim":
+ return {delta.token} ;
+ case "withdraw":
+ return (
+
+ {t`Fee`}: {formatUSD(delta.fee)}
+
+ );
+ default:
+ return null;
+ }
+}
diff --git a/apps/terminal/src/components/account/account-leverage-settings.tsx b/apps/terminal/src/components/account/account-leverage-settings.tsx
new file mode 100644
index 00000000..c6f8a306
--- /dev/null
+++ b/apps/terminal/src/components/account/account-leverage-settings.tsx
@@ -0,0 +1,346 @@
+import { t } from "@lingui/core/macro";
+import { Trans } from "@lingui/react/macro";
+import { GearSixIcon, PencilSimpleIcon, SpinnerGapIcon } from "@phosphor-icons/react";
+import { useState } from "react";
+import { toast } from "sonner";
+import { useConnection } from "wagmi";
+import { Badge } from "@/components/ui/badge";
+import { Button } from "@/components/ui/button";
+import { NumberInput } from "@/components/ui/number-input";
+import { Popover, PopoverContent, PopoverTrigger } from "@/components/ui/popover";
+import { Sheet, SheetContent } from "@/components/ui/sheet";
+import { Skeleton } from "@/components/ui/skeleton";
+import { useIsMobile } from "@/hooks/use-mobile";
+import { cn } from "@/lib/cn";
+import { useMarkets, useUserPositions } from "@/lib/hyperliquid";
+import type { Position } from "@/lib/hyperliquid/account/use-user-positions";
+import { useExchangeUpdateLeverage } from "@/lib/hyperliquid/hooks/exchange/useExchangeUpdateLeverage";
+import type { MarginMode } from "@/lib/trade/margin-mode";
+import { AssetDisplay } from "../trade/components/asset-display";
+import { LeverageSlider } from "../trade/tradebox/leverage-slider";
+
+export function AccountLeverageSettings() {
+ const { isConnected } = useConnection();
+ const { positions, isLoading } = useUserPositions();
+ const isMobile = useIsMobile();
+
+ if (!isConnected) return null;
+
+ if (isLoading) {
+ return (
+
+ );
+ }
+
+ if (positions.length === 0) {
+ return (
+
+
+
+ No open positions. Leverage settings appear here when you have active positions.
+
+
+ );
+ }
+
+ return (
+
+
+ {isMobile ? (
+
+ {positions.map((p) => (
+
+ ))}
+
+ ) : (
+
+ {positions.map((p) => (
+
+ ))}
+
+ )}
+
+ );
+}
+
+function Section({ children }: { children: React.ReactNode }) {
+ return {children}
;
+}
+
+function SectionHeader() {
+ return (
+
+
+
+ Leverage Settings
+
+
+ );
+}
+
+function LeverageRow({ position }: { position: Position }) {
+ const isMobile = useIsMobile();
+ const markets = useMarkets();
+ const [open, setOpen] = useState(false);
+
+ const currentLeverage = position.leverage.value;
+ const marginMode = position.leverage.type as MarginMode;
+ const maxLeverage = position.maxLeverage;
+ const assetId = markets.getAssetId(position.coin);
+
+ const content = (
+
+
+
+ {currentLeverage}×
+
+ {marginMode === "isolated" ? t`Isolated` : t`Cross`}
+
+
+
+
+ );
+
+ return content;
+}
+
+interface EditTriggerProps {
+ open: boolean;
+ onOpenChange: (open: boolean) => void;
+ position: Position;
+ assetId: number | undefined;
+ maxLeverage: number;
+ currentLeverage: number;
+ marginMode: MarginMode;
+ isMobile: boolean;
+}
+
+function EditTrigger({
+ open,
+ onOpenChange,
+ position,
+ assetId,
+ maxLeverage,
+ currentLeverage,
+ marginMode,
+ isMobile,
+}: EditTriggerProps) {
+ const editor = (
+ onOpenChange(false)}
+ compact={!isMobile}
+ />
+ );
+
+ if (isMobile) {
+ return (
+ <>
+ onOpenChange(true)} aria-label={t`Edit leverage`}>
+
+
+
+
+
+ {editor}
+
+
+ >
+ );
+ }
+
+ return (
+
+ (
+
+
+
+ )}
+ />
+
+ {editor}
+
+
+ );
+}
+
+interface LeverageEditorInlineProps {
+ coin: string;
+ assetId: number | undefined;
+ maxLeverage: number;
+ currentLeverage: number;
+ marginMode: MarginMode;
+ hasPosition: boolean;
+ onClose: () => void;
+ compact: boolean;
+}
+
+function LeverageEditorInline({
+ coin,
+ assetId,
+ maxLeverage,
+ currentLeverage,
+ marginMode,
+ hasPosition,
+ onClose,
+ compact,
+}: LeverageEditorInlineProps) {
+ const [pendingLeverage, setPendingLeverage] = useState(currentLeverage);
+ const [inputValue, setInputValue] = useState(String(currentLeverage));
+ const { mutateAsync: updateLeverage, isPending, error, reset: resetMutation } = useExchangeUpdateLeverage();
+
+ const isDirty = pendingLeverage !== currentLeverage;
+
+ function handleSliderChange(value: number) {
+ const clamped = Math.max(1, Math.min(value, maxLeverage));
+ setPendingLeverage(clamped);
+ setInputValue(String(clamped));
+ resetMutation();
+ }
+
+ function handleInputChange(e: React.ChangeEvent) {
+ const raw = e.target.value;
+ setInputValue(raw);
+ const num = Number.parseInt(raw, 10);
+ if (!Number.isNaN(num) && num >= 1 && num <= maxLeverage) {
+ setPendingLeverage(num);
+ resetMutation();
+ }
+ }
+
+ function handleInputBlur() {
+ const num = Number.parseInt(inputValue, 10);
+ if (Number.isNaN(num) || num < 1) {
+ setPendingLeverage(1);
+ setInputValue("1");
+ } else if (num > maxLeverage) {
+ setPendingLeverage(maxLeverage);
+ setInputValue(String(maxLeverage));
+ }
+ }
+
+ async function handleConfirm() {
+ if (typeof assetId !== "number") return;
+
+ try {
+ await updateLeverage({
+ asset: assetId,
+ isCross: marginMode === "cross",
+ leverage: pendingLeverage,
+ });
+ toast.success(t`Leverage updated to ${pendingLeverage}× for ${coin}`);
+ onClose();
+ } catch (err) {
+ toast.error(err instanceof Error ? err.message : t`Failed to update leverage`);
+ }
+ }
+
+ async function handleSwitchMode() {
+ if (typeof assetId !== "number") return;
+
+ const newMode: MarginMode = marginMode === "cross" ? "isolated" : "cross";
+
+ if (newMode === "isolated" && hasPosition) {
+ toast.error(t`Cannot switch to isolated mode with an open position`);
+ return;
+ }
+
+ try {
+ await updateLeverage({
+ asset: assetId,
+ isCross: newMode === "cross",
+ leverage: currentLeverage,
+ });
+ toast.success(t`Margin mode switched to ${newMode === "cross" ? t`Cross` : t`Isolated`} for ${coin}`);
+ onClose();
+ } catch (err) {
+ toast.error(err instanceof Error ? err.message : t`Failed to switch margin mode`);
+ }
+ }
+
+ const iconSize = compact ? "size-3" : "size-4";
+
+ return (
+
+
+
+ Leverage
+
+
+
+ x
+
+
+
+
+
+
+
+ Margin Mode
+
+
+ {isPending && }
+ {marginMode === "cross" ? t`Cross → Isolated` : t`Isolated → Cross`}
+
+
+
+ {error && (
+
+
+ {error instanceof Error ? error.message : t`Update failed`}
+
+
+ )}
+
+
+ {isPending && }
+ Confirm
+
+
+ );
+}
diff --git a/apps/terminal/src/components/account/account-page.tsx b/apps/terminal/src/components/account/account-page.tsx
new file mode 100644
index 00000000..a047ecec
--- /dev/null
+++ b/apps/terminal/src/components/account/account-page.tsx
@@ -0,0 +1,374 @@
+import { Button, Tabs, TabsContent, TabsList, TabsTrigger } from "@hypeterminal/ui";
+import { t } from "@lingui/core/macro";
+import { Trans } from "@lingui/react/macro";
+import {
+ ArrowsDownUpIcon,
+ ArrowsLeftRightIcon,
+ DownloadSimpleIcon,
+ PaperPlaneTiltIcon,
+ UploadSimpleIcon,
+ WalletIcon,
+} from "@phosphor-icons/react";
+import { Skeleton } from "boneyard-js/react";
+import { Suspense, useState } from "react";
+import { useConnection } from "wagmi";
+import { AccountBalances } from "@/components/account/account-balances";
+import { AccountHistory } from "@/components/account/account-history";
+import { AccountLeverageSettings } from "@/components/account/account-leverage-settings";
+import { AccountPnlChart } from "@/components/account/account-pnl-chart";
+import { AccountPositions } from "@/components/account/account-positions";
+import { WalletModal } from "@/components/trade/components/wallet-modal";
+import { TopNav } from "@/components/trade/header/top-nav";
+import { TestnetBanner } from "@/components/trade/testnet-banner";
+import { InfoRow, InfoRowGroup } from "@/components/ui/info-row";
+import { DEFAULT_QUOTE_TOKEN } from "@/config/constants";
+import { useAccountBalances } from "@/hooks/trade/use-account-balances";
+import { useIsMobile } from "@/hooks/use-mobile";
+import { cn } from "@/lib/cn";
+import { formatPercent, formatToken, formatUSD } from "@/lib/format";
+import { useUserPositions } from "@/lib/hyperliquid";
+import { createLazyComponent } from "@/lib/lazy";
+import { getValueColorClass, toNumberOrZero } from "@/lib/trade/numbers";
+import { useDepositModalActions } from "@/stores/use-global-modal-store";
+import { useIsTestnet } from "@/stores/use-global-settings-store";
+
+const TransferModal = createLazyComponent(() => import("@/components/trade/positions/transfer-modal"), "TransferModal");
+const SendModal = createLazyComponent(() => import("@/components/trade/positions/send-modal"), "SendModal");
+const GlobalModals = createLazyComponent(() => import("@/components/trade/components/global-modals"), "GlobalModals");
+
+export function AccountPage() {
+ const isMobile = useIsMobile();
+ const isTestnet = useIsTestnet();
+
+ return (
+ <>
+
+
+
+
+ >
+ );
+}
+
+function AccountContent() {
+ const { address, isConnected } = useConnection();
+ const [walletModalOpen, setWalletModalOpen] = useState(false);
+
+ if (!isConnected) {
+ return (
+ <>
+
+
+
+
+
+
+ Connect Wallet
+
+
+ Connect your wallet to view your account overview, positions, and history.
+
+
+
setWalletModalOpen(true)}>
+ Connect Wallet
+
+
+
+ >
+ );
+ }
+
+ return ;
+}
+
+function ConnectedAccountView({ address }: { address: string }) {
+ const { perpSummary, perpPositions, spotBalances, isLoading } = useAccountBalances();
+ const { withdrawable } = useUserPositions();
+ const { open: openDepositModal } = useDepositModalActions();
+ const isMobile = useIsMobile();
+
+ const [transferOpen, setTransferOpen] = useState(false);
+ const [sendOpen, setSendOpen] = useState(false);
+ const [equityTab, setEquityTab] = useState("perps");
+
+ const accountValue = toNumberOrZero(perpSummary?.accountValue);
+ const totalMarginUsed = toNumberOrZero(perpSummary?.totalMarginUsed);
+ const totalNtlPos = toNumberOrZero(perpSummary?.totalNtlPos);
+ const totalRawUsd = toNumberOrZero(perpSummary?.totalRawUsd);
+ const withdrawableNum = toNumberOrZero(withdrawable);
+
+ const availableBalance = Math.max(0, accountValue - totalMarginUsed);
+ const marginRatio = accountValue > 0 ? totalMarginUsed / accountValue : 0;
+ const crossLeverage = accountValue > 0 ? Math.abs(totalNtlPos) / accountValue : 0;
+
+ let unrealizedPnl = 0;
+ for (const pos of perpPositions) {
+ unrealizedPnl += toNumberOrZero(pos.position.unrealizedPnl);
+ }
+
+ let spotTotalValue = 0;
+ for (const b of spotBalances) {
+ const total = toNumberOrZero(b.total);
+ if (total === 0) continue;
+ spotTotalValue += b.coin === DEFAULT_QUOTE_TOKEN ? total : toNumberOrZero(b.entryNtl);
+ }
+
+ const totalEquity = accountValue + spotTotalValue;
+
+ const marginRatioPercent = marginRatio * 100;
+ const marginBarColor =
+ marginRatioPercent > 80 ? "bg-market-down" : marginRatioPercent > 50 ? "bg-fill-warning-strong" : "bg-market-up";
+
+ return (
+
+
+
+ Account
+
+
+ {address.slice(0, 6)}...{address.slice(-4)}
+
+
+
+
+ {isLoading ? (
+
+
+
+
+
+ ) : (
+
+
+
+ Total Equity
+
+
{formatUSD(totalEquity)}
+
+
+ Perps
+
+ {formatUSD(accountValue)}
+
+ Spot
+
+ {formatUSD(spotTotalValue)}
+
+
+
+
+ Unrealized PNL
+
+
+ {formatUSD(unrealizedPnl, { signDisplay: "exceptZero" })}
+
+
+
+ )}
+
+
+
+
+
+
+
+
+ Perps
+
+
+ Spot
+
+
+
+
+
+
+
+
+
openDepositModal("deposit")}>
+
+ Deposit
+
+
openDepositModal("withdraw")}>
+
+ Withdraw
+
+
openDepositModal("bridge")}>
+
+ Bridge
+
+
setTransferOpen(true)}>
+
+ Transfer
+
+
setSendOpen(true)}>
+
+ Send
+
+
+
+
+
+
+
+
+
+
+
+
+
+ );
+}
+
+interface PerpMetricsProps {
+ isLoading: boolean;
+ balance: number;
+ unrealizedPnl: number;
+ availableBalance: number;
+ totalMarginUsed: number;
+ marginRatio: number;
+ marginBarColor: string;
+ crossLeverage: number;
+ withdrawable: number;
+}
+
+function PerpMetrics({
+ isLoading,
+ balance,
+ unrealizedPnl,
+ availableBalance,
+ totalMarginUsed,
+ marginRatio,
+ marginBarColor,
+ crossLeverage,
+ withdrawable,
+}: PerpMetricsProps) {
+ if (isLoading) {
+ return (
+
+
+
+
+
+
+
+
+ );
+ }
+
+ return (
+
+
+
+
+
+
+
+
+
+ );
+}
+
+interface SpotMetricsProps {
+ isLoading: boolean;
+ spotBalances: ReturnType["spotBalances"];
+}
+
+function SpotMetrics({ isLoading, spotBalances }: SpotMetricsProps) {
+ if (isLoading) {
+ return (
+
+
+
+
+
+
+ );
+ }
+
+ let totalValue = 0;
+ let availableValue = 0;
+ let inOrderValue = 0;
+ const tokens: Array<{ coin: string; total: number; available: number; usdValue: number }> = [];
+
+ for (const b of spotBalances) {
+ const total = toNumberOrZero(b.total);
+ const hold = toNumberOrZero(b.hold);
+ const entryNtl = toNumberOrZero(b.entryNtl);
+
+ if (total === 0) continue;
+
+ const available = Math.max(0, total - hold);
+ const usdValue = b.coin === DEFAULT_QUOTE_TOKEN ? total : entryNtl;
+
+ totalValue += usdValue;
+ availableValue += b.coin === DEFAULT_QUOTE_TOKEN ? available : (available / total) * usdValue;
+ inOrderValue += b.coin === DEFAULT_QUOTE_TOKEN ? hold : (hold / total) * usdValue;
+
+ tokens.push({ coin: b.coin, total, available, usdValue });
+ }
+
+ tokens.sort((a, b) => b.usdValue - a.usdValue);
+
+ return (
+
+
+
+
+
+ {tokens.slice(0, 5).map((token) => (
+
+ ))}
+
+ );
+}
diff --git a/apps/terminal/src/components/account/account-pnl-chart.tsx b/apps/terminal/src/components/account/account-pnl-chart.tsx
new file mode 100644
index 00000000..c309b875
--- /dev/null
+++ b/apps/terminal/src/components/account/account-pnl-chart.tsx
@@ -0,0 +1,20 @@
+import { Trans } from "@lingui/react/macro";
+import { ChartLineUpIcon } from "@phosphor-icons/react";
+
+export function AccountPnlChart() {
+ return (
+
+
+
+ Portfolio PNL
+
+
+
+
+
+ Coming soon
+
+
+
+ );
+}
diff --git a/apps/terminal/src/components/account/account-positions.tsx b/apps/terminal/src/components/account/account-positions.tsx
new file mode 100644
index 00000000..4575864c
--- /dev/null
+++ b/apps/terminal/src/components/account/account-positions.tsx
@@ -0,0 +1,291 @@
+import { Table, TableBody, TableCell, TableHead, TableHeader, TableRow } from "@hypeterminal/ui";
+import { t } from "@lingui/core/macro";
+import { Trans } from "@lingui/react/macro";
+import { ListChecksIcon, WarningIcon } from "@phosphor-icons/react";
+import { Skeleton } from "boneyard-js/react";
+import { useConnection } from "wagmi";
+import { HL_ALL_DEXS } from "@/config/constants";
+import { useIsMobile } from "@/hooks/use-mobile";
+import { cn } from "@/lib/cn";
+import { formatPercent, formatPrice, formatToken, formatUSD } from "@/lib/format";
+import { type Position, useMarkets, useUserPositions } from "@/lib/hyperliquid";
+import { useSubAllMids } from "@/lib/hyperliquid/hooks/subscription";
+import type { Markets } from "@/lib/hyperliquid/markets";
+import { getValueColorClass, toBig } from "@/lib/trade/numbers";
+import { AssetDisplay } from "../trade/components/asset-display";
+
+export function AccountPositions() {
+ const { isConnected } = useConnection();
+ const { positions, isLoading, hasError } = useUserPositions();
+ const markets = useMarkets();
+ const isMobile = useIsMobile();
+
+ const allMidsEnabled = isConnected && positions.length > 0;
+ const { data: allMidsEvent } = useSubAllMids({ dex: HL_ALL_DEXS }, { enabled: allMidsEnabled });
+ const mids = allMidsEvent?.mids;
+
+ if (!isConnected) return null;
+
+ if (isLoading) {
+ return (
+
+ );
+ }
+
+ if (hasError) {
+ return (
+
+
+
+ Failed to load positions.
+
+
+ );
+ }
+
+ if (positions.length === 0) {
+ return (
+
+
+
+ No open positions.
+
+
+ );
+ }
+
+ return (
+
+
+ {isMobile ? (
+
+ {positions.map((p) => (
+
+ ))}
+
+ ) : (
+
+ )}
+
+ );
+}
+
+function Section({ children }: { children: React.ReactNode }) {
+ return {children}
;
+}
+
+function SectionHeader({ count }: { count: number | null }) {
+ return (
+
+
+
+ Open Positions
+
+ {count !== null && {count} }
+
+ );
+}
+
+interface PositionsTableProps {
+ positions: Position[];
+ markets: Markets;
+ mids: Record | undefined;
+}
+
+function PositionsTable({ positions, markets, mids }: PositionsTableProps) {
+ return (
+
+
+
+ {t`Asset`}
+ {t`Size`}
+ {t`Entry`}
+ {t`Mark`}
+ {t`PNL`}
+ {t`Leverage`}
+ {t`Margin`}
+ {t`Liq Price`}
+
+
+
+ {positions.map((p, i) => (
+
+ ))}
+
+
+ );
+}
+
+interface PositionRowProps {
+ position: Position;
+ markets: Markets;
+ markPx: string | undefined;
+ isEven: boolean;
+}
+
+function PositionTableRow({ position: p, markets, markPx: markPxRaw, isEven }: PositionRowProps) {
+ const size = toBig(p.szi)?.toNumber() ?? Number.NaN;
+ const isLong = size > 0;
+ const absSize = Math.abs(size);
+ const market = markets.getMarket(p.coin);
+ const szDecimals = market?.szDecimals ?? 4;
+ const markPx = toBig(markPxRaw)?.toNumber() ?? Number.NaN;
+ const entryPx = toBig(p.entryPx)?.toNumber() ?? Number.NaN;
+ const unrealizedPnl = toBig(p.unrealizedPnl)?.toNumber() ?? Number.NaN;
+ const liqPx = toBig(p.liquidationPx)?.toNumber();
+ const liqIsNear =
+ liqPx != null && Number.isFinite(markPx) && Number.isFinite(liqPx) && Math.abs(liqPx - markPx) / markPx <= 0.1;
+ const pnlClass = getValueColorClass(unrealizedPnl);
+ const leverageDisplay = `${p.leverage.value}×`;
+ const marginMode = p.leverage.type === "isolated" ? t`Isolated` : t`Cross`;
+
+ return (
+
+
+
+ {isLong ? t`Long` : t`Short`}
+
+ }
+ />
+
+
+
+ {formatToken(absSize, { decimals: szDecimals, symbol: p.coin })}
+ ({formatUSD(p.positionValue, { compact: true })})
+
+
+
+ {formatPrice(entryPx, { szDecimals })}
+
+ {formatPrice(markPx, { szDecimals })}
+
+
+ {formatUSD(unrealizedPnl, { signDisplay: "exceptZero" })}
+ ({formatPercent(p.returnOnEquity, 1)})
+
+
+
+
+ {leverageDisplay}
+ {marginMode}
+
+
+ {formatUSD(p.marginUsed)}
+
+
+ {liqIsNear && }
+ {formatPrice(p.liquidationPx, { szDecimals })}
+
+
+
+ );
+}
+
+interface PositionCardProps {
+ position: Position;
+ markets: Markets;
+ markPx: string | undefined;
+}
+
+function PositionCard({ position: p, markets, markPx: markPxRaw }: PositionCardProps) {
+ const size = toBig(p.szi)?.toNumber() ?? Number.NaN;
+ const isLong = size > 0;
+ const absSize = Math.abs(size);
+ const market = markets.getMarket(p.coin);
+ const szDecimals = market?.szDecimals ?? 4;
+ const markPx = toBig(markPxRaw)?.toNumber() ?? Number.NaN;
+ const entryPx = toBig(p.entryPx)?.toNumber() ?? Number.NaN;
+ const unrealizedPnl = toBig(p.unrealizedPnl)?.toNumber() ?? Number.NaN;
+ const liqPx = toBig(p.liquidationPx)?.toNumber();
+ const liqIsNear =
+ liqPx != null && Number.isFinite(markPx) && Number.isFinite(liqPx) && Math.abs(liqPx - markPx) / markPx <= 0.1;
+ const pnlClass = getValueColorClass(unrealizedPnl);
+ const leverageDisplay = `${p.leverage.value}×`;
+ const marginMode = p.leverage.type === "isolated" ? t`Isolated` : t`Cross`;
+
+ return (
+
+
+
+ {isLong ? t`Long` : t`Short`} · {leverageDisplay} {marginMode}
+
+ }
+ />
+
+
+ {formatUSD(unrealizedPnl, { signDisplay: "exceptZero" })}
+
+
{formatPercent(p.returnOnEquity, 1)}
+
+
+
+
+
+ );
+}
+
+interface MetricCellProps {
+ label: string;
+ value: string;
+ sub?: string;
+ valueClass?: string;
+ warning?: boolean;
+}
+
+function MetricCell({ label, value, sub, valueClass, warning }: MetricCellProps) {
+ return (
+
+
{label}
+
+ {warning && }
+ {value}
+
+ {sub &&
{sub}
}
+
+ );
+}
diff --git a/apps/terminal/src/components/trade/header/top-nav.tsx b/apps/terminal/src/components/trade/header/top-nav.tsx
index 2d143f10..5985e847 100644
--- a/apps/terminal/src/components/trade/header/top-nav.tsx
+++ b/apps/terminal/src/components/trade/header/top-nav.tsx
@@ -100,6 +100,12 @@ export function TopNav() {
))}
+
+ Account
+
{STATIC_NAV_ITEMS.map((item) => (
{children};
+}
diff --git a/apps/terminal/src/lib/hyperliquid/account/use-user-positions.ts b/apps/terminal/src/lib/hyperliquid/account/use-user-positions.ts
new file mode 100644
index 00000000..a1582b12
--- /dev/null
+++ b/apps/terminal/src/lib/hyperliquid/account/use-user-positions.ts
@@ -0,0 +1 @@
+export type { Position, UserPositions } from "@hypeterminal/hl-react";
diff --git a/apps/terminal/src/lib/hyperliquid/hooks/exchange/useExchangeUpdateLeverage.ts b/apps/terminal/src/lib/hyperliquid/hooks/exchange/useExchangeUpdateLeverage.ts
new file mode 100644
index 00000000..bd0708de
--- /dev/null
+++ b/apps/terminal/src/lib/hyperliquid/hooks/exchange/useExchangeUpdateLeverage.ts
@@ -0,0 +1,5 @@
+import { useExchange } from "@hypeterminal/hl-react";
+
+export function useExchangeUpdateLeverage() {
+ return useExchange("updateLeverage");
+}
diff --git a/apps/terminal/src/lib/hyperliquid/hooks/info/useInfoHistoricalOrders.ts b/apps/terminal/src/lib/hyperliquid/hooks/info/useInfoHistoricalOrders.ts
new file mode 100644
index 00000000..a5bbc77d
--- /dev/null
+++ b/apps/terminal/src/lib/hyperliquid/hooks/info/useInfoHistoricalOrders.ts
@@ -0,0 +1,5 @@
+import { type InfoParams, useInfo } from "@hypeterminal/hl-react";
+
+export function useInfoHistoricalOrders(params: InfoParams<"historicalOrders">) {
+ return useInfo("historicalOrders", params);
+}
diff --git a/apps/terminal/src/lib/hyperliquid/hooks/info/useInfoUserFillsByTime.ts b/apps/terminal/src/lib/hyperliquid/hooks/info/useInfoUserFillsByTime.ts
new file mode 100644
index 00000000..e45759ca
--- /dev/null
+++ b/apps/terminal/src/lib/hyperliquid/hooks/info/useInfoUserFillsByTime.ts
@@ -0,0 +1,5 @@
+import { type InfoParams, useInfo } from "@hypeterminal/hl-react";
+
+export function useInfoUserFillsByTime(params: InfoParams<"userFillsByTime">) {
+ return useInfo("userFillsByTime", params);
+}
diff --git a/apps/terminal/src/lib/hyperliquid/hooks/info/useInfoUserFunding.ts b/apps/terminal/src/lib/hyperliquid/hooks/info/useInfoUserFunding.ts
new file mode 100644
index 00000000..55586436
--- /dev/null
+++ b/apps/terminal/src/lib/hyperliquid/hooks/info/useInfoUserFunding.ts
@@ -0,0 +1,5 @@
+import { type InfoParams, useInfo } from "@hypeterminal/hl-react";
+
+export function useInfoUserFunding(params: InfoParams<"userFunding">) {
+ return useInfo("userFunding", params);
+}
diff --git a/apps/terminal/src/lib/hyperliquid/hooks/info/useInfoUserNonFundingLedgerUpdates.ts b/apps/terminal/src/lib/hyperliquid/hooks/info/useInfoUserNonFundingLedgerUpdates.ts
new file mode 100644
index 00000000..424c5755
--- /dev/null
+++ b/apps/terminal/src/lib/hyperliquid/hooks/info/useInfoUserNonFundingLedgerUpdates.ts
@@ -0,0 +1,5 @@
+import { type InfoParams, useInfo } from "@hypeterminal/hl-react";
+
+export function useInfoUserNonFundingLedgerUpdates(params: InfoParams<"userNonFundingLedgerUpdates">) {
+ return useInfo("userNonFundingLedgerUpdates", params);
+}
diff --git a/apps/terminal/src/lib/hyperliquid/hooks/subscription.ts b/apps/terminal/src/lib/hyperliquid/hooks/subscription.ts
new file mode 100644
index 00000000..aaebcc24
--- /dev/null
+++ b/apps/terminal/src/lib/hyperliquid/hooks/subscription.ts
@@ -0,0 +1,5 @@
+import { type SubscriptionOptions, useSubscription } from "@hypeterminal/hl-react";
+
+export function useSubAllMids(params: { dex?: string } | undefined, options?: SubscriptionOptions) {
+ return useSubscription("allMids", params, options);
+}
diff --git a/apps/terminal/src/locales/ar/messages.js b/apps/terminal/src/locales/ar/messages.js
index c9ea91df..2203771d 100644
--- a/apps/terminal/src/locales/ar/messages.js
+++ b/apps/terminal/src/locales/ar/messages.js
@@ -1,5 +1,5 @@
/*eslint-disable*/ module.exports = {
messages: JSON.parse(
- '{"++OGth":["Deposit successful"],"+1S7b1":["المحفظة غير متصلة"],"+6YAwo":["selected"],"+8WrGc":["لم يتم العثور على محافظ"],"+F8cLG":["يعرض الشريط الجانبي للجوال."],"+JE0m7":["فشل تحميل المراكز."],"+K0AvT":["قطع الاتصال"],"+N2Rqk":["لا توجد مراكز نشطة."],"+ONfBR":["PRICE"],"+ZV3i5":["فشل في تحميل الأوامر المفتوحة."],"+b7T3G":["Updated"],"+hA/UM":["الأوامر المفتوحة"],"+nuEh/":["Estimated time"],"+w/hP1":["إظهار التنفيذات على الرسم البياني"],"+xnyQO":["أدخل الحجم"],"+z3YcL":["Position actions"],"+zy2Nq":["النوع"],"/2hibY":["إلغاء المحدد"],"/AsMcZ":["Enabling..."],"/IX/7x":["Other"],"/PvdTS":["Gas (",["0"],")"],"/TT0Oq":["أوراكل"],"/cF7Rs":["الحجم"],"/gY2VH":["تصفية حسب ",["0"]],"/jQctM":["To"],"/kXBrK":["Total time"],"/mfICu":["Fees"],"/tPR7R":["Builder Fee"],"0+Iw6C":["Duration (Minutes)"],"0+X+sh":["Spot Account"],"0LZtsz":["Take Market"],"0Mx4+k":["No trading pair available for ",["fromTokenDisplay"],"/",["toTokenDisplay"]],"0P2gFy":["الصفحة التي تبحث عنها غير موجودة."],"0QDjxt":["Balance:"],"0RrIzN":["اختر الرمز"],"0Xlr0L":["Minimum deposit is ",["0"]," USDC"],"0exG4Q":["التمويل"],"0z59Ep":["بيع"],"1BkDWk":["شراء طويل"],"1QfxQT":["تجاهل"],"1UzENP":["No"],"1ZMjyh":["The builder at ",["0"],"...",["1"]," can now charge up to ",["maxFeeRate"],"% fee on orders placed on your behalf."],"1h+RBg":["Orders"],"1njn7W":["Light"],"29VNqC":["Unknown error"],"2Ea5Vz":["سجل التداول"],"2FYpfJ":["المزيد"],"2M2s7z":["تفعيل التداول"],"2PsTzL":["مكتمل"],"2tQrK2":["التبديل إلى Arbitrum"],"3/vMct":["A crypto wallet lets you store and manage your digital assets securely."],"30ZPad":["المراكز النشطة"],"3CHbH/":["SL Price"],"3DtJpz":["Stop Limit"],"3IkQgP":["Secure & Private"],"3Siwmw":["المزيد من الخيارات"],"3UZudY":["Stop trigger must be below mark"],"3fPjUY":["Pro"],"3oHIhx":["TP must be above entry"],"4+HkLv":["Show Values in Quote Asset"],"40lLFI":["الذهاب للصفحة التالية"],"42w2ly":["العقود المفتوحة"],"46Sm8O":["الغاز:"],"4HtGBb":["MAX"],"4J2s8f":["جارٍ الإلغاء..."],"4Kyst7":["Agent mode: Orders signed automatically (fast)"],"4NuBK4":["في انتظار الصفقات..."],"4Vzb+4":["جاري الإغلاق..."],"54QqdM":["جاري التوقيع..."],"5FsTU5":["عميل المحفظة غير جاهز"],"5Omwef":["Scale level below min notional"],"5joj8M":["Transaction breakdown"],"5oE2C+":["مرتب حسب ",["0"]],"5u8fWJ":["Back to asset selection"],"5xKxZd":["TP trigger price"],"5zbbOn":["Invalid amount"],"60m4P5":["24H VOL"],"621rYf":["الدفعة"],"63wHTy":["Edit TP/SL"],"69b7aE":["Open command menu"],"6Aih4U":["Offline"],"6gRgw8":["Retry"],"6jVqpA":["فشل في تحميل سجل التداول."],"6poLt9":["تبديل الشريط الجانبي"],"6vyJOd":["Deposit from any chain to your Hyperliquid account"],"6zAIUU":["Cannot switch to Isolated mode with an open position. Close your position first."],"72c5Qo":["الإجمالي"],"77Rx22":["طي لوحة الحساب"],"7L01XJ":["إجراءات"],"7Lv7j5":["Margin Mode"],"7VpPHA":["Confirm"],"7l15X4":["فشل"],"88cUW+":["You receive"],"8F1i42":["الصفحة غير موجودة"],"8Fu1E7":["تبديل وضع الحجم"],"8Itoo3":["Unrealized P&L"],"8LkAxv":["SL must be below entry"],"8SNccp":["Switch to ",["displayName"]," market, short position"],"8gcijf":["Insufficient <0/> balance"],"8hvfaA":["Position closed"],"8yhvii":["Mid"],"997z0L":["Spot: Max 1% (100 basis points)"],"9ACh/c":["لا يوجد سعر مرجعي"],"9SBcQj":["All cross positions share the same cross margin as collateral. In the event of liquidation, your cross margin balance and any remaining open positions may be forfeited."],"9lH5ev":["جارٍ تحميل الأوامر المفتوحة..."],"9mRTyg":["الكتلة:"],"9qnvU0":["Switch to ",["displayName"]," market"],"9ykF9H":["Hide small"],"9zb2WA":["Connecting"],"A+q/Is":["أسواق"],"A1taO8":["Search"],"AArF6S":["Move USDC between your Perp and Spot accounts."],"AEGM8s":["Failed to copy"],"AErIoZ":["Manage your risk on individual positions by restricting the amount of margin allocated to each. If the margin ratio of an isolated position reaches 100%, the position will be liquidated. Margin can be added or removed to individual positions in this mode."],"AGWjPT":["تعيين ",["p"],"%"],"AUYALh":["قريباً"],"AUahCv":["Insufficient funds for gas"],"AeXO77":["الحساب"],"B5AKvo":["السعر المرجعي"],"BOppjS":["لا يوجد سوق"],"BSj/hz":["إضافة أموال"],"BvlAGq":["الربح والخسارة غير المحققة"],"BxBZCk":["Each position uses only its allocated margin. If the margin ratio reaches 100%, the position is liquidated. Margin can be added or removed individually."],"C2TJN3":["جارٍ تحميل أوامر TWAP..."],"CF1zwJ":["فشل في تحميل سجل التمويل."],"CK1KXz":["الأقصى"],"CMHmbm":["الانزلاق"],"CP3D8G":["التقدم"],"CW11B+":["Minimum"],"CfRvLF":["Swap failed"],"CgqzuN":["متقاطع"],"Cj2Gtd":["الحجم"],"Cjh38d":["New to wallets?"],"Ck1xL4":["You send"],"Co8gGw":["No active TWAP orders."],"CtByM7":["ربط المحفظة"],"CzeOTH":["Wallet (",["0"],")"],"D243f/":["Install a wallet extension to continue"],"D6X5UU":["Market Close"],"DBVcOk":["More intervals"],"DHhJ7s":["السابق"],"DPfwMq":["Done"],"DWs3bP":["Mark:"],"DXxfpS":["اختر تجميع دفتر الأوامر"],"DZo9LT":["Mock Wallet (Testing)"],"DabQ8P":["أوامر TWAP"],"E8sxZm":["إظهار المراكز على الرسم البياني"],"EE/1QC":["Format for numbers and dates"],"ETkk6Z":["TOKEN"],"Enslfm":["Destination"],"F6pfE9":["نشط"],"FF5wYg":["تحديد جميع الأوامر"],"FKY8dA":["Est. P&L at Limit"],"FLNk0d":["Min order $",["ORDER_MIN_NOTIONAL_USD"]],"FLkCnQ":["You can revoke permissions at any time by registering a new approval with 0% fee rate. Builder codes are processed entirely onchain as part of the fee logic."],"FS+bo3":["تعذر إغلاق المركز."],"Fdp03t":["on"],"FmemI7":["FUNDING"],"FqmhBo":["No balance on Hyperliquid. Deposit first."],"FxVG/l":["Copied to clipboard"],"G3oEYi":["اختر الأمر"],"G6etJA":["جارٍ تحميل الأرصدة..."],"GINUX/":["Only you control your funds. No email or password required."],"GLWV4x":["Builder must have at least 100 USDC in perps account value"],"GX8GKD":["Assets"],"GbNWWs":["Slippage tolerance"],"H2Sfhg":["Trigger"],"HJlY85":["لا يوجد رصيد"],"HZN+sw":["Trading"],"HZdgTJ":["Select signing mode"],"HfT9T6":["No route available. Try a different amount or asset."],"Hp1l6f":["Current"],"I8LlJA":["TradingView"],"ICCWOn":["تعذر إنشاء المحفظة"],"IJfJAB":["Margin mode"],"IJndUb":["Connect your wallet to register a builder code"],"IV3hWp":["Enter trigger price"],"IZL9b6":["الرافعة المتقاطعة"],"IcSLiu":["Oracle"],"Ieh2cV":["توسيع لوحة الحساب"],"IoAuJG":["Sending..."],"IwI0rY":["Wrong network"],"IyNxxU":["دائم"],"J24FyN":["Bridge"],"J28zul":["جارٍ الاتصال..."],"JHxGP5":["تداول"],"JVvYNb":["Deposit complete"],"JXzPJX":["SL"],"JfWXib":["Track on LI.FI Explorer"],"JlFcis":["Send"],"Ju4B2M":["اختر الرافعة المالية"],"JuyzMZ":["Maximum slippage tolerance for market orders"],"KTNWsg":["Withdrawal failed"],"KYAjf3":["معزول"],"KZHfkR":["إيداع الأموال"],"KaqqlB":["إيداع في Hyperliquid"],"Ke6k18":["Leverage"],"KeDrPl":["Minimum deposit is 5 USDC"],"KnTbj2":["إظهار الأوامر على الرسم البياني"],"Kp3IPD":["No response from exchange"],"KsqhWn":["التخزين"],"KxF048":["خصص تجربة التداول الخاصة بك."],"Kz1TxG":["مفتوح"],"L+qiq+":["السوق"],"L4jnDP":["منفذ"],"LEbOpR":["More details"],"LHfqhz":["New deposit"],"LMMGPr":["Submitting..."],"Le70b5":["صفحات أخرى"],"LhMjLm":["الوقت"],"LlsvFY":["Reduce"],"Lx+htK":["Swap submitted"],"Lz5J1x":["Sort by ",["sortLabel"]],"M0biAV":["Preparing your quote..."],"M9fkA0":["Liquidated"],"MLQamJ":["اربط محفظتك لعرض سجل التداول."],"MSSmsu":["To Perp"],"MTq3hP":["24h vol"],"Mim7/r":["Insufficient ",["fromTokenDisplay"]," balance"],"MpLcsV":["Loading balances across all chains..."],"MqA4qt":["المحفظة"],"MyytBE":["Send tokens to another account on the Hyperliquid L1."],"N40H+G":["All"],"NIDWjN":["SL must be above entry"],"NJNMJX":["TWAP"],"NNJKWa":["Connect your wallet to withdraw funds"],"NQtgSJ":["Failed to register builder code"],"NpuiU+":["العقود الدائمة"],"NsJrqM":["السوق غير جاهز"],"ODVKKZ":["أدخل السعر المحدد"],"OQGH4C":["محدد تقليل فقط"],"OR475H":["Network"],"OSnZvX":["Change leverage"],"OYsSpP":["Failed to reverse position"],"OZtEcz":["API"],"Oe3M3Y":["Switch to Arbitrum to deposit USDC to Hyperliquid"],"Oid00w":["Enter price range"],"OsyKSt":["سحب"],"Otdc/Y":["قم بتوصيل محفظتك لعرض المراكز."],"OxPEUg":["قيد الاستخدام"],"PJEzIS":["Bridge to Hyperliquid"],"PLUB/s":["الرسوم"],"PNsB0A":["Fetching quote..."],"PTna/x":["العقود المفتوحة"],"PTyoXs":["Set SL to ",["p"],"%"],"PWRc/M":["Open positions count"],"PZBWpL":["التبديل إلى الوضع الفاتح"],"PaQ3df":["Enable"],"PcmIvv":["نقطة أساس"],"PeO4lq":["Requirements:"],"PelVTv":["Register Builder Code"],"PiH3UR":["Copied!"],"Pl9jiz":["Show Orders"],"QD2PKQ":["End Price"],"QHcLEN":["متصل"],"QjUEvK":["إلغاء الكل"],"R68yLX":["تعيين TP/SL"],"RRXpo1":["بيع"],"RaWC6b":["Size exceeds position"],"Rb1yph":["سعر التصفية"],"RnpwtT":["TWAP minutes must be ",["TWAP_MINUTES_MIN"],"-",["TWAP_MINUTES_MAX"]],"RoE+o+":["تقليل فقط"],"S33tz3":["غير متصل"],"S48xcO":["قيد الانتظار"],"S9zH+G":["This action must be signed by your main wallet (not an agent/API wallet). The builder must have at least 100 USDC in perps account value."],"SEDVHU":["جاري تحميل المراكز..."],"SEoDwA":["Take Limit"],"SJrFO1":["Position close actions"],"SVHeJc":["Direct mode: Sign each order with wallet"],"SWH2Eh":["Time in Force"],"SsGsC0":["إلغاء الأوامر المحددة"],"Svkela":["الذهاب للصفحة السابقة"],"T/pF0Z":["إزالة من المفضلة"],"TDa39c":["سعر 24 ساعة"],"THTG58":["Select asset to bridge"],"THmCgW":["Select market"],"TK3J5O":["Send Tokens"],"TK9uys":["اختر سوق ",["coin"]],"TLa4Oo":["قم بتوصيل المحفظة لإدارة المراكز."],"TNtZN2":["TP"],"TQ/QV5":["No trading pair available for ",["fromToken"],"/",["toToken"]],"TT0aVH":["Order submitted"],"TbjyhA":["المستندات"],"Tm8JF7":["Connect your wallet to bridge funds"],"Tuc34V":["Confirm Bridge"],"Tz0i8g":["الإعدادات"],"U3As+R":["Take Profit"],"U86eEA":["No user address"],"URvngU":["Est. time"],"UXtGFD":["Full Position"],"UwG7db":["What is a wallet?"],"V0ubMJ":["جني الأرباح / وقف الخسارة"],"V3XYw0":["P&L"],"V6ETmV":["To Spot"],"VAZUpd":["فشل الطلب"],"VIwCaD":["الدخول"],"VMLGYS":["Switch to Mainnet"],"VU5rsP":["Number Format"],"VXCk+w":["جارٍ تحميل الأسواق..."],"VYFX4v":["Perpetuals"],"VcaZ5z":["لم يتم العثور على أسواق."],"VgTxu0":["المُوقِّع غير جاهز"],"VmhkuH":["Account and wallet"],"W1k7eB":["24h"],"W75iLe":["اربط محفظتك لعرض الأرصدة."],"W9Fxbx":["SL trigger price"],"WISj7i":["Place Limit Close"],"WNMYIN":["ملغى"],"WajXzx":["Est. P&L"],"WhSRZw":["This row answers: “What is the selected market doing right now?” — mark price, 24h move, oracle, volume, open interest, and funding. Pick a layout that balances scan speed, density, and calm."],"Wqz0SO":["Low Balance"],"XCIAdj":["RO"],"XFp9Bf":["Scale levels must be ",["SCALE_LEVELS_MIN"],"-",["SCALE_LEVELS_MAX"]],"XYLcNv":["الدعم"],"XbxYxh":["Price grouping"],"Y1W9ip":["حقوق الملكية"],"Y9gMWT":["فشل في تحميل دفتر الأوامر."],"YZLEvW":["Processing deposit"],"YnKdJE":["الهامش المستخدم"],"YxaAON":["الفارق"],"Z3FXyt":["جارٍ التحميل..."],"ZB/Jm6":["Margin & leverage"],"ZDBdfg":["Enter TP or SL price"],"ZFtwlj":["الصفقات"],"ZHJZmo":["Amount (USDC)"],"ZYnwzF":["Disconnected"],"ZmGjjl":["Your bridge is still processing. Funds are safe."],"a/MzGi":["sent to Hyperliquid"],"a7u1N9":["السعر"],"a9q6hE":["waiting"],"aAIQg2":["Appearance"],"adcjkX":["Limit close order placed"],"axyo2z":["قم بربط المحفظة لإدارة الأوامر."],"b7Wduj":["شراء"],"bMJMhJ":["خطأ WebSocket"],"bSCsJh":["TP/SL"],"bUUVED":["الأصل"],"bVPv2S":["تحديث مباشر"],"bW1xET":["Stop trigger must be above mark"],"bifv6N":["Scale"],"bm80CF":["اربط محفظتك لعرض أوامر TWAP."],"c+VX3P":["Custom TP percentage"],"c+tzs5":["Sign in wallet..."],"c2npeq":["Custom SL percentage"],"cJzJWa":["Transfer failed"],"cXvnJ8":["انزلاق أمر السوق"],"csDS2L":["متاح"],"cwQAhE":["Failed to switch margin mode"],"d+F6q9":["Created"],"dEgA5A":["إلغاء"],"dQGImW":["أرصدة الحساب"],"daWrYT":["Agent verification failed"],"dcKNhk":["Taking longer than expected"],"dfIw2n":["القيمة بالدولار"],"dkzoLd":["جارٍ تحميل سجل التمويل..."],"doRJE6":["Set TP/SL for ",["0"]],"drvdT3":["Add TP/SL"],"e/cvV1":["جارٍ التحقق..."],"e/vgsz":["Total Value"],"e0bpdM":["رمز غير معروف: ",["symbolName"]],"e2oWGN":["No tokens with value found across supported chains"],"eXs0Bt":["البحث في الأسواق..."],"ebwNSs":["Remove ",["displayName"]," from favorites"],"eiZzfX":["Builder codes allow DeFi builders to receive a fee on fills they send on behalf of users. They are set per-order for maximal flexibility."],"ejVYRQ":["From"],"es+Zrf":["Transferring..."],"fBckrr":["دقة غير مدعومة: ",["0"]],"fEC2uI":["حول USDC إلى حساب Hyperliquid الخاص بك لبدء التداول."],"fOG42Y":["Connect your wallet to start trading on Hyperliquid"],"fVmG6b":["Failed to load balances"],"fYSYwH":["لا توجد أوامر مفتوحة."],"fYUNRJ":["Direct"],"fhqG7u":["Connected: ",["0"],"...",["1"]],"fqDzSu":["المعدل"],"fsBGk0":["الرصيد"],"g5PJI8":["OPEN INT"],"gIpxlQ":["Minimum withdrawal is $",["MIN_WITHDRAW_USD"]],"gL/sdV":["Popular"],"gMHkDJ":["فشل في تحميل الأرصدة."],"gVLSxk":["Transaction was rejected"],"ga6DLx":["Your bridge is still processing. Funds are safe — LI.FI routes are always recoverable."],"gbNGPv":["Risk/Reward"],"gsL/Ic":["All cross positions share the same cross margin as collateral. In the event of liquidation, your cross margin balance and any remaining open positions under assets in this mode may be forfeited."],"h+3Zi0":["جاري تحميل المحفظة..."],"h0gbH9":["قم بتحويل USDC من Arbitrum أو سلاسل أخرى إلى حساب Hyperliquid الخاص بك."],"h3yIJ7":["Other Options"],"h4z/Mq":["Builder Fee Approval"],"hBm2XN":["ترتيب حسب ",["0"]],"hJet42":["لم يتم العثور على مدفوعات تمويل."],"hXzOVo":["التالي"],"hehnjM":["Amount"],"hgpMHD":["الحجم الإجمالي"],"hhyc5L":["الحد الأقصى للانزلاق المسموح به لأوامر السوق."],"htJlxw":["ترتيب حسب ",["headerLabel"]],"i+4Fbp":["Deposit failed"],"i6t9oo":["فشل في تحميل سجل TWAP."],"i71+SY":["Position reversed"],"iDNBZe":["الإشعارات"],"iE2I5G":["Enabling"],"iEQQyu":["Agent"],"iFlxcb":["اختر الأسواق المفضلة"],"iGma9e":["Update failed"],"iH8pgl":["Back"],"iKex+G":["Limit Price (USDC)"],"iSLIjg":["Connect"],"iaX5Av":["فشل في تحميل الصفقات."],"iflFdl":["Place ",["0"]," Order"],"ifzbyQ":["USDC"],"ipnMKT":[["p"],"%"],"iu7tUI":["مسار التنقل"],"j085nT":["قيمة الطلب"],"jH4vGi":["Net received"],"jJCREz":["اربط محفظتك لعرض مدفوعات التمويل."],"jL9aa6":["Swap direction"],"jX19nk":["اربط محفظتك لعرض الأوامر المفتوحة."],"ja6RDy":["بيع قصير"],"jgWsKr":["No trading pair available for <0/>/<1/>"],"jj+8Tx":["Approve a builder to charge fees on orders placed on your behalf. Builder codes allow DeFi applications to receive a portion of trading fees."],"jjXeQg":["No tokens available"],"k1ifdL":["Processing..."],"kM5ZE+":["Confirm in wallet"],"kVjBmF":["السعر المحدد"],"kWXidS":["إغلاق المركز"],"kj3M8S":["إيداع"],"l0Fmrm":["لغة العرض"],"l4NGKt":["لم يتم العثور على تنفيذات."],"l75CjT":["Yes"],"lB46ke":["السعر المرجعي"],"lD8YU8":["Perps Account"],"lHY6Dg":["فوري"],"lOEm/1":["Order filled"],"lUDY9v":["Cancel All"],"lVDmF0":["Trade ClockCounterClockwise"],"lZZl3m":["Stop Loss"],"laDnrx":["لم يتم العثور على أوامر TWAP."],"lg7+vk":["Side"],"lkcAoj":["Margin"],"llUlxR":["الربح والخسارة"],"llckC0":["جاري التبديل..."],"lm6AkD":["TP Price"],"lobQ3s":["الرسوم المقدرة"],"lvC44O":["Max Fee Rate (%)"],"m+2g06":["will arrive in ~3 min"],"m16xKo":["Add"],"m1eb26":["End Price (USDC)"],"m6RmA/":["Insufficient ",["0"]," balance"],"mCk5iK":["Send failed"],"mE/G/f":["Invalid Ethereum address"],"mSpJjq":["Transfer USDC"],"mcOcEg":["Market stats row — layout options"],"mlQXdF":["Trigger Price"],"mnFamZ":["% مكتمل"],"n/qDNz":["التبديل إلى الوضع الداكن"],"nJBD8K":["بيانات السوق غير متوفرة."],"nJTjIr":["Swapping..."],"nQrkW7":["Max 0.1% (10 bps) for perps, 1% (100 bps) for spot. Enter as decimal (e.g., 0.01 for 1 basis point)."],"nVMDTs":["TP must be below entry"],"nWIodQ":["Take profit trigger must be below mark"],"nbrdjK":["In Orders"],"njn4bC":["Confirm transaction in your wallet"],"nuBbBr":["الرسم البياني"],"nuqpbC":["Fee Limits:"],"nwcAtu":["التأخير:"],"nwtY4N":["حدث خطأ ما"],"o+CS/D":["Failed to load order history."],"o636h+":["Stop Market"],"o7Xo9X":["24H"],"o8uQyS":["الصفقات الأخيرة"],"oJv+QI":["Randomize timing"],"oW1G8i":["Your funds were successfully deposited."],"ocovOd":["متوسط السعر"],"odEUjn":["Advanced order types"],"okV5rM":["Failed to close position"],"ol8emB":["Connect your wallet to view order history."],"olEUh2":["Successful"],"orI3hB":["ترقيم الصفحات"],"orv4UV":["Set TP to ",["p"],"%"],"otaTjg":["شراء"],"ovBPCi":["Default"],"p/78dY":["المركز"],"p0ngfp":["قائمة الأوامر"],"p6NueD":["جديد"],"pBsoKL":["إضافة إلى المفضلة"],"pHVQlG":["إلغاء جميع الأوامر"],"pI2rip":["Insufficient balance (includes $",["WITHDRAWAL_FEE_USD"]," fee)"],"pIwpkw":["الذهاب إلى منصة التداول"],"pWF6+F":["Show Executions"],"pY5TE9":["Could not fetch your token balances"],"perfgr":["Funding History"],"pvnfJD":["Dark"],"qCdZab":["Switch to ",["displayName"]," market, long position"],"qJb6G2":["Try Again"],"qRhSY/":["الحد الأدنى $10"],"qX/0av":["Select how margin is allocated for your positions"],"qaeo2F":["نسبة الهامش"],"qfS/h8":[["formatted"]," USDC deposited to Hyperliquid"],"qiOIiY":["شراء"],"qlRrjA":["Set to ",["p"],"%"],"qn4nUK":["Builder Address"],"qnKMyZ":["مدفوعات التمويل"],"quX3ha":["Register Another"],"r+w5Bx":["No balances found"],"r22IQ2":["Time / Total"],"rLi46F":["Must be signed by main wallet (not agent/API wallet)"],"rPNGe1":["Take profit trigger must be above mark"],"rPX0Ef":["Minimum withdrawal is $",["0"]],"rfbg3y":["Switch to ",["0"]," market"],"rm3fFf":["اربط المحفظة لعرض الحساب"],"ruL48O":["Number of Orders"],"ryxkVx":["إظهار القيم بالدولار"],"s/ereB":["نشط"],"sLpZwu":["إلغاء أمر TWAP"],"sO+nPg":["الهامش المطلوب"],"sO0DWk":["Switch between mainnet and testnet. Page will reload."],"sQWzwD":["View on explorer"],"sYnC5v":["Select ",["displayName"]," market"],"shmNel":["Entry Price"],"stec1a":["تعذر إلغاء الأوامر."],"szH29R":["لم يتم العثور على أرصدة. أودع أموالاً لبدء التداول."],"t+B4rK":["24h Change"],"t+R8+P":["Execution"],"t5EZAB":["جارٍ تحميل سجل التداول..."],"tHPbHS":["لوحة المتصدرين"],"tMX8XH":["Select tokens to swap"],"tVJk4q":["إلغاء الأمر"],"tZ9ftZ":["فوري"],"tnJl4V":["Withdrawal submitted"],"u4LEQ2":["You are on Testnet"],"uAQUqI":["الحالة"],"uEDo87":["About Builder Codes"],"uWi2Q+":["الشريط الجانبي"],"uZi2t8":["Confirmation screen coming in next slice"],"ufWF2Y":["الخزائن"],"ugB2se":["No order history found."],"uoD7vB":["Fee rate must be between 0.001% and 1%"],"v/76pL":["دفتر الأوامر"],"vH2C/2":["Swap"],"vI9OLW":["Bridge failed"],"vIWDJQ":[["totalSeconds"]," seconds"],"vT/Pj1":["الحجم"],"vXIe7J":["Language"],"vXWzNt":["فشل تفعيل التداول"],"vZW+PE":["Your transaction is being processed"],"vcHBQG":["Show Positions"],"vpjkXb":["Limit Close"],"vrnnn9":["Processing"],"vtJ2yO":["Explorer"],"vyMDXl":["إظهار خطوط المسح"],"w+oJCW":["will arrive in ~5 min"],"w3hmRj":["في انتظار دفتر الأوامر..."],"wDbqhD":["Reverse"],"wDy6uq":["Loading order history..."],"wMHvYH":["القيمة"],"wZVzVU":["Bridge complete"],"wdxz7K":["Source"],"wezJ3v":["Mark Price"],"wq30T4":["التصفية"],"wvgF6w":["Order History"],"x+7jw2":["يتجاوز الحد الأقصى"],"xGVfLh":["Continue"],"xI4H1r":["Switch to ",["displayCoin"]," market"],"xNB0TS":["بيع"],"xTSCVP":["Builder code registered successfully!"],"xWnh+P":["Start Price (USDC)"],"y62Dys":["Network fee"],"yQE2r9":["جارٍ التحميل"],"yRkqG9":["محدد"],"yT7sOL":["Trade via ",["0"]," spot market"],"yVfwJk":["Start and end must differ"],"ydOXwr":["Perp"],"ye6Vnv":["Available:"],"ygCKqB":["إيقاف"],"ygkMcg":["محدد"],"yxnt3y":["Fill status"],"yz7wBu":["إغلاق"],"zEGs+1":["Builders"],"zKCXG+":["Trigger Price (USDC)"],"zKJcRr":["Perps: Max 0.1% (10 basis points)"],"zPGNJm":["Transfer"],"zXagFp":["نسخ العنوان"],"zZmf1N":["منفذ"],"zdcGo/":["Bridging in progress"],"zjwWvI":["Start Price"],"znqB4T":["Insufficient balance"],"zwWKhA":["Learn more"]}',
+ '{"++OGth":["Deposit successful"],"+1S7b1":["المحفظة غير متصلة"],"+6YAwo":["selected"],"+8WrGc":["لم يتم العثور على محافظ"],"+F8cLG":["يعرض الشريط الجانبي للجوال."],"+JE0m7":["فشل تحميل المراكز."],"+K0AvT":["قطع الاتصال"],"+N2Rqk":["لا توجد مراكز نشطة."],"+N7uug":["1 year"],"+ONfBR":["PRICE"],"+ZV3i5":["فشل في تحميل الأوامر المفتوحة."],"+b7T3G":["Updated"],"+hA/UM":["الأوامر المفتوحة"],"+nuEh/":["Estimated time"],"+w/hP1":["إظهار التنفيذات على الرسم البياني"],"+xnyQO":["أدخل الحجم"],"+z3YcL":["Position actions"],"+zy2Nq":["النوع"],"/2hibY":["إلغاء المحدد"],"/AsMcZ":["Enabling..."],"/G76GM":["Your current open position on this market"],"/IX/7x":["Other"],"/PvdTS":["Gas (",["0"],")"],"/TT0Oq":["أوراكل"],"/cF7Rs":["الحجم"],"/gY2VH":["تصفية حسب ",["0"]],"/jQctM":["To"],"/kXBrK":["Total time"],"/mfICu":["Fees"],"/tPR7R":["Builder Fee"],"0+Iw6C":["Duration (Minutes)"],"0+X+sh":["Spot Account"],"0LZtsz":["Take Market"],"0Mx4+k":["No trading pair available for ",["fromTokenDisplay"],"/",["toTokenDisplay"]],"0P2gFy":["الصفحة التي تبحث عنها غير موجودة."],"0QDjxt":["Balance:"],"0RrIzN":["اختر الرمز"],"0Xlr0L":["Minimum deposit is ",["0"]," USDC"],"0cIV8s":["Open Positions"],"0exG4Q":["التمويل"],"0z59Ep":["بيع"],"1BkDWk":["شراء طويل"],"1PJ7wL":["Confirm Close"],"1QfxQT":["تجاهل"],"1UzENP":["No"],"1ZMjyh":["The builder at ",["0"],"...",["1"]," can now charge up to ",["maxFeeRate"],"% fee on orders placed on your behalf."],"1h+RBg":["Orders"],"1njn7W":["Light"],"29VNqC":["Unknown error"],"2Ea5Vz":["سجل التداول"],"2FYpfJ":["المزيد"],"2M2s7z":["تفعيل التداول"],"2OWSzg":["Account Equity"],"2PsTzL":["مكتمل"],"2tQrK2":["التبديل إلى Arbitrum"],"3/vMct":["A crypto wallet lets you store and manage your digital assets securely."],"30ZPad":["المراكز النشطة"],"3CHbH/":["SL Price"],"3DtJpz":["Stop Limit"],"3IkQgP":["Secure & Private"],"3Siwmw":["المزيد من الخيارات"],"3UZudY":["Stop trigger must be below mark"],"3fPjUY":["Pro"],"3oHIhx":["TP must be above entry"],"3q1W5Q":["Isolated → Cross"],"4+HkLv":["Show Values in Quote Asset"],"40lLFI":["الذهاب للصفحة التالية"],"42w2ly":["العقود المفتوحة"],"46Sm8O":["الغاز:"],"4HtGBb":["MAX"],"4J2s8f":["جارٍ الإلغاء..."],"4Kyst7":["Agent mode: Orders signed automatically (fast)"],"4NuBK4":["في انتظار الصفقات..."],"4Vzb+4":["جاري الإغلاق..."],"4avvba":["No trades found."],"54QqdM":["جاري التوقيع..."],"5FsTU5":["عميل المحفظة غير جاهز"],"5Omwef":["Scale level below min notional"],"5joj8M":["Transaction breakdown"],"5oE2C+":["مرتب حسب ",["0"]],"5u8fWJ":["Back to asset selection"],"5xKxZd":["TP trigger price"],"5zbbOn":["Invalid amount"],"60m4P5":["24H VOL"],"621rYf":["الدفعة"],"63wHTy":["Edit TP/SL"],"69b7aE":["Open command menu"],"6Aih4U":["Offline"],"6fpdpR":["Show fewer wallets"],"6gRgw8":["Retry"],"6jVqpA":["فشل في تحميل سجل التداول."],"6poLt9":["تبديل الشريط الجانبي"],"6vyJOd":["Deposit from any chain to your Hyperliquid account"],"6zAIUU":["Cannot switch to Isolated mode with an open position. Close your position first."],"72c5Qo":["الإجمالي"],"77Rx22":["طي لوحة الحساب"],"7L01XJ":["إجراءات"],"7Lv7j5":["Margin Mode"],"7VpPHA":["Confirm"],"7l15X4":["فشل"],"88cUW+":["You receive"],"8F1i42":["الصفحة غير موجودة"],"8Fu1E7":["تبديل وضع الحجم"],"8Itoo3":["Unrealized P&L"],"8LkAxv":["SL must be below entry"],"8SNccp":["Switch to ",["displayName"]," market, short position"],"8WrNUb":["TIF"],"8gcijf":["Insufficient <0/> balance"],"8hvfaA":["Position closed"],"8yhvii":["Mid"],"997z0L":["Spot: Max 1% (100 basis points)"],"9ACh/c":["لا يوجد سعر مرجعي"],"9SBcQj":["All cross positions share the same cross margin as collateral. In the event of liquidation, your cross margin balance and any remaining open positions may be forfeited."],"9lH5ev":["جارٍ تحميل الأوامر المفتوحة..."],"9mRTyg":["الكتلة:"],"9qnvU0":["Switch to ",["displayName"]," market"],"9ykF9H":["Hide small"],"9zb2WA":["Connecting"],"A+q/Is":["أسواق"],"A1taO8":["Search"],"AArF6S":["Move USDC between your Perp and Spot accounts."],"AEGM8s":["Failed to copy"],"AErIoZ":["Manage your risk on individual positions by restricting the amount of margin allocated to each. If the margin ratio of an isolated position reaches 100%, the position will be liquidated. Margin can be added or removed to individual positions in this mode."],"AGWjPT":["تعيين ",["p"],"%"],"AUYALh":["قريباً"],"AUahCv":["Insufficient funds for gas"],"AeXO77":["الحساب"],"B5AKvo":["السعر المرجعي"],"BOppjS":["لا يوجد سوق"],"BSj/hz":["إضافة أموال"],"BvlAGq":["الربح والخسارة غير المحققة"],"BxBZCk":["Each position uses only its allocated margin. If the margin ratio reaches 100%, the position is liquidated. Margin can be added or removed individually."],"C2TJN3":["جارٍ تحميل أوامر TWAP..."],"C8kdVg":["Fill limit price with mark price ",["0"]],"CF1zwJ":["فشل في تحميل سجل التمويل."],"CK1KXz":["الأقصى"],"CMHmbm":["الانزلاق"],"CP3D8G":["التقدم"],"CW11B+":["Minimum"],"CfRvLF":["Swap failed"],"CgqzuN":["متقاطع"],"Cj2Gtd":["الحجم"],"CjCD8F":[["0"]," more wallets"],"Cjh38d":["New to wallets?"],"Ck1xL4":["You send"],"Co8gGw":["No active TWAP orders."],"CtByM7":["ربط المحفظة"],"CzeOTH":["Wallet (",["0"],")"],"D243f/":["Install a wallet extension to continue"],"D6X5UU":["Market Close"],"DBVcOk":["More intervals"],"DHhJ7s":["السابق"],"DPfwMq":["Done"],"DWs3bP":["Mark:"],"DXxfpS":["اختر تجميع دفتر الأوامر"],"DZo9LT":["Mock Wallet (Testing)"],"DabQ8P":["أوامر TWAP"],"DiL7DR":["Perp → Spot"],"Do4l1I":["Edit leverage"],"DzHUbu":["Copy address"],"E8sxZm":["إظهار المراكز على الرسم البياني"],"EE/1QC":["Format for numbers and dates"],"ETkk6Z":["TOKEN"],"Enslfm":["Destination"],"F6pfE9":["نشط"],"FF5wYg":["تحديد جميع الأوامر"],"FKY8dA":["Est. P&L at Limit"],"FLNk0d":["Min order $",["ORDER_MIN_NOTIONAL_USD"]],"FLkCnQ":["You can revoke permissions at any time by registering a new approval with 0% fee rate. Builder codes are processed entirely onchain as part of the fee logic."],"FS+bo3":["تعذر إغلاق المركز."],"Fdp03t":["on"],"FeRMvR":["Margin · Iso"],"FmemI7":["FUNDING"],"FqmhBo":["No balance on Hyperliquid. Deposit first."],"FxVG/l":["Copied to clipboard"],"G3oEYi":["اختر الأمر"],"G6etJA":["جارٍ تحميل الأرصدة..."],"GINUX/":["Only you control your funds. No email or password required."],"GLWV4x":["Builder must have at least 100 USDC in perps account value"],"GX8GKD":["Assets"],"GbNWWs":["Slippage tolerance"],"H2Sfhg":["Trigger"],"HJlY85":["لا يوجد رصيد"],"HZN+sw":["Trading"],"HZdgTJ":["Select signing mode"],"HfT9T6":["No route available. Try a different amount or asset."],"Hp1l6f":["Current"],"I8LlJA":["TradingView"],"ICCWOn":["تعذر إنشاء المحفظة"],"IHIyQG":["positions"],"IJfJAB":["Margin mode"],"IJndUb":["Connect your wallet to register a builder code"],"IV3hWp":["Enter trigger price"],"IZL9b6":["الرافعة المتقاطعة"],"IcSLiu":["Oracle"],"Ieh2cV":["توسيع لوحة الحساب"],"IoAuJG":["Sending..."],"IwI0rY":["Wrong network"],"IyNxxU":["دائم"],"J24FyN":["Bridge"],"J28zul":["جارٍ الاتصال..."],"JHxGP5":["تداول"],"JVvYNb":["Deposit complete"],"JXzPJX":["SL"],"JbH+Me":["Leverage Settings"],"Jc94Bq":["No open positions."],"JfWXib":["Track on LI.FI Explorer"],"JlFcis":["Send"],"Ju4B2M":["اختر الرافعة المالية"],"JuyzMZ":["Maximum slippage tolerance for market orders"],"KTNWsg":["Withdrawal failed"],"KYAjf3":["معزول"],"KZHfkR":["إيداع الأموال"],"KaqqlB":["إيداع في Hyperliquid"],"Ke6k18":["Leverage"],"KeDrPl":["Minimum deposit is 5 USDC"],"KnTbj2":["إظهار الأوامر على الرسم البياني"],"Kp3IPD":["No response from exchange"],"KpAolD":["Failed to update leverage"],"KsqhWn":["التخزين"],"KxF048":["خصص تجربة التداول الخاصة بك."],"Kz1TxG":["مفتوح"],"L+qiq+":["السوق"],"L4jnDP":["منفذ"],"LEbOpR":["More details"],"LGuqeh":["Please enter an address"],"LHfqhz":["New deposit"],"LMMGPr":["Submitting..."],"Le70b5":["صفحات أخرى"],"LhMjLm":["الوقت"],"LlsvFY":["Reduce"],"Lx+htK":["Swap submitted"],"Lz5J1x":["Sort by ",["sortLabel"]],"M0biAV":["Preparing your quote..."],"M9fkA0":["Liquidated"],"MLQamJ":["اربط محفظتك لعرض سجل التداول."],"MSSmsu":["To Perp"],"MTq3hP":["24h vol"],"Mim7/r":["Insufficient ",["fromTokenDisplay"]," balance"],"MpLcsV":["Loading balances across all chains..."],"MqA4qt":["المحفظة"],"MyytBE":["Send tokens to another account on the Hyperliquid L1."],"N40H+G":["All"],"NIDWjN":["SL must be above entry"],"NJNMJX":["TWAP"],"NNJKWa":["Connect your wallet to withdraw funds"],"NNtdiI":["Resets in"],"NQtgSJ":["Failed to register builder code"],"NpuiU+":["العقود الدائمة"],"NsJrqM":["السوق غير جاهز"],"O5ycjq":["trades"],"ODVKKZ":["أدخل السعر المحدد"],"OQGH4C":["محدد تقليل فقط"],"OR475H":["Network"],"OSnZvX":["Change leverage"],"OYsSpP":["Failed to reverse position"],"OZtEcz":["API"],"Oe3M3Y":["Switch to Arbitrum to deposit USDC to Hyperliquid"],"Oid00w":["Enter price range"],"OsyKSt":["سحب"],"Otdc/Y":["قم بتوصيل محفظتك لعرض المراكز."],"OxPEUg":["قيد الاستخدام"],"P9cEa2":["30 days"],"PJEzIS":["Bridge to Hyperliquid"],"PLUB/s":["الرسوم"],"PNsB0A":["Fetching quote..."],"PTna/x":["العقود المفتوحة"],"PTyoXs":["Set SL to ",["p"],"%"],"PWRc/M":["Open positions count"],"PWk+Et":["No spot balances."],"PXH7+k":["Cross → Isolated"],"PZBWpL":["التبديل إلى الوضع الفاتح"],"PaQ3df":["Enable"],"PcmIvv":["نقطة أساس"],"PeO4lq":["Requirements:"],"PelVTv":["Register Builder Code"],"PiH3UR":["Copied!"],"Pl9jiz":["Show Orders"],"Q9fVmw":["Go to Trade"],"QD2PKQ":["End Price"],"QHcLEN":["متصل"],"QjUEvK":["إلغاء الكل"],"QlN9wA":["Destination address"],"R68yLX":["تعيين TP/SL"],"RRXpo1":["بيع"],"RaWC6b":["Size exceeds position"],"Rb1yph":["سعر التصفية"],"RnpwtT":["TWAP minutes must be ",["TWAP_MINUTES_MIN"],"-",["TWAP_MINUTES_MAX"]],"RoE+o+":["تقليل فقط"],"RwFtJj":["Cross Margin Ratio"],"S33tz3":["غير متصل"],"S48xcO":["قيد الانتظار"],"S9zH+G":["This action must be signed by your main wallet (not an agent/API wallet). The builder must have at least 100 USDC in perps account value."],"SEDVHU":["جاري تحميل المراكز..."],"SEoDwA":["Take Limit"],"SHk3ns":["Balance available to trade"],"SJrFO1":["Position close actions"],"SVHeJc":["Direct mode: Sign each order with wallet"],"SWH2Eh":["Time in Force"],"SsGsC0":["إلغاء الأوامر المحددة"],"Svkela":["الذهاب للصفحة السابقة"],"T/pF0Z":["إزالة من المفضلة"],"TDa39c":["سعر 24 ساعة"],"THTG58":["Select asset to bridge"],"THfjt2":["Cross Account Leverage"],"THmCgW":["Select market"],"TK3J5O":["Send Tokens"],"TK9uys":["اختر سوق ",["coin"]],"TLa4Oo":["قم بتوصيل المحفظة لإدارة المراكز."],"TNawll":["Disconnect wallet"],"TNtZN2":["TP"],"TP9/K5":["Token"],"TQ/QV5":["No trading pair available for ",["fromToken"],"/",["toToken"]],"TT0aVH":["Order submitted"],"TbjyhA":["المستندات"],"Tm8JF7":["Connect your wallet to bridge funds"],"Tuc34V":["Confirm Bridge"],"Tz0i8g":["الإعدادات"],"U3As+R":["Take Profit"],"U86eEA":["No user address"],"URmyfc":["Details"],"URvngU":["Est. time"],"UXtGFD":["Full Position"],"UwG7db":["What is a wallet?"],"V0ubMJ":["جني الأرباح / وقف الخسارة"],"V3XYw0":["P&L"],"V5khLm":["orders"],"V6ETmV":["To Spot"],"VAZUpd":["فشل الطلب"],"VIwCaD":["الدخول"],"VMLGYS":["Switch to Mainnet"],"VU5rsP":["Number Format"],"VXCk+w":["جارٍ تحميل الأسواق..."],"VYFX4v":["Perpetuals"],"VcaZ5z":["لم يتم العثور على أسواق."],"VgTxu0":["المُوقِّع غير جاهز"],"VmhkuH":["Account and wallet"],"W1k7eB":["24h"],"W75iLe":["اربط محفظتك لعرض الأرصدة."],"W9Fxbx":["SL trigger price"],"WISj7i":["Place Limit Close"],"WNMYIN":["ملغى"],"WRelac":["Cannot switch to isolated mode with an open position"],"WajXzx":["Est. P&L"],"Wqz0SO":["Low Balance"],"XCIAdj":["RO"],"XFp9Bf":["Scale levels must be ",["SCALE_LEVELS_MIN"],"-",["SCALE_LEVELS_MAX"]],"XTwHmT":["Spot Balances"],"XYLcNv":["الدعم"],"XbxYxh":["Price grouping"],"Y1W9ip":["حقوق الملكية"],"Y9gMWT":["فشل في تحميل دفتر الأوامر."],"YZLEvW":["Processing deposit"],"Yf9lFX":["Ledger"],"YnKdJE":["الهامش المستخدم"],"YxaAON":["الفارق"],"Z3FXyt":["جارٍ التحميل..."],"ZB/Jm6":["Margin & leverage"],"ZDBdfg":["Enter TP or SL price"],"ZFtwlj":["الصفقات"],"ZHJZmo":["Amount (USDC)"],"ZYnwzF":["Disconnected"],"ZmGjjl":["Your bridge is still processing. Funds are safe."],"a/MzGi":["sent to Hyperliquid"],"a7u1N9":["السعر"],"a9q6hE":["waiting"],"aAIQg2":["Appearance"],"aVwGl4":["Portfolio PNL"],"adcjkX":["Limit close order placed"],"amRC+z":["Connect your wallet to view your account overview, positions, and history."],"axyo2z":["قم بربط المحفظة لإدارة الأوامر."],"b7Wduj":["شراء"],"bMJMhJ":["خطأ WebSocket"],"bSCsJh":["TP/SL"],"bUUVED":["الأصل"],"bVPv2S":["تحديث مباشر"],"bW1xET":["Stop trigger must be above mark"],"bifv6N":["Scale"],"bm80CF":["اربط محفظتك لعرض أوامر TWAP."],"c+VX3P":["Custom TP percentage"],"c+tzs5":["Sign in wallet..."],"c2npeq":["Custom SL percentage"],"cJzJWa":["Transfer failed"],"cXvnJ8":["انزلاق أمر السوق"],"csDS2L":["متاح"],"cwQAhE":["Failed to switch margin mode"],"d+F6q9":["Created"],"dEgA5A":["إلغاء"],"dQGImW":["أرصدة الحساب"],"daWrYT":["Agent verification failed"],"dcKNhk":["Taking longer than expected"],"dfIw2n":["القيمة بالدولار"],"dkzoLd":["جارٍ تحميل سجل التمويل..."],"doRJE6":["Set TP/SL for ",["0"]],"drvdT3":["Add TP/SL"],"e/cvV1":["جارٍ التحقق..."],"e/vgsz":["Total Value"],"e0bpdM":["رمز غير معروف: ",["symbolName"]],"e2oWGN":["No tokens with value found across supported chains"],"eXs0Bt":["البحث في الأسواق..."],"ebwNSs":["Remove ",["displayName"]," from favorites"],"eiZzfX":["Builder codes allow DeFi builders to receive a fee on fills they send on behalf of users. They are set per-order for maximal flexibility."],"ejVYRQ":["From"],"es+Zrf":["Transferring..."],"fBckrr":["دقة غير مدعومة: ",["0"]],"fEC2uI":["حول USDC إلى حساب Hyperliquid الخاص بك لبدء التداول."],"fOG42Y":["Connect your wallet to start trading on Hyperliquid"],"fVmG6b":["Failed to load balances"],"fYSYwH":["لا توجد أوامر مفتوحة."],"fYUNRJ":["Direct"],"fhqG7u":["Connected: ",["0"],"...",["1"]],"fqDzSu":["المعدل"],"fsBGk0":["الرصيد"],"g5PJI8":["OPEN INT"],"g5Xz8D":["Cross Margin"],"gIpxlQ":["Minimum withdrawal is $",["MIN_WITHDRAW_USD"]],"gL/sdV":["Popular"],"gMHkDJ":["فشل في تحميل الأرصدة."],"gVLSxk":["Transaction was rejected"],"ga6DLx":["Your bridge is still processing. Funds are safe — LI.FI routes are always recoverable."],"gbNGPv":["Risk/Reward"],"gsL/Ic":["All cross positions share the same cross margin as collateral. In the event of liquidation, your cross margin balance and any remaining open positions under assets in this mode may be forfeited."],"h+3Zi0":["جاري تحميل المحفظة..."],"h0gbH9":["قم بتحويل USDC من Arbitrum أو سلاسل أخرى إلى حساب Hyperliquid الخاص بك."],"h3yIJ7":["Other Options"],"h4z/Mq":["Builder Fee Approval"],"hBm2XN":["ترتيب حسب ",["0"]],"hJet42":["لم يتم العثور على مدفوعات تمويل."],"hXzOVo":["التالي"],"hehnjM":["Amount"],"hgpMHD":["الحجم الإجمالي"],"hhyc5L":["الحد الأقصى للانزلاق المسموح به لأوامر السوق."],"htJlxw":["ترتيب حسب ",["headerLabel"]],"i+4Fbp":["Deposit failed"],"i6t9oo":["فشل في تحميل سجل TWAP."],"i71+SY":["Position reversed"],"iDNBZe":["الإشعارات"],"iE2I5G":["Enabling"],"iEQQyu":["Agent"],"iFlxcb":["اختر الأسواق المفضلة"],"iGma9e":["Update failed"],"iH8pgl":["Back"],"iKex+G":["Limit Price (USDC)"],"iSLIjg":["Connect"],"iaX5Av":["فشل في تحميل الصفقات."],"iflFdl":["Place ",["0"]," Order"],"ifzbyQ":["USDC"],"ipnMKT":[["p"],"%"],"iu7tUI":["مسار التنقل"],"j085nT":["قيمة الطلب"],"jH4vGi":["Net received"],"jJCREz":["اربط محفظتك لعرض مدفوعات التمويل."],"jL9aa6":["Swap direction"],"jX19nk":["اربط محفظتك لعرض الأوامر المفتوحة."],"ja6RDy":["بيع قصير"],"jgWsKr":["No trading pair available for <0/>/<1/>"],"jj+8Tx":["Approve a builder to charge fees on orders placed on your behalf. Builder codes allow DeFi applications to receive a portion of trading fees."],"jjXeQg":["No tokens available"],"k1ifdL":["Processing..."],"kM5ZE+":["Confirm in wallet"],"kVjBmF":["السعر المحدد"],"kWXidS":["إغلاق المركز"],"kj3M8S":["إيداع"],"l0Fmrm":["لغة العرض"],"l4NGKt":["لم يتم العثور على تنفيذات."],"l75CjT":["Yes"],"lB46ke":["السعر المرجعي"],"lD8YU8":["Perps Account"],"lGBGsP":["Failed to connect with custom address"],"lHY6Dg":["فوري"],"lOEm/1":["Order filled"],"lUDY9v":["Cancel All"],"lVDmF0":["Trade ClockCounterClockwise"],"lZZl3m":["Stop Loss"],"laDnrx":["لم يتم العثور على أوامر TWAP."],"lg7+vk":["Side"],"lkcAoj":["Margin"],"llUlxR":["الربح والخسارة"],"llckC0":["جاري التبديل..."],"lm6AkD":["TP Price"],"lobQ3s":["الرسوم المقدرة"],"lvC44O":["Max Fee Rate (%)"],"m+2g06":["will arrive in ~3 min"],"m16xKo":["Add"],"m1eb26":["End Price (USDC)"],"m6RmA/":["Insufficient ",["0"]," balance"],"mCk5iK":["Send failed"],"mE/G/f":["Invalid Ethereum address"],"mSpJjq":["Transfer USDC"],"mTfEdq":["Perps Overview"],"mVfuH4":["Spot → Perp"],"mlQXdF":["Trigger Price"],"mnFamZ":["% مكتمل"],"n/qDNz":["التبديل إلى الوضع الداكن"],"nJBD8K":["بيانات السوق غير متوفرة."],"nJTjIr":["Swapping..."],"nQrkW7":["Max 0.1% (10 bps) for perps, 1% (100 bps) for spot. Enter as decimal (e.g., 0.01 for 1 basis point)."],"nVMDTs":["TP must be below entry"],"nVrjlH":["Withdrawable"],"nWIodQ":["Take profit trigger must be below mark"],"nbrdjK":["In Orders"],"njn4bC":["Confirm transaction in your wallet"],"nuBbBr":["الرسم البياني"],"nuqpbC":["Fee Limits:"],"nwcAtu":["التأخير:"],"nwtY4N":["حدث خطأ ما"],"o+CS/D":["Failed to load order history."],"o21Y+P":["entries"],"o636h+":["Stop Market"],"o7Xo9X":["24H"],"o8uQyS":["الصفقات الأخيرة"],"oJv+QI":["Randomize timing"],"oW1G8i":["Your funds were successfully deposited."],"ocovOd":["متوسط السعر"],"odEUjn":["Advanced order types"],"okV5rM":["Failed to close position"],"ol8emB":["Connect your wallet to view order history."],"olEUh2":["Successful"],"orI3hB":["ترقيم الصفحات"],"orv4UV":["Set TP to ",["p"],"%"],"otaTjg":["شراء"],"ovBPCi":["Default"],"p/78dY":["المركز"],"p0ngfp":["قائمة الأوامر"],"p6NueD":["جديد"],"pBsoKL":["إضافة إلى المفضلة"],"pHVQlG":["إلغاء جميع الأوامر"],"pI2rip":["Insufficient balance (includes $",["WITHDRAWAL_FEE_USD"]," fee)"],"pIwpkw":["الذهاب إلى منصة التداول"],"pUEa02":["Margin mode switched to ",["0"]," for ",["coin"]],"pWF6+F":["Show Executions"],"pY5TE9":["Could not fetch your token balances"],"perfgr":["Funding History"],"pvnfJD":["Dark"],"qCdZab":["Switch to ",["displayName"]," market, long position"],"qJb6G2":["Try Again"],"qRhSY/":["الحد الأدنى $10"],"qX/0av":["Select how margin is allocated for your positions"],"qaeo2F":["نسبة الهامش"],"qfS/h8":[["formatted"]," USDC deposited to Hyperliquid"],"qiOIiY":["شراء"],"qlRrjA":["Set to ",["p"],"%"],"qn4nUK":["Builder Address"],"qnKMyZ":["مدفوعات التمويل"],"quX3ha":["Register Another"],"r+w5Bx":["No balances found"],"r22IQ2":["Time / Total"],"rJe6vw":["7 days"],"rLi46F":["Must be signed by main wallet (not agent/API wallet)"],"rPNGe1":["Take profit trigger must be above mark"],"rPX0Ef":["Minimum withdrawal is $",["0"]],"rfbg3y":["Switch to ",["0"]," market"],"rm3fFf":["اربط المحفظة لعرض الحساب"],"ruL48O":["Number of Orders"],"ryxkVx":["إظهار القيم بالدولار"],"s/ereB":["نشط"],"sFSDo6":["No open positions. Leverage settings appear here when you have active positions."],"sLpZwu":["إلغاء أمر TWAP"],"sO+nPg":["الهامش المطلوب"],"sO0DWk":["Switch between mainnet and testnet. Page will reload."],"sQWzwD":["View on explorer"],"sYnC5v":["Select ",["displayName"]," market"],"scwWyY":["No ledger activity found."],"shmNel":["Entry Price"],"stec1a":["تعذر إلغاء الأوامر."],"szH29R":["لم يتم العثور على أرصدة. أودع أموالاً لبدء التداول."],"t+B4rK":["24h Change"],"t+CM0Z":["Leverage updated to ",["pendingLeverage"],"× for ",["coin"]],"t+Jqww":["Flip transfer direction"],"t+R8+P":["Execution"],"t5EZAB":["جارٍ تحميل سجل التداول..."],"tHPbHS":["لوحة المتصدرين"],"tMFDem":["No data available"],"tMX8XH":["Select tokens to swap"],"tVJk4q":["إلغاء الأمر"],"tWiEVe":["Liq Price"],"tZ9ftZ":["فوري"],"tnJl4V":["Withdrawal submitted"],"tp8zc8":["Custom wallet address"],"u4LEQ2":["You are on Testnet"],"uAQUqI":["الحالة"],"uBhZmI":["payments"],"uEDo87":["About Builder Codes"],"uWi2Q+":["الشريط الجانبي"],"uZi2t8":["Confirmation screen coming in next slice"],"ufWF2Y":["الخزائن"],"ugB2se":["No order history found."],"uoD7vB":["Fee rate must be between 0.001% and 1%"],"uqe4In":["Total Equity"],"v/76pL":["دفتر الأوامر"],"vH2C/2":["Swap"],"vI9OLW":["Bridge failed"],"vIWDJQ":[["totalSeconds"]," seconds"],"vT/Pj1":["الحجم"],"vXIe7J":["Language"],"vXWzNt":["فشل تفعيل التداول"],"vZW+PE":["Your transaction is being processed"],"vcHBQG":["Show Positions"],"vpjkXb":["Limit Close"],"vrnnn9":["Processing"],"vtJ2yO":["Explorer"],"vyMDXl":["إظهار خطوط المسح"],"w+oJCW":["will arrive in ~5 min"],"w3hmRj":["في انتظار دفتر الأوامر..."],"wDbqhD":["Reverse"],"wDy6uq":["Loading order history..."],"wMHvYH":["القيمة"],"wZVzVU":["Bridge complete"],"wdxz7K":["Source"],"wezJ3v":["Mark Price"],"wq30T4":["التصفية"],"wvgF6w":["Order History"],"x+7jw2":["يتجاوز الحد الأقصى"],"xGVfLh":["Continue"],"xI4H1r":["Switch to ",["displayCoin"]," market"],"xNB0TS":["بيع"],"xTSCVP":["Builder code registered successfully!"],"xWnh+P":["Start Price (USDC)"],"xgSeuS":["Account Value"],"y/TXy2":["Maintenance Margin"],"y62Dys":["Network fee"],"yQE2r9":["جارٍ التحميل"],"yRkqG9":["محدد"],"yT7sOL":["Trade via ",["0"]," spot market"],"yVfwJk":["Start and end must differ"],"ydOXwr":["Perp"],"ye6Vnv":["Available:"],"ygCKqB":["إيقاف"],"ygkMcg":["محدد"],"yxnt3y":["Fill status"],"yz7wBu":["إغلاق"],"zEGs+1":["Builders"],"zG6eEO":["Connect your wallet to view your account, positions, and start trading."],"zKCXG+":["Trigger Price (USDC)"],"zKJcRr":["Perps: Max 0.1% (10 basis points)"],"zPGNJm":["Transfer"],"zXagFp":["نسخ العنوان"],"zZmf1N":["منفذ"],"zdcGo/":["Bridging in progress"],"zjwWvI":["Start Price"],"znqB4T":["Insufficient balance"],"zwWKhA":["Learn more"]}',
),
};
diff --git a/apps/terminal/src/locales/ar/messages.po b/apps/terminal/src/locales/ar/messages.po
index 449e3929..43f77ecb 100644
--- a/apps/terminal/src/locales/ar/messages.po
+++ b/apps/terminal/src/locales/ar/messages.po
@@ -80,6 +80,8 @@ msgstr ""
#~ msgid "About Builder Codes"
#~ msgstr ""
+#: src/components/account/account-page.tsx
+#: src/components/trade/header/top-nav.tsx
#: src/components/trade/tradebox/account-panel.tsx
msgid "Account"
msgstr "الحساب"
@@ -96,6 +98,10 @@ msgstr "أرصدة الحساب"
msgid "Account Equity"
msgstr ""
+#: src/components/account/account-pnl-chart.tsx
+#~ msgid "Account Value"
+#~ msgstr ""
+
#: src/components/trade/positions/balances-tab.tsx
#: src/components/trade/positions/orders-tab.tsx
#: src/components/trade/positions/positions-tab.tsx
@@ -160,6 +166,7 @@ msgstr ""
#~ msgid "All cross positions share the same cross margin as collateral. In the event of liquidation, your cross margin balance and any remaining open positions under assets in this mode may be forfeited."
#~ msgstr ""
+#: src/components/account/account-history.tsx
#: src/components/trade/positions/send-modal.tsx
#: src/components/trade/positions/transfer-modal.tsx
#: src/components/trade/tradebox/deposit-modal.tsx
@@ -183,6 +190,10 @@ msgstr ""
#~ msgid "Approve a builder to charge fees on orders placed on your behalf. Builder codes allow DeFi applications to receive a portion of trading fees."
#~ msgstr ""
+#: src/components/account/account-history.tsx
+#: src/components/account/account-history.tsx
+#: src/components/account/account-history.tsx
+#: src/components/account/account-positions.tsx
#: src/components/trade/positions/balances-tab.tsx
#: src/components/trade/positions/funding-tab.tsx
#: src/components/trade/positions/history-tab.tsx
@@ -193,10 +204,14 @@ msgstr ""
msgid "Asset"
msgstr "الأصل"
-#: src/components/trade/tradebox/account-panel.tsx
-#~ msgid "Assets"
-#~ msgstr ""
+#: src/components/account/account-page.tsx
+msgid "Assets"
+msgstr ""
+#: src/components/account/account-balances.tsx
+#: src/components/account/account-balances.tsx
+#: src/components/account/account-page.tsx
+#: src/components/account/account-page.tsx
#: src/components/trade/mobile/mobile-balances-tab.tsx
#: src/components/trade/positions/balances-tab.tsx
#: src/components/trade/tradebox/trade-form-fields.tsx
@@ -225,6 +240,7 @@ msgstr ""
#~ msgid "Back to asset selection"
#~ msgstr ""
+#: src/components/account/account-page.tsx
#: src/components/trade/tradebox/account-panel.tsx
msgid "Balance"
msgstr "الرصيد"
@@ -249,6 +265,7 @@ msgstr ""
#~ msgid "Breadcrumb"
#~ msgstr "مسار التنقل"
+#: src/components/account/account-page.tsx
#: src/components/trade/mobile/mobile-account-view.tsx
#: src/components/trade/tradebox/account-panel.tsx
#: src/components/trade/tradebox/account-panel.tsx
@@ -370,6 +387,10 @@ msgstr "جارٍ الإلغاء..."
#~ msgid "cancelled"
#~ msgstr "ملغى"
+#: src/components/account/account-leverage-settings.tsx
+msgid "Cannot switch to isolated mode with an open position"
+msgstr ""
+
#: src/components/trade/tradebox/margin-mode-modal.tsx
msgid "Cannot switch to Isolated mode with an open position. Close your position first."
msgstr ""
@@ -403,14 +424,15 @@ msgstr "جاري الإغلاق..."
#~ msgid "Collapse account panel"
#~ msgstr "طي لوحة الحساب"
-#: src/components/trade/order-entry/order-entry-panel.tsx
-#~ msgid "Coming soon"
-#~ msgstr "قريباً"
+#: src/components/account/account-pnl-chart.tsx
+msgid "Coming soon"
+msgstr "قريباً"
#: src/components/trade/positions/twap-tab.tsx
#~ msgid "completed"
#~ msgstr "مكتمل"
+#: src/components/account/account-leverage-settings.tsx
#: src/components/trade/positions/position-tpsl-modal.tsx
#: src/components/trade/tradebox/bridge-tab.tsx
#: src/components/trade/tradebox/leverage-control.tsx
@@ -451,6 +473,8 @@ msgstr ""
#~ msgid "Connect a wallet to manage positions."
#~ msgstr "قم بتوصيل المحفظة لإدارة المراكز."
+#: src/components/account/account-page.tsx
+#: src/components/account/account-page.tsx
#: src/components/trade/components/wallet-modal.tsx
#: src/components/trade/header/user-menu.tsx
#: src/components/trade/mobile/mobile-account-view.tsx
@@ -511,6 +535,10 @@ msgstr "اربط محفظتك لعرض سجل التداول."
msgid "Connect your wallet to view TWAP orders."
msgstr "اربط محفظتك لعرض أوامر TWAP."
+#: src/components/account/account-page.tsx
+msgid "Connect your wallet to view your account overview, positions, and history."
+msgstr ""
+
#: src/components/trade/mobile/mobile-account-view.tsx
msgid "Connect your wallet to view your account, positions, and start trading."
msgstr ""
@@ -567,6 +595,10 @@ msgstr ""
msgid "Created"
msgstr ""
+#: src/components/account/account-leverage-settings.tsx
+#: src/components/account/account-leverage-settings.tsx
+#: src/components/account/account-positions.tsx
+#: src/components/account/account-positions.tsx
#: src/components/trade/positions/positions-tab.tsx
#: src/components/trade/tradebox/margin-mode-modal.tsx
#: src/components/trade/tradebox/margin-mode-modal.tsx
@@ -574,13 +606,17 @@ msgstr ""
msgid "Cross"
msgstr "متقاطع"
+#: src/components/account/account-leverage-settings.tsx
+msgid "Cross → Isolated"
+msgstr ""
+
#: src/components/trade/tradebox/account-panel.tsx
msgid "Cross Account Leverage"
msgstr ""
-#: src/components/trade/tradebox/account-panel.tsx
-#~ msgid "Cross Leverage"
-#~ msgstr "الرافعة المتقاطعة"
+#: src/components/account/account-page.tsx
+msgid "Cross Leverage"
+msgstr "الرافعة المتقاطعة"
#: src/components/trade/mobile/mobile-account-view.tsx
msgid "Cross Margin"
@@ -618,6 +654,7 @@ msgstr ""
msgid "Default"
msgstr ""
+#: src/components/account/account-page.tsx
#: src/components/trade/header/top-nav.tsx
#: src/components/trade/mobile/mobile-nav-drawer.tsx
#: src/components/trade/tradebox/account-panel.tsx
@@ -666,6 +703,10 @@ msgstr ""
msgid "Destination address"
msgstr ""
+#: src/components/account/account-history.tsx
+msgid "Details"
+msgstr ""
+
#: src/components/trade/order-entry/order-entry-panel.tsx
#~ msgid "Direct"
#~ msgstr ""
@@ -715,6 +756,11 @@ msgstr ""
msgid "Each position uses only its allocated margin. If the margin ratio reaches 100%, the position is liquidated. Margin can be added or removed individually."
msgstr ""
+#: src/components/account/account-leverage-settings.tsx
+#: src/components/account/account-leverage-settings.tsx
+msgid "Edit leverage"
+msgstr ""
+
#: src/components/trade/positions/positions-tab.tsx
msgid "Edit TP/SL"
msgstr ""
@@ -765,6 +811,12 @@ msgstr ""
msgid "Enter trigger price"
msgstr ""
+#: src/components/account/account-history.tsx
+msgid "entries"
+msgstr ""
+
+#: src/components/account/account-positions.tsx
+#: src/components/account/account-positions.tsx
#: src/components/trade/mobile/mobile-positions-tab.tsx
#: src/components/trade/positions/positions-tab.tsx
msgid "Entry"
@@ -848,6 +900,7 @@ msgstr "فشل تفعيل التداول"
msgid "Failed to load balances"
msgstr ""
+#: src/components/account/account-balances.tsx
#: src/components/trade/mobile/mobile-balances-tab.tsx
#: src/components/trade/positions/balances-tab.tsx
msgid "Failed to load balances."
@@ -872,6 +925,7 @@ msgstr "فشل في تحميل دفتر الأوامر."
msgid "Failed to load order history."
msgstr ""
+#: src/components/account/account-positions.tsx
#: src/components/trade/mobile/mobile-positions-tab.tsx
#: src/components/trade/positions/positions-tab.tsx
msgid "Failed to load positions."
@@ -898,10 +952,16 @@ msgstr "فشل في تحميل الصفقات."
msgid "Failed to reverse position"
msgstr ""
-#: src/components/trade/order-entry/order-entry-panel.tsx
-#~ msgid "Failed to switch margin mode"
-#~ msgstr ""
+#: src/components/account/account-leverage-settings.tsx
+msgid "Failed to switch margin mode"
+msgstr ""
+
+#: src/components/account/account-leverage-settings.tsx
+msgid "Failed to update leverage"
+msgstr ""
+#: src/components/account/account-history.tsx
+#: src/components/account/account-history.tsx
#: src/components/trade/mobile/mobile-history-tab.tsx
#: src/components/trade/positions/history-tab.tsx
msgid "Fee"
@@ -923,9 +983,10 @@ msgstr "الرسوم"
#~ msgid "Fetching quote..."
#~ msgstr ""
+#. placeholder {0}: formatPrice(markPx, { szDecimals: market?.szDecimals })
#: src/components/trade/mobile/mobile-trade-view.tsx
-#~ msgid "Fill limit price with mark price {0}"
-#~ msgstr ""
+msgid "Fill limit price with mark price {0}"
+msgstr ""
#: src/components/trade/tradebox/bridge-tab.tsx
#: src/components/trade/tradebox/bridge-tab.tsx
@@ -958,6 +1019,7 @@ msgstr ""
#~ msgid "Full Position"
#~ msgstr ""
+#: src/components/account/account-history.tsx
#: src/components/trade/chart/token-selector-columns.ts
#: src/components/trade/chart/token-selector.tsx
#: src/components/trade/mobile/mobile-positions-tab.tsx
@@ -1003,14 +1065,17 @@ msgstr ""
msgid "Go to trading terminal"
msgstr "الذهاب إلى منصة التداول"
+#: src/components/account/account-balances.tsx
#: src/components/trade/mobile/mobile-balances-tab.tsx
#: src/components/trade/positions/balances-tab.tsx
msgid "Hide small"
msgstr ""
-#: src/components/trade/tradebox/account-panel.tsx
-#~ msgid "In Orders"
-#~ msgstr ""
+#: src/components/account/account-balances.tsx
+#: src/components/account/account-balances.tsx
+#: src/components/account/account-page.tsx
+msgid "In Orders"
+msgstr ""
#: src/components/trade/positions/balances-tab.tsx
#~ msgid "In Use"
@@ -1059,6 +1124,10 @@ msgstr ""
msgid "Invalid Ethereum address"
msgstr ""
+#: src/components/account/account-leverage-settings.tsx
+#: src/components/account/account-leverage-settings.tsx
+#: src/components/account/account-positions.tsx
+#: src/components/account/account-positions.tsx
#: src/components/trade/positions/positions-tab.tsx
#: src/components/trade/tradebox/margin-mode-modal.tsx
#: src/components/trade/tradebox/margin-mode-modal.tsx
@@ -1066,6 +1135,10 @@ msgstr ""
msgid "Isolated"
msgstr "معزول"
+#: src/components/account/account-leverage-settings.tsx
+msgid "Isolated → Cross"
+msgstr ""
+
#: src/components/trade/footer/footer-bar.tsx
#~ msgid "Latency:"
#~ msgstr "التأخير:"
@@ -1079,12 +1152,27 @@ msgstr "لوحة المتصدرين"
msgid "Learn more"
msgstr ""
+#: src/components/account/account-history.tsx
+msgid "Ledger"
+msgstr ""
+
+#: src/components/account/account-leverage-settings.tsx
+#: src/components/account/account-positions.tsx
+#: src/components/account/account-positions.tsx
#: src/components/trade/tradebox/leverage-control.tsx
#: src/components/trade/tradebox/leverage-control.tsx
#: src/components/trade/tradebox/margin-mode-modal.tsx
msgid "Leverage"
msgstr ""
+#: src/components/account/account-leverage-settings.tsx
+msgid "Leverage Settings"
+msgstr ""
+
+#: src/components/account/account-leverage-settings.tsx
+msgid "Leverage updated to {pendingLeverage}× for {coin}"
+msgstr ""
+
#: src/components/trade/components/global-settings-dialog.tsx
#~ msgid "Light"
#~ msgstr ""
@@ -1126,10 +1214,16 @@ msgstr "السعر المحدد"
msgid "Liq"
msgstr "التصفية"
+#: src/components/account/account-positions.tsx
+#: src/components/account/account-positions.tsx
+msgid "Liq Price"
+msgstr ""
+
#: src/components/trade/tradebox/order-summary.tsx
msgid "Liq. Price"
msgstr "سعر التصفية"
+#: src/components/account/account-history.tsx
#: src/components/trade/mobile/mobile-history-tab.tsx
#: src/components/trade/positions/history-tab.tsx
msgid "Liquidated"
@@ -1184,6 +1278,8 @@ msgstr "جاري تحميل المحفظة..."
msgid "Loading..."
msgstr "جارٍ التحميل..."
+#: src/components/account/account-positions.tsx
+#: src/components/account/account-positions.tsx
#: src/components/trade/mobile/mobile-positions-tab.tsx
#: src/components/trade/positions/position-tpsl-modal.tsx
msgid "Long"
@@ -1202,6 +1298,8 @@ msgstr ""
#~ msgid "Manage your risk on individual positions by restricting the amount of margin allocated to each. If the margin ratio of an isolated position reaches 100%, the position will be liquidated. Margin can be added or removed to individual positions in this mode."
#~ msgstr ""
+#: src/components/account/account-positions.tsx
+#: src/components/account/account-positions.tsx
#: src/components/trade/mobile/mobile-positions-tab.tsx
#: src/components/trade/positions/positions-tab.tsx
msgid "Margin"
@@ -1219,22 +1317,29 @@ msgstr ""
msgid "Margin mode"
msgstr ""
-#: src/components/trade/tradebox/margin-mode-dialog.tsx
-#~ msgid "Margin Mode"
-#~ msgstr ""
+#: src/components/account/account-leverage-settings.tsx
+msgid "Margin Mode"
+msgstr ""
-#: src/components/trade/tradebox/account-panel.tsx
-#~ msgid "Margin Ratio"
-#~ msgstr "نسبة الهامش"
+#. placeholder {0}: newMode === "cross" ? t`Cross` : t`Isolated`
+#: src/components/account/account-leverage-settings.tsx
+msgid "Margin mode switched to {0} for {coin}"
+msgstr ""
+
+#: src/components/account/account-page.tsx
+msgid "Margin Ratio"
+msgstr "نسبة الهامش"
#: src/components/trade/tradebox/order-summary.tsx
msgid "Margin Req."
msgstr "الهامش المطلوب"
-#: src/components/trade/tradebox/account-panel.tsx
-#~ msgid "Margin Used"
-#~ msgstr "الهامش المستخدم"
+#: src/components/account/account-page.tsx
+msgid "Margin Used"
+msgstr "الهامش المستخدم"
+#: src/components/account/account-positions.tsx
+#: src/components/account/account-positions.tsx
#: src/components/trade/mobile/mobile-positions-tab.tsx
#: src/components/trade/positions/positions-tab.tsx
msgid "Mark"
@@ -1442,16 +1547,25 @@ msgstr ""
msgid "No balances found. Deposit funds to start trading."
msgstr "لم يتم العثور على أرصدة. أودع أموالاً لبدء التداول."
+#: src/components/account/account-pnl-chart.tsx
+#~ msgid "No data available"
+#~ msgstr ""
+
#: src/components/trade/mobile/mobile-history-tab.tsx
#: src/components/trade/positions/history-tab.tsx
msgid "No fills found."
msgstr "لم يتم العثور على تنفيذات."
+#: src/components/account/account-history.tsx
#: src/components/trade/mobile/mobile-funding-tab.tsx
#: src/components/trade/positions/funding-tab.tsx
msgid "No funding payments found."
msgstr "لم يتم العثور على مدفوعات تمويل."
+#: src/components/account/account-history.tsx
+msgid "No ledger activity found."
+msgstr ""
+
#: src/lib/errors/definitions/market.ts
msgid "No mark price"
msgstr "لا يوجد سعر مرجعي"
@@ -1469,6 +1583,15 @@ msgstr "لم يتم العثور على أسواق."
msgid "No open orders."
msgstr "لا توجد أوامر مفتوحة."
+#: src/components/account/account-positions.tsx
+msgid "No open positions."
+msgstr ""
+
+#: src/components/account/account-leverage-settings.tsx
+msgid "No open positions. Leverage settings appear here when you have active positions."
+msgstr ""
+
+#: src/components/account/account-history.tsx
#: src/components/trade/mobile/mobile-orders-history-tab.tsx
#: src/components/trade/positions/orders-history-tab.tsx
msgid "No order history found."
@@ -1482,6 +1605,10 @@ msgstr ""
msgid "No route available. Try a different amount or asset."
msgstr ""
+#: src/components/account/account-balances.tsx
+msgid "No spot balances."
+msgstr ""
+
#: src/components/trade/components/token-selector-dropdown.tsx
#~ msgid "No tokens available"
#~ msgstr ""
@@ -1490,6 +1617,10 @@ msgstr ""
msgid "No tokens with value found across supported chains"
msgstr ""
+#: src/components/account/account-history.tsx
+msgid "No trades found."
+msgstr ""
+
#: src/components/trade/order-entry/swap-asset-modal.tsx
#~ msgid "No trading pair available for {fromToken}/{toToken}"
#~ msgstr ""
@@ -1567,6 +1698,10 @@ msgstr "العقود المفتوحة"
msgid "Open Orders"
msgstr "الأوامر المفتوحة"
+#: src/components/account/account-positions.tsx
+msgid "Open Positions"
+msgstr ""
+
#: src/components/trade/positions/positions-tab.tsx
#~ msgid "Open positions count"
#~ msgstr ""
@@ -1609,13 +1744,14 @@ msgstr ""
msgid "Order Value"
msgstr "قيمة الطلب"
+#: src/components/account/account-history.tsx
#: src/components/trade/positions/orders-history-tab.tsx
msgid "orders"
msgstr ""
-#: src/components/trade/positions/orders-history-tab.tsx
-#~ msgid "Orders"
-#~ msgstr ""
+#: src/components/account/account-history.tsx
+msgid "Orders"
+msgstr ""
#: src/components/trade/tradebox/advanced-order-dropdown.tsx
#: src/components/trade/tradebox/advanced-order-dropdown.tsx
@@ -1639,10 +1775,15 @@ msgstr "الصفحة غير موجودة"
#~ msgid "pagination"
#~ msgstr "ترقيم الصفحات"
+#: src/components/account/account-history.tsx
#: src/components/trade/positions/funding-tab.tsx
msgid "Payment"
msgstr "الدفعة"
+#: src/components/account/account-history.tsx
+msgid "payments"
+msgstr ""
+
#: src/components/trade/tradebox/order-toast.tsx
msgid "pending"
msgstr "قيد الانتظار"
@@ -1658,11 +1799,17 @@ msgstr "قيد الانتظار"
msgid "Perp"
msgstr ""
+#: src/components/account/account-history.tsx
+msgid "Perp → Spot"
+msgstr ""
+
#: src/components/trade/mobile/mobile-balances-tab.tsx
#: src/components/trade/positions/balances-tab.tsx
msgid "Perpetuals"
msgstr ""
+#: src/components/account/account-page.tsx
+#: src/components/account/account-page.tsx
#: src/components/trade/tradebox/account-panel.tsx
msgid "Perps"
msgstr "العقود الدائمة"
@@ -1692,6 +1839,8 @@ msgstr ""
msgid "Please enter an address"
msgstr ""
+#: src/components/account/account-history.tsx
+#: src/components/account/account-positions.tsx
#: src/components/trade/positions/balances-tab.tsx
#: src/components/trade/positions/history-tab.tsx
#: src/components/trade/positions/positions-tab.tsx
@@ -1707,6 +1856,11 @@ msgstr "الربح والخسارة"
msgid "Portfolio"
msgstr "المحفظة"
+#: src/components/account/account-pnl-chart.tsx
+msgid "Portfolio PNL"
+msgstr ""
+
+#: src/components/account/account-history.tsx
#: src/components/trade/mobile/mobile-funding-tab.tsx
#: src/components/trade/positions/funding-tab.tsx
#: src/components/trade/tradebox/trade-form-fields.tsx
@@ -1742,6 +1896,8 @@ msgstr ""
#~ msgid "Previous"
#~ msgstr "السابق"
+#: src/components/account/account-history.tsx
+#: src/components/account/account-history.tsx
#: src/components/trade/chart/token-selector-columns.ts
#: src/components/trade/chart/token-selector.tsx
#: src/components/trade/mobile/mobile-history-tab.tsx
@@ -1790,6 +1946,7 @@ msgstr ""
msgid "Randomize timing"
msgstr ""
+#: src/components/account/account-history.tsx
#: src/components/trade/components/spot-swap-modal.tsx
#: src/components/trade/mobile/mobile-funding-tab.tsx
#: src/components/trade/positions/funding-tab.tsx
@@ -1948,6 +2105,7 @@ msgstr "بيع"
#~ msgid "Sell Short"
#~ msgstr "بيع قصير"
+#: src/components/account/account-page.tsx
#: src/components/trade/mobile/mobile-balances-tab.tsx
#: src/components/trade/positions/balances-tab.tsx
#: src/components/trade/positions/send-modal.tsx
@@ -2003,6 +2161,8 @@ msgstr ""
msgid "Settings"
msgstr "الإعدادات"
+#: src/components/account/account-positions.tsx
+#: src/components/account/account-positions.tsx
#: src/components/trade/mobile/mobile-positions-tab.tsx
#: src/components/trade/positions/position-tpsl-modal.tsx
msgid "Short"
@@ -2048,9 +2208,9 @@ msgstr ""
#~ msgid "Show Values in USD"
#~ msgstr "إظهار القيم بالدولار"
-#: src/components/trade/positions/position-tpsl-modal.tsx
-#~ msgid "Side"
-#~ msgstr ""
+#: src/components/account/account-history.tsx
+msgid "Side"
+msgstr ""
#: src/components/ui/sidebar.tsx
#~ msgid "Sidebar"
@@ -2068,6 +2228,10 @@ msgstr "المُوقِّع غير جاهز"
#~ msgid "Signing..."
#~ msgstr "جاري التوقيع..."
+#: src/components/account/account-history.tsx
+#: src/components/account/account-history.tsx
+#: src/components/account/account-positions.tsx
+#: src/components/account/account-positions.tsx
#: src/components/trade/mobile/mobile-history-tab.tsx
#: src/components/trade/mobile/mobile-orders-history-tab.tsx
#: src/components/trade/mobile/mobile-orders-tab.tsx
@@ -2153,6 +2317,8 @@ msgstr ""
#~ msgid "spot"
#~ msgstr "فوري"
+#: src/components/account/account-page.tsx
+#: src/components/account/account-page.tsx
#: src/components/trade/header/top-nav.tsx
#: src/components/trade/mobile/mobile-balances-tab.tsx
#: src/components/trade/mobile/mobile-nav-drawer.tsx
@@ -2163,10 +2329,18 @@ msgstr ""
msgid "Spot"
msgstr "فوري"
+#: src/components/account/account-history.tsx
+msgid "Spot → Perp"
+msgstr ""
+
#: src/components/trade/positions/send-modal.tsx
msgid "Spot Account"
msgstr ""
+#: src/components/account/account-balances.tsx
+msgid "Spot Balances"
+msgstr ""
+
#: src/components/pages/builder-page.tsx
#~ msgid "Spot: Max 1% (100 basis points)"
#~ msgstr ""
@@ -2192,6 +2366,7 @@ msgstr ""
#~ msgid "Start Price (USDC)"
#~ msgstr ""
+#: src/components/account/account-history.tsx
#: src/components/trade/positions/orders-history-tab.tsx
msgid "Status"
msgstr "الحالة"
@@ -2363,6 +2538,10 @@ msgstr "الصفحة التي تبحث عنها غير موجودة."
msgid "TIF"
msgstr ""
+#: src/components/account/account-history.tsx
+#: src/components/account/account-history.tsx
+#: src/components/account/account-history.tsx
+#: src/components/account/account-history.tsx
#: src/components/trade/mobile/mobile-funding-tab.tsx
#: src/components/trade/orderbook/trades-panel.tsx
#: src/components/trade/positions/funding-tab.tsx
@@ -2405,16 +2584,26 @@ msgstr ""
msgid "Toggle size mode"
msgstr "تبديل وضع الحجم"
+#: src/components/account/account-balances.tsx
+msgid "Token"
+msgstr ""
+
#: src/components/trade/market-overview.tsx
msgid "TOKEN"
msgstr ""
+#: src/components/account/account-balances.tsx
+#: src/components/account/account-balances.tsx
#: src/components/trade/mobile/mobile-balances-tab.tsx
#: src/components/trade/orderbook/orderbook-panel.tsx
#: src/components/trade/positions/balances-tab.tsx
msgid "Total"
msgstr "الإجمالي"
+#: src/components/account/account-page.tsx
+msgid "Total Equity"
+msgstr ""
+
#: src/components/trade/positions/twap-tab.tsx
#~ msgid "Total Size"
#~ msgstr "الحجم الإجمالي"
@@ -2423,9 +2612,9 @@ msgstr "الإجمالي"
msgid "Total time"
msgstr ""
-#: src/components/trade/tradebox/account-panel.tsx
-#~ msgid "Total Value"
-#~ msgstr ""
+#: src/components/account/account-page.tsx
+msgid "Total Value"
+msgstr ""
#: src/components/trade/positions/orders-tab.tsx
#~ msgid "TP"
@@ -2476,10 +2665,12 @@ msgstr "سجل التداول"
msgid "Trade via {0} spot market"
msgstr ""
+#: src/components/account/account-history.tsx
#: src/components/trade/positions/history-tab.tsx
msgid "trades"
msgstr ""
+#: src/components/account/account-history.tsx
#: src/components/trade/orderbook/orderbook-panel.tsx
msgid "Trades"
msgstr "الصفقات"
@@ -2496,6 +2687,7 @@ msgstr ""
msgid "Transaction was rejected"
msgstr ""
+#: src/components/account/account-page.tsx
#: src/components/trade/positions/transfer-modal.tsx
#: src/components/trade/tradebox/deposit-modal.tsx
#: src/components/trade/tradebox/deposit-modal.tsx
@@ -2550,6 +2742,8 @@ msgstr ""
msgid "TWAP Orders"
msgstr "أوامر TWAP"
+#: src/components/account/account-history.tsx
+#: src/components/account/account-history.tsx
#: src/components/trade/mobile/mobile-orders-history-tab.tsx
#: src/components/trade/positions/history-tab.tsx
#: src/components/trade/positions/orders-history-tab.tsx
@@ -2579,6 +2773,8 @@ msgstr "رمز غير معروف: {symbolName}"
msgid "Unrealized P&L"
msgstr ""
+#: src/components/account/account-page.tsx
+#: src/components/account/account-page.tsx
#: src/components/trade/tradebox/account-panel.tsx
msgid "Unrealized PNL"
msgstr "الربح والخسارة غير المحققة"
@@ -2588,6 +2784,7 @@ msgstr "الربح والخسارة غير المحققة"
msgid "Unsupported resolution: {0}"
msgstr "دقة غير مدعومة: {0}"
+#: src/components/account/account-leverage-settings.tsx
#: src/components/trade/tradebox/leverage-control.tsx
#: src/components/trade/tradebox/margin-mode-modal.tsx
msgid "Update failed"
@@ -2604,6 +2801,7 @@ msgstr ""
msgid "Updated live"
msgstr "تحديث مباشر"
+#: src/components/account/account-balances.tsx
#: src/components/trade/positions/balances-tab.tsx
msgid "USD Value"
msgstr "القيمة بالدولار"
@@ -2680,6 +2878,7 @@ msgstr "المحفظة غير متصلة"
msgid "will arrive in ~5 min"
msgstr ""
+#: src/components/account/account-page.tsx
#: src/components/trade/tradebox/account-panel.tsx
#: src/components/trade/tradebox/account-panel.tsx
#: src/components/trade/tradebox/deposit-modal.tsx
@@ -2689,6 +2888,10 @@ msgstr ""
msgid "Withdraw"
msgstr "سحب"
+#: src/components/account/account-page.tsx
+msgid "Withdrawable"
+msgstr ""
+
#: src/components/trade/tradebox/deposit-modal.tsx
msgid "Withdrawal failed"
msgstr ""
diff --git a/apps/terminal/src/locales/en/messages.js b/apps/terminal/src/locales/en/messages.js
index 905e6ca3..f0aa1652 100644
--- a/apps/terminal/src/locales/en/messages.js
+++ b/apps/terminal/src/locales/en/messages.js
@@ -1,5 +1,5 @@
/*eslint-disable*/ module.exports = {
messages: JSON.parse(
- '{"++OGth":["Deposit successful"],"+1S7b1":["Wallet not connected"],"+6YAwo":["selected"],"+8WrGc":["No wallets found"],"+F8cLG":["Displays the mobile sidebar."],"+JE0m7":["Failed to load positions."],"+K0AvT":["Disconnect"],"+N2Rqk":["No active positions."],"+ONfBR":["PRICE"],"+ZV3i5":["Failed to load open orders."],"+b7T3G":["Updated"],"+hA/UM":["Open Orders"],"+nuEh/":["Estimated time"],"+w/hP1":["Show Executions on Chart"],"+xnyQO":["Enter size"],"+z3YcL":["Position actions"],"+zy2Nq":["Type"],"/2hibY":["Cancel selected"],"/AsMcZ":["Enabling..."],"/IX/7x":["Other"],"/PvdTS":["Gas (",["0"],")"],"/TT0Oq":["ORACLE"],"/cF7Rs":["Volume"],"/gY2VH":["Filter by ",["0"]],"/jQctM":["To"],"/kXBrK":["Total time"],"/mfICu":["Fees"],"/tPR7R":["Builder Fee"],"0+Iw6C":["Duration (Minutes)"],"0+X+sh":["Spot Account"],"0LZtsz":["Take Market"],"0Mx4+k":["No trading pair available for ",["fromTokenDisplay"],"/",["toTokenDisplay"]],"0P2gFy":["The page you are looking for does not exist."],"0QDjxt":["Balance:"],"0RrIzN":["Select token"],"0Xlr0L":["Minimum deposit is ",["0"]," USDC"],"0exG4Q":["Funding"],"0z59Ep":["sell"],"1BkDWk":["Buy Long"],"1QfxQT":["Dismiss"],"1UzENP":["No"],"1ZMjyh":["The builder at ",["0"],"...",["1"]," can now charge up to ",["maxFeeRate"],"% fee on orders placed on your behalf."],"1h+RBg":["Orders"],"1njn7W":["Light"],"29VNqC":["Unknown error"],"2Ea5Vz":["Trade History"],"2FYpfJ":["More"],"2M2s7z":["Enable Trading"],"2PsTzL":["completed"],"2tQrK2":["Switch to Arbitrum"],"3/vMct":["A crypto wallet lets you store and manage your digital assets securely."],"30ZPad":["Active Positions"],"3CHbH/":["SL Price"],"3DtJpz":["Stop Limit"],"3IkQgP":["Secure & Private"],"3Siwmw":["More options"],"3UZudY":["Stop trigger must be below mark"],"3fPjUY":["Pro"],"3oHIhx":["TP must be above entry"],"4+HkLv":["Show Values in Quote Asset"],"40lLFI":["Go to next page"],"42w2ly":["OI"],"46Sm8O":["Gas:"],"4HtGBb":["MAX"],"4J2s8f":["Canceling..."],"4Kyst7":["Agent mode: Orders signed automatically (fast)"],"4NuBK4":["Waiting for trades..."],"4Vzb+4":["Closing..."],"54QqdM":["Signing..."],"5FsTU5":["Wallet client not ready"],"5Omwef":["Scale level below min notional"],"5joj8M":["Transaction breakdown"],"5oE2C+":["Sorted by ",["0"]],"5u8fWJ":["Back to asset selection"],"5xKxZd":["TP trigger price"],"5zbbOn":["Invalid amount"],"60m4P5":["24H VOL"],"621rYf":["Payment"],"63wHTy":["Edit TP/SL"],"69b7aE":["Open command menu"],"6Aih4U":["Offline"],"6gRgw8":["Retry"],"6jVqpA":["Failed to load trade history."],"6poLt9":["Toggle Sidebar"],"6vyJOd":["Deposit from any chain to your Hyperliquid account"],"6zAIUU":["Cannot switch to Isolated mode with an open position. Close your position first."],"72c5Qo":["Total"],"77Rx22":["Collapse account panel"],"7L01XJ":["Actions"],"7Lv7j5":["Margin Mode"],"7VpPHA":["Confirm"],"7l15X4":["failed"],"88cUW+":["You receive"],"8F1i42":["Page not found"],"8Fu1E7":["Toggle size mode"],"8Itoo3":["Unrealized P&L"],"8LkAxv":["SL must be below entry"],"8SNccp":["Switch to ",["displayName"]," market, short position"],"8gcijf":["Insufficient <0/> balance"],"8hvfaA":["Position closed"],"8yhvii":["Mid"],"997z0L":["Spot: Max 1% (100 basis points)"],"9ACh/c":["No mark price"],"9SBcQj":["All cross positions share the same cross margin as collateral. In the event of liquidation, your cross margin balance and any remaining open positions may be forfeited."],"9lH5ev":["Loading open orders..."],"9mRTyg":["Block:"],"9qnvU0":["Switch to ",["displayName"]," market"],"9ykF9H":["Hide small"],"9zb2WA":["Connecting"],"A+q/Is":["markets"],"A1taO8":["Search"],"AArF6S":["Move USDC between your Perp and Spot accounts."],"AEGM8s":["Failed to copy"],"AErIoZ":["Manage your risk on individual positions by restricting the amount of margin allocated to each. If the margin ratio of an isolated position reaches 100%, the position will be liquidated. Margin can be added or removed to individual positions in this mode."],"AGWjPT":["Set ",["p"],"%"],"AUYALh":["Coming soon"],"AUahCv":["Insufficient funds for gas"],"AeXO77":["Account"],"B5AKvo":["Mark"],"BOppjS":["No market"],"BSj/hz":["Add funds"],"BvlAGq":["Unrealized PNL"],"BxBZCk":["Each position uses only its allocated margin. If the margin ratio reaches 100%, the position is liquidated. Margin can be added or removed individually."],"C2TJN3":["Loading TWAP orders..."],"CF1zwJ":["Failed to load funding history."],"CK1KXz":["Max"],"CMHmbm":["Slippage"],"CP3D8G":["Progress"],"CW11B+":["Minimum"],"CfRvLF":["Swap failed"],"CgqzuN":["Cross"],"Cj2Gtd":["Size"],"Cjh38d":["New to wallets?"],"Ck1xL4":["You send"],"Co8gGw":["No active TWAP orders."],"CtByM7":["Connect Wallet"],"CzeOTH":["Wallet (",["0"],")"],"D243f/":["Install a wallet extension to continue"],"D6X5UU":["Market Close"],"DBVcOk":["More intervals"],"DHhJ7s":["Previous"],"DPfwMq":["Done"],"DWs3bP":["Mark:"],"DXxfpS":["Select order book aggregation"],"DZo9LT":["Mock Wallet (Testing)"],"DabQ8P":["TWAP Orders"],"E8sxZm":["Show Positions on Chart"],"EE/1QC":["Format for numbers and dates"],"ETkk6Z":["TOKEN"],"Enslfm":["Destination"],"F6pfE9":["Active"],"FF5wYg":["Select all orders"],"FKY8dA":["Est. P&L at Limit"],"FLNk0d":["Min order $",["ORDER_MIN_NOTIONAL_USD"]],"FLkCnQ":["You can revoke permissions at any time by registering a new approval with 0% fee rate. Builder codes are processed entirely onchain as part of the fee logic."],"FS+bo3":["Unable to close position."],"Fdp03t":["on"],"FmemI7":["FUNDING"],"FqmhBo":["No balance on Hyperliquid. Deposit first."],"FxVG/l":["Copied to clipboard"],"G3oEYi":["Select order"],"G6etJA":["Loading balances..."],"GINUX/":["Only you control your funds. No email or password required."],"GLWV4x":["Builder must have at least 100 USDC in perps account value"],"GX8GKD":["Assets"],"GbNWWs":["Slippage tolerance"],"H2Sfhg":["Trigger"],"HJlY85":["No balance"],"HZN+sw":["Trading"],"HZdgTJ":["Select signing mode"],"HfT9T6":["No route available. Try a different amount or asset."],"Hp1l6f":["Current"],"I8LlJA":["TradingView"],"ICCWOn":["Could not create wallet"],"IJfJAB":["Margin mode"],"IJndUb":["Connect your wallet to register a builder code"],"IV3hWp":["Enter trigger price"],"IZL9b6":["Cross Leverage"],"IcSLiu":["Oracle"],"Ieh2cV":["Expand account panel"],"IoAuJG":["Sending..."],"IwI0rY":["Wrong network"],"IyNxxU":["perp"],"J24FyN":["Bridge"],"J28zul":["Connecting..."],"JHxGP5":["Trade"],"JVvYNb":["Deposit complete"],"JXzPJX":["SL"],"JfWXib":["Track on LI.FI Explorer"],"JlFcis":["Send"],"Ju4B2M":["Select leverage"],"JuyzMZ":["Maximum slippage tolerance for market orders"],"KTNWsg":["Withdrawal failed"],"KYAjf3":["Isolated"],"KZHfkR":["Deposit Funds"],"KaqqlB":["Deposit on Hyperliquid"],"Ke6k18":["Leverage"],"KeDrPl":["Minimum deposit is 5 USDC"],"KnTbj2":["Show Orders on Chart"],"Kp3IPD":["No response from exchange"],"KsqhWn":["Staking"],"KxF048":["Customize your trading experience."],"Kz1TxG":["open"],"L+qiq+":["Market"],"L4jnDP":["Executed"],"LEbOpR":["More details"],"LHfqhz":["New deposit"],"LMMGPr":["Submitting..."],"Le70b5":["More pages"],"LhMjLm":["Time"],"LlsvFY":["Reduce"],"Lx+htK":["Swap submitted"],"Lz5J1x":["Sort by ",["sortLabel"]],"M0biAV":["Preparing your quote..."],"M9fkA0":["Liquidated"],"MLQamJ":["Connect your wallet to view trade history."],"MSSmsu":["To Perp"],"MTq3hP":["24h vol"],"Mim7/r":["Insufficient ",["fromTokenDisplay"]," balance"],"MpLcsV":["Loading balances across all chains..."],"MqA4qt":["Portfolio"],"MyytBE":["Send tokens to another account on the Hyperliquid L1."],"N40H+G":["All"],"NIDWjN":["SL must be above entry"],"NJNMJX":["TWAP"],"NNJKWa":["Connect your wallet to withdraw funds"],"NQtgSJ":["Failed to register builder code"],"NpuiU+":["Perps"],"NsJrqM":["Market not ready"],"ODVKKZ":["Enter limit price"],"OQGH4C":["limit ro"],"OR475H":["Network"],"OSnZvX":["Change leverage"],"OYsSpP":["Failed to reverse position"],"OZtEcz":["API"],"Oe3M3Y":["Switch to Arbitrum to deposit USDC to Hyperliquid"],"Oid00w":["Enter price range"],"OsyKSt":["Withdraw"],"Otdc/Y":["Connect your wallet to view positions."],"OxPEUg":["In Use"],"PJEzIS":["Bridge to Hyperliquid"],"PLUB/s":["Fee"],"PNsB0A":["Fetching quote..."],"PTna/x":["Open Interest"],"PTyoXs":["Set SL to ",["p"],"%"],"PWRc/M":["Open positions count"],"PZBWpL":["Switch to light mode"],"PaQ3df":["Enable"],"PcmIvv":["bps"],"PeO4lq":["Requirements:"],"PelVTv":["Register Builder Code"],"PiH3UR":["Copied!"],"Pl9jiz":["Show Orders"],"QD2PKQ":["End Price"],"QHcLEN":["Connected"],"QjUEvK":["Cancel all"],"R68yLX":["Set TP/SL"],"RRXpo1":["Short"],"RaWC6b":["Size exceeds position"],"Rb1yph":["Liq. Price"],"RnpwtT":["TWAP minutes must be ",["TWAP_MINUTES_MIN"],"-",["TWAP_MINUTES_MAX"]],"RoE+o+":["Reduce Only"],"S33tz3":["Not connected"],"S48xcO":["pending"],"S9zH+G":["This action must be signed by your main wallet (not an agent/API wallet). The builder must have at least 100 USDC in perps account value."],"SEDVHU":["Loading positions..."],"SEoDwA":["Take Limit"],"SJrFO1":["Position close actions"],"SVHeJc":["Direct mode: Sign each order with wallet"],"SWH2Eh":["Time in Force"],"SsGsC0":["Cancel selected orders"],"Svkela":["Go to previous page"],"T/pF0Z":["Remove from favorites"],"TDa39c":["24h Price"],"THTG58":["Select asset to bridge"],"THmCgW":["Select market"],"TK3J5O":["Send Tokens"],"TK9uys":["Select ",["coin"]," market"],"TLa4Oo":["Connect a wallet to manage positions."],"TNtZN2":["TP"],"TQ/QV5":["No trading pair available for ",["fromToken"],"/",["toToken"]],"TT0aVH":["Order submitted"],"TbjyhA":["Docs"],"Tm8JF7":["Connect your wallet to bridge funds"],"Tuc34V":["Confirm Bridge"],"Tz0i8g":["Settings"],"U3As+R":["Take Profit"],"U86eEA":["No user address"],"URvngU":["Est. time"],"UXtGFD":["Full Position"],"UwG7db":["What is a wallet?"],"V0ubMJ":["Take Profit / Stop Loss"],"V3XYw0":["P&L"],"V6ETmV":["To Spot"],"VAZUpd":["Order failed"],"VIwCaD":["Entry"],"VMLGYS":["Switch to Mainnet"],"VU5rsP":["Number Format"],"VXCk+w":["Loading markets..."],"VYFX4v":["Perpetuals"],"VcaZ5z":["No markets found."],"VgTxu0":["Signer not ready"],"VmhkuH":["Account and wallet"],"W1k7eB":["24h"],"W75iLe":["Connect your wallet to view balances."],"W9Fxbx":["SL trigger price"],"WISj7i":["Place Limit Close"],"WNMYIN":["cancelled"],"WajXzx":["Est. P&L"],"WhSRZw":["This row answers: “What is the selected market doing right now?” — mark price, 24h move, oracle, volume, open interest, and funding. Pick a layout that balances scan speed, density, and calm."],"Wqz0SO":["Low Balance"],"XCIAdj":["RO"],"XFp9Bf":["Scale levels must be ",["SCALE_LEVELS_MIN"],"-",["SCALE_LEVELS_MAX"]],"XYLcNv":["Support"],"XbxYxh":["Price grouping"],"Y1W9ip":["Equity"],"Y9gMWT":["Failed to load order book."],"YZLEvW":["Processing deposit"],"YnKdJE":["Margin Used"],"YxaAON":["Spread"],"Z3FXyt":["Loading..."],"ZB/Jm6":["Margin & leverage"],"ZDBdfg":["Enter TP or SL price"],"ZFtwlj":["Trades"],"ZHJZmo":["Amount (USDC)"],"ZYnwzF":["Disconnected"],"ZmGjjl":["Your bridge is still processing. Funds are safe."],"a/MzGi":["sent to Hyperliquid"],"a7u1N9":["Price"],"a9q6hE":["waiting"],"aAIQg2":["Appearance"],"adcjkX":["Limit close order placed"],"axyo2z":["Connect a wallet to manage orders."],"b7Wduj":["buy"],"bMJMhJ":["WebSocket error"],"bSCsJh":["TP/SL"],"bUUVED":["Asset"],"bVPv2S":["Updated live"],"bW1xET":["Stop trigger must be above mark"],"bifv6N":["Scale"],"bm80CF":["Connect your wallet to view TWAP orders."],"c+VX3P":["Custom TP percentage"],"c+tzs5":["Sign in wallet..."],"c2npeq":["Custom SL percentage"],"cJzJWa":["Transfer failed"],"cXvnJ8":["Market Order Slippage"],"csDS2L":["Available"],"cwQAhE":["Failed to switch margin mode"],"d+F6q9":["Created"],"dEgA5A":["Cancel"],"dQGImW":["Account Balances"],"daWrYT":["Agent verification failed"],"dcKNhk":["Taking longer than expected"],"dfIw2n":["USD Value"],"dkzoLd":["Loading funding history..."],"doRJE6":["Set TP/SL for ",["0"]],"drvdT3":["Add TP/SL"],"e/cvV1":["Verifying..."],"e/vgsz":["Total Value"],"e0bpdM":["Unknown symbol: ",["symbolName"]],"e2oWGN":["No tokens with value found across supported chains"],"eXs0Bt":["Search markets..."],"ebwNSs":["Remove ",["displayName"]," from favorites"],"eiZzfX":["Builder codes allow DeFi builders to receive a fee on fills they send on behalf of users. They are set per-order for maximal flexibility."],"ejVYRQ":["From"],"es+Zrf":["Transferring..."],"fBckrr":["Unsupported resolution: ",["0"]],"fEC2uI":["Transfer USDC to your Hyperliquid account to start trading."],"fOG42Y":["Connect your wallet to start trading on Hyperliquid"],"fVmG6b":["Failed to load balances"],"fYSYwH":["No open orders."],"fYUNRJ":["Direct"],"fhqG7u":["Connected: ",["0"],"...",["1"]],"fqDzSu":["Rate"],"fsBGk0":["Balance"],"g5PJI8":["OPEN INT"],"gIpxlQ":["Minimum withdrawal is $",["MIN_WITHDRAW_USD"]],"gL/sdV":["Popular"],"gMHkDJ":["Failed to load balances."],"gVLSxk":["Transaction was rejected"],"ga6DLx":["Your bridge is still processing. Funds are safe — LI.FI routes are always recoverable."],"gbNGPv":["Risk/Reward"],"gsL/Ic":["All cross positions share the same cross margin as collateral. In the event of liquidation, your cross margin balance and any remaining open positions under assets in this mode may be forfeited."],"h+3Zi0":["Loading wallet..."],"h0gbH9":["Bridge USDC from Arbitrum or other chains to your Hyperliquid account."],"h3yIJ7":["Other Options"],"h4z/Mq":["Builder Fee Approval"],"hBm2XN":["Sort by ",["0"]],"hJet42":["No funding payments found."],"hXzOVo":["Next"],"hehnjM":["Amount"],"hgpMHD":["Total Size"],"hhyc5L":["Max slippage allowed for market orders."],"htJlxw":["Sort by ",["headerLabel"]],"i+4Fbp":["Deposit failed"],"i6t9oo":["Failed to load TWAP history."],"i71+SY":["Position reversed"],"iDNBZe":["Notifications"],"iE2I5G":["Enabling"],"iEQQyu":["Agent"],"iFlxcb":["Select favorite markets"],"iGma9e":["Update failed"],"iH8pgl":["Back"],"iKex+G":["Limit Price (USDC)"],"iSLIjg":["Connect"],"iaX5Av":["Failed to load trades."],"iflFdl":["Place ",["0"]," Order"],"ifzbyQ":["USDC"],"ipnMKT":[["p"],"%"],"iu7tUI":["Breadcrumb"],"j085nT":["Order Value"],"jH4vGi":["Net received"],"jJCREz":["Connect your wallet to view funding payments."],"jL9aa6":["Swap direction"],"jX19nk":["Connect your wallet to view open orders."],"ja6RDy":["Sell Short"],"jgWsKr":["No trading pair available for <0/>/<1/>"],"jj+8Tx":["Approve a builder to charge fees on orders placed on your behalf. Builder codes allow DeFi applications to receive a portion of trading fees."],"jjXeQg":["No tokens available"],"k1ifdL":["Processing..."],"kM5ZE+":["Confirm in wallet"],"kVjBmF":["Limit Price"],"kWXidS":["Close position"],"kj3M8S":["Deposit"],"l0Fmrm":["Display Language"],"l4NGKt":["No fills found."],"l75CjT":["Yes"],"lB46ke":["MARK"],"lD8YU8":["Perps Account"],"lHY6Dg":["spot"],"lOEm/1":["Order filled"],"lUDY9v":["Cancel All"],"lVDmF0":["Trade ClockCounterClockwise"],"lZZl3m":["Stop Loss"],"laDnrx":["No TWAP orders found."],"lg7+vk":["Side"],"lkcAoj":["Margin"],"llUlxR":["PNL"],"llckC0":["Switching..."],"lm6AkD":["TP Price"],"lobQ3s":["Est. Fee"],"lvC44O":["Max Fee Rate (%)"],"m+2g06":["will arrive in ~3 min"],"m16xKo":["Add"],"m1eb26":["End Price (USDC)"],"m6RmA/":["Insufficient ",["0"]," balance"],"mCk5iK":["Send failed"],"mE/G/f":["Invalid Ethereum address"],"mSpJjq":["Transfer USDC"],"mcOcEg":["Market stats row — layout options"],"mlQXdF":["Trigger Price"],"mnFamZ":["% filled"],"n/qDNz":["Switch to dark mode"],"nJBD8K":["Market metadata unavailable."],"nJTjIr":["Swapping..."],"nQrkW7":["Max 0.1% (10 bps) for perps, 1% (100 bps) for spot. Enter as decimal (e.g., 0.01 for 1 basis point)."],"nVMDTs":["TP must be below entry"],"nWIodQ":["Take profit trigger must be below mark"],"nbrdjK":["In Orders"],"njn4bC":["Confirm transaction in your wallet"],"nuBbBr":["Chart"],"nuqpbC":["Fee Limits:"],"nwcAtu":["Latency:"],"nwtY4N":["Something went wrong"],"o+CS/D":["Failed to load order history."],"o636h+":["Stop Market"],"o7Xo9X":["24H"],"o8uQyS":["Recent Trades"],"oJv+QI":["Randomize timing"],"oW1G8i":["Your funds were successfully deposited."],"ocovOd":["Avg Price"],"odEUjn":["Advanced order types"],"okV5rM":["Failed to close position"],"ol8emB":["Connect your wallet to view order history."],"olEUh2":["Successful"],"orI3hB":["pagination"],"orv4UV":["Set TP to ",["p"],"%"],"otaTjg":["Long"],"ovBPCi":["Default"],"p/78dY":["Position"],"p0ngfp":["Order Queue"],"p6NueD":["NEW"],"pBsoKL":["Add to favorites"],"pHVQlG":["Cancel all orders"],"pI2rip":["Insufficient balance (includes $",["WITHDRAWAL_FEE_USD"]," fee)"],"pIwpkw":["Go to trading terminal"],"pWF6+F":["Show Executions"],"pY5TE9":["Could not fetch your token balances"],"perfgr":["Funding History"],"pvnfJD":["Dark"],"qCdZab":["Switch to ",["displayName"]," market, long position"],"qJb6G2":["Try Again"],"qRhSY/":["Min order $10"],"qX/0av":["Select how margin is allocated for your positions"],"qaeo2F":["Margin Ratio"],"qfS/h8":[["formatted"]," USDC deposited to Hyperliquid"],"qiOIiY":["Buy"],"qlRrjA":["Set to ",["p"],"%"],"qn4nUK":["Builder Address"],"qnKMyZ":["Funding Payments"],"quX3ha":["Register Another"],"r+w5Bx":["No balances found"],"r22IQ2":["Time / Total"],"rLi46F":["Must be signed by main wallet (not agent/API wallet)"],"rPNGe1":["Take profit trigger must be above mark"],"rPX0Ef":["Minimum withdrawal is $",["0"]],"rfbg3y":["Switch to ",["0"]," market"],"rm3fFf":["Connect wallet to view account"],"ruL48O":["Number of Orders"],"ryxkVx":["Show Values in USD"],"s/ereB":["active"],"sLpZwu":["Cancel TWAP order"],"sO+nPg":["Margin Req."],"sO0DWk":["Switch between mainnet and testnet. Page will reload."],"sQWzwD":["View on explorer"],"sYnC5v":["Select ",["displayName"]," market"],"shmNel":["Entry Price"],"stec1a":["Unable to cancel orders."],"szH29R":["No balances found. Deposit funds to start trading."],"t+B4rK":["24h Change"],"t+R8+P":["Execution"],"t5EZAB":["Loading trade history..."],"tHPbHS":["Leaderboard"],"tMX8XH":["Select tokens to swap"],"tVJk4q":["Cancel order"],"tZ9ftZ":["Spot"],"tnJl4V":["Withdrawal submitted"],"u4LEQ2":["You are on Testnet"],"uAQUqI":["Status"],"uEDo87":["About Builder Codes"],"uWi2Q+":["Sidebar"],"uZi2t8":["Confirmation screen coming in next slice"],"ufWF2Y":["Vaults"],"ugB2se":["No order history found."],"uoD7vB":["Fee rate must be between 0.001% and 1%"],"v/76pL":["Order Book"],"vH2C/2":["Swap"],"vI9OLW":["Bridge failed"],"vIWDJQ":[["totalSeconds"]," seconds"],"vT/Pj1":["VOL"],"vXIe7J":["Language"],"vXWzNt":["Failed to enable trading"],"vZW+PE":["Your transaction is being processed"],"vcHBQG":["Show Positions"],"vpjkXb":["Limit Close"],"vrnnn9":["Processing"],"vtJ2yO":["Explorer"],"vyMDXl":["Show Scanlines"],"w+oJCW":["will arrive in ~5 min"],"w3hmRj":["Waiting for order book..."],"wDbqhD":["Reverse"],"wDy6uq":["Loading order history..."],"wMHvYH":["Value"],"wZVzVU":["Bridge complete"],"wdxz7K":["Source"],"wezJ3v":["Mark Price"],"wq30T4":["Liq"],"wvgF6w":["Order History"],"x+7jw2":["Exceeds max size"],"xGVfLh":["Continue"],"xI4H1r":["Switch to ",["displayCoin"]," market"],"xNB0TS":["Sell"],"xTSCVP":["Builder code registered successfully!"],"xWnh+P":["Start Price (USDC)"],"y62Dys":["Network fee"],"yQE2r9":["Loading"],"yRkqG9":["Limit"],"yT7sOL":["Trade via ",["0"]," spot market"],"yVfwJk":["Start and end must differ"],"ydOXwr":["Perp"],"ye6Vnv":["Available:"],"ygCKqB":["Stop"],"ygkMcg":["limit"],"yxnt3y":["Fill status"],"yz7wBu":["Close"],"zEGs+1":["Builders"],"zKCXG+":["Trigger Price (USDC)"],"zKJcRr":["Perps: Max 0.1% (10 basis points)"],"zPGNJm":["Transfer"],"zXagFp":["Copy Address"],"zZmf1N":["Filled"],"zdcGo/":["Bridging in progress"],"zjwWvI":["Start Price"],"znqB4T":["Insufficient balance"],"zwWKhA":["Learn more"]}',
+ '{"++OGth":["Deposit successful"],"+1S7b1":["Wallet not connected"],"+6YAwo":["selected"],"+8WrGc":["No wallets found"],"+F8cLG":["Displays the mobile sidebar."],"+JE0m7":["Failed to load positions."],"+K0AvT":["Disconnect"],"+N2Rqk":["No active positions."],"+N7uug":["1 year"],"+ONfBR":["PRICE"],"+ZV3i5":["Failed to load open orders."],"+b7T3G":["Updated"],"+hA/UM":["Open Orders"],"+nuEh/":["Estimated time"],"+w/hP1":["Show Executions on Chart"],"+xnyQO":["Enter size"],"+z3YcL":["Position actions"],"+zy2Nq":["Type"],"/2hibY":["Cancel selected"],"/AsMcZ":["Enabling..."],"/G76GM":["Your current open position on this market"],"/IX/7x":["Other"],"/PvdTS":["Gas (",["0"],")"],"/TT0Oq":["ORACLE"],"/cF7Rs":["Volume"],"/gY2VH":["Filter by ",["0"]],"/jQctM":["To"],"/kXBrK":["Total time"],"/mfICu":["Fees"],"/tPR7R":["Builder Fee"],"0+Iw6C":["Duration (Minutes)"],"0+X+sh":["Spot Account"],"0LZtsz":["Take Market"],"0Mx4+k":["No trading pair available for ",["fromTokenDisplay"],"/",["toTokenDisplay"]],"0P2gFy":["The page you are looking for does not exist."],"0QDjxt":["Balance:"],"0RrIzN":["Select token"],"0Xlr0L":["Minimum deposit is ",["0"]," USDC"],"0cIV8s":["Open Positions"],"0exG4Q":["Funding"],"0z59Ep":["sell"],"1BkDWk":["Buy Long"],"1PJ7wL":["Confirm Close"],"1QfxQT":["Dismiss"],"1UzENP":["No"],"1ZMjyh":["The builder at ",["0"],"...",["1"]," can now charge up to ",["maxFeeRate"],"% fee on orders placed on your behalf."],"1h+RBg":["Orders"],"1njn7W":["Light"],"29VNqC":["Unknown error"],"2Ea5Vz":["Trade History"],"2FYpfJ":["More"],"2M2s7z":["Enable Trading"],"2OWSzg":["Account Equity"],"2PsTzL":["completed"],"2tQrK2":["Switch to Arbitrum"],"3/vMct":["A crypto wallet lets you store and manage your digital assets securely."],"30ZPad":["Active Positions"],"3CHbH/":["SL Price"],"3DtJpz":["Stop Limit"],"3IkQgP":["Secure & Private"],"3Siwmw":["More options"],"3UZudY":["Stop trigger must be below mark"],"3fPjUY":["Pro"],"3oHIhx":["TP must be above entry"],"3q1W5Q":["Isolated → Cross"],"4+HkLv":["Show Values in Quote Asset"],"40lLFI":["Go to next page"],"42w2ly":["OI"],"46Sm8O":["Gas:"],"4HtGBb":["MAX"],"4J2s8f":["Canceling..."],"4Kyst7":["Agent mode: Orders signed automatically (fast)"],"4NuBK4":["Waiting for trades..."],"4Vzb+4":["Closing..."],"4avvba":["No trades found."],"54QqdM":["Signing..."],"5FsTU5":["Wallet client not ready"],"5Omwef":["Scale level below min notional"],"5joj8M":["Transaction breakdown"],"5oE2C+":["Sorted by ",["0"]],"5u8fWJ":["Back to asset selection"],"5xKxZd":["TP trigger price"],"5zbbOn":["Invalid amount"],"60m4P5":["24H VOL"],"621rYf":["Payment"],"63wHTy":["Edit TP/SL"],"69b7aE":["Open command menu"],"6Aih4U":["Offline"],"6fpdpR":["Show fewer wallets"],"6gRgw8":["Retry"],"6jVqpA":["Failed to load trade history."],"6poLt9":["Toggle Sidebar"],"6vyJOd":["Deposit from any chain to your Hyperliquid account"],"6zAIUU":["Cannot switch to Isolated mode with an open position. Close your position first."],"72c5Qo":["Total"],"77Rx22":["Collapse account panel"],"7L01XJ":["Actions"],"7Lv7j5":["Margin Mode"],"7VpPHA":["Confirm"],"7l15X4":["failed"],"88cUW+":["You receive"],"8F1i42":["Page not found"],"8Fu1E7":["Toggle size mode"],"8Itoo3":["Unrealized P&L"],"8LkAxv":["SL must be below entry"],"8SNccp":["Switch to ",["displayName"]," market, short position"],"8WrNUb":["TIF"],"8gcijf":["Insufficient <0/> balance"],"8hvfaA":["Position closed"],"8yhvii":["Mid"],"997z0L":["Spot: Max 1% (100 basis points)"],"9ACh/c":["No mark price"],"9SBcQj":["All cross positions share the same cross margin as collateral. In the event of liquidation, your cross margin balance and any remaining open positions may be forfeited."],"9lH5ev":["Loading open orders..."],"9mRTyg":["Block:"],"9qnvU0":["Switch to ",["displayName"]," market"],"9ykF9H":["Hide small"],"9zb2WA":["Connecting"],"A+q/Is":["markets"],"A1taO8":["Search"],"AArF6S":["Move USDC between your Perp and Spot accounts."],"AEGM8s":["Failed to copy"],"AErIoZ":["Manage your risk on individual positions by restricting the amount of margin allocated to each. If the margin ratio of an isolated position reaches 100%, the position will be liquidated. Margin can be added or removed to individual positions in this mode."],"AGWjPT":["Set ",["p"],"%"],"AUYALh":["Coming soon"],"AUahCv":["Insufficient funds for gas"],"AeXO77":["Account"],"B5AKvo":["Mark"],"BOppjS":["No market"],"BSj/hz":["Add funds"],"BvlAGq":["Unrealized PNL"],"BxBZCk":["Each position uses only its allocated margin. If the margin ratio reaches 100%, the position is liquidated. Margin can be added or removed individually."],"C2TJN3":["Loading TWAP orders..."],"C8kdVg":["Fill limit price with mark price ",["0"]],"CF1zwJ":["Failed to load funding history."],"CK1KXz":["Max"],"CMHmbm":["Slippage"],"CP3D8G":["Progress"],"CW11B+":["Minimum"],"CfRvLF":["Swap failed"],"CgqzuN":["Cross"],"Cj2Gtd":["Size"],"CjCD8F":[["0"]," more wallets"],"Cjh38d":["New to wallets?"],"Ck1xL4":["You send"],"Co8gGw":["No active TWAP orders."],"CtByM7":["Connect Wallet"],"CzeOTH":["Wallet (",["0"],")"],"D243f/":["Install a wallet extension to continue"],"D6X5UU":["Market Close"],"DBVcOk":["More intervals"],"DHhJ7s":["Previous"],"DPfwMq":["Done"],"DWs3bP":["Mark:"],"DXxfpS":["Select order book aggregation"],"DZo9LT":["Mock Wallet (Testing)"],"DabQ8P":["TWAP Orders"],"DiL7DR":["Perp → Spot"],"Do4l1I":["Edit leverage"],"DzHUbu":["Copy address"],"E8sxZm":["Show Positions on Chart"],"EE/1QC":["Format for numbers and dates"],"ETkk6Z":["TOKEN"],"Enslfm":["Destination"],"F6pfE9":["Active"],"FF5wYg":["Select all orders"],"FKY8dA":["Est. P&L at Limit"],"FLNk0d":["Min order $",["ORDER_MIN_NOTIONAL_USD"]],"FLkCnQ":["You can revoke permissions at any time by registering a new approval with 0% fee rate. Builder codes are processed entirely onchain as part of the fee logic."],"FS+bo3":["Unable to close position."],"Fdp03t":["on"],"FeRMvR":["Margin · Iso"],"FmemI7":["FUNDING"],"FqmhBo":["No balance on Hyperliquid. Deposit first."],"FxVG/l":["Copied to clipboard"],"G3oEYi":["Select order"],"G6etJA":["Loading balances..."],"GINUX/":["Only you control your funds. No email or password required."],"GLWV4x":["Builder must have at least 100 USDC in perps account value"],"GX8GKD":["Assets"],"GbNWWs":["Slippage tolerance"],"H2Sfhg":["Trigger"],"HJlY85":["No balance"],"HZN+sw":["Trading"],"HZdgTJ":["Select signing mode"],"HfT9T6":["No route available. Try a different amount or asset."],"Hp1l6f":["Current"],"I8LlJA":["TradingView"],"ICCWOn":["Could not create wallet"],"IHIyQG":["positions"],"IJfJAB":["Margin mode"],"IJndUb":["Connect your wallet to register a builder code"],"IV3hWp":["Enter trigger price"],"IZL9b6":["Cross Leverage"],"IcSLiu":["Oracle"],"Ieh2cV":["Expand account panel"],"IoAuJG":["Sending..."],"IwI0rY":["Wrong network"],"IyNxxU":["perp"],"J24FyN":["Bridge"],"J28zul":["Connecting..."],"JHxGP5":["Trade"],"JVvYNb":["Deposit complete"],"JXzPJX":["SL"],"JbH+Me":["Leverage Settings"],"Jc94Bq":["No open positions."],"JfWXib":["Track on LI.FI Explorer"],"JlFcis":["Send"],"Ju4B2M":["Select leverage"],"JuyzMZ":["Maximum slippage tolerance for market orders"],"KTNWsg":["Withdrawal failed"],"KYAjf3":["Isolated"],"KZHfkR":["Deposit Funds"],"KaqqlB":["Deposit on Hyperliquid"],"Ke6k18":["Leverage"],"KeDrPl":["Minimum deposit is 5 USDC"],"KnTbj2":["Show Orders on Chart"],"Kp3IPD":["No response from exchange"],"KpAolD":["Failed to update leverage"],"KsqhWn":["Staking"],"KxF048":["Customize your trading experience."],"Kz1TxG":["open"],"L+qiq+":["Market"],"L4jnDP":["Executed"],"LEbOpR":["More details"],"LGuqeh":["Please enter an address"],"LHfqhz":["New deposit"],"LMMGPr":["Submitting..."],"Le70b5":["More pages"],"LhMjLm":["Time"],"LlsvFY":["Reduce"],"Lx+htK":["Swap submitted"],"Lz5J1x":["Sort by ",["sortLabel"]],"M0biAV":["Preparing your quote..."],"M9fkA0":["Liquidated"],"MLQamJ":["Connect your wallet to view trade history."],"MSSmsu":["To Perp"],"MTq3hP":["24h vol"],"Mim7/r":["Insufficient ",["fromTokenDisplay"]," balance"],"MpLcsV":["Loading balances across all chains..."],"MqA4qt":["Portfolio"],"MyytBE":["Send tokens to another account on the Hyperliquid L1."],"N40H+G":["All"],"NIDWjN":["SL must be above entry"],"NJNMJX":["TWAP"],"NNJKWa":["Connect your wallet to withdraw funds"],"NNtdiI":["Resets in"],"NQtgSJ":["Failed to register builder code"],"NpuiU+":["Perps"],"NsJrqM":["Market not ready"],"O5ycjq":["trades"],"ODVKKZ":["Enter limit price"],"OQGH4C":["limit ro"],"OR475H":["Network"],"OSnZvX":["Change leverage"],"OYsSpP":["Failed to reverse position"],"OZtEcz":["API"],"Oe3M3Y":["Switch to Arbitrum to deposit USDC to Hyperliquid"],"Oid00w":["Enter price range"],"OsyKSt":["Withdraw"],"Otdc/Y":["Connect your wallet to view positions."],"OxPEUg":["In Use"],"P9cEa2":["30 days"],"PJEzIS":["Bridge to Hyperliquid"],"PLUB/s":["Fee"],"PNsB0A":["Fetching quote..."],"PTna/x":["Open Interest"],"PTyoXs":["Set SL to ",["p"],"%"],"PWRc/M":["Open positions count"],"PWk+Et":["No spot balances."],"PXH7+k":["Cross → Isolated"],"PZBWpL":["Switch to light mode"],"PaQ3df":["Enable"],"PcmIvv":["bps"],"PeO4lq":["Requirements:"],"PelVTv":["Register Builder Code"],"PiH3UR":["Copied!"],"Pl9jiz":["Show Orders"],"Q9fVmw":["Go to Trade"],"QD2PKQ":["End Price"],"QHcLEN":["Connected"],"QjUEvK":["Cancel all"],"QlN9wA":["Destination address"],"R68yLX":["Set TP/SL"],"RRXpo1":["Short"],"RaWC6b":["Size exceeds position"],"Rb1yph":["Liq. Price"],"RnpwtT":["TWAP minutes must be ",["TWAP_MINUTES_MIN"],"-",["TWAP_MINUTES_MAX"]],"RoE+o+":["Reduce Only"],"RwFtJj":["Cross Margin Ratio"],"S33tz3":["Not connected"],"S48xcO":["pending"],"S9zH+G":["This action must be signed by your main wallet (not an agent/API wallet). The builder must have at least 100 USDC in perps account value."],"SEDVHU":["Loading positions..."],"SEoDwA":["Take Limit"],"SHk3ns":["Balance available to trade"],"SJrFO1":["Position close actions"],"SVHeJc":["Direct mode: Sign each order with wallet"],"SWH2Eh":["Time in Force"],"SsGsC0":["Cancel selected orders"],"Svkela":["Go to previous page"],"T/pF0Z":["Remove from favorites"],"TDa39c":["24h Price"],"THTG58":["Select asset to bridge"],"THfjt2":["Cross Account Leverage"],"THmCgW":["Select market"],"TK3J5O":["Send Tokens"],"TK9uys":["Select ",["coin"]," market"],"TLa4Oo":["Connect a wallet to manage positions."],"TNawll":["Disconnect wallet"],"TNtZN2":["TP"],"TP9/K5":["Token"],"TQ/QV5":["No trading pair available for ",["fromToken"],"/",["toToken"]],"TT0aVH":["Order submitted"],"TbjyhA":["Docs"],"Tm8JF7":["Connect your wallet to bridge funds"],"Tuc34V":["Confirm Bridge"],"Tz0i8g":["Settings"],"U3As+R":["Take Profit"],"U86eEA":["No user address"],"URmyfc":["Details"],"URvngU":["Est. time"],"UXtGFD":["Full Position"],"UwG7db":["What is a wallet?"],"V0ubMJ":["Take Profit / Stop Loss"],"V3XYw0":["P&L"],"V5khLm":["orders"],"V6ETmV":["To Spot"],"VAZUpd":["Order failed"],"VIwCaD":["Entry"],"VMLGYS":["Switch to Mainnet"],"VU5rsP":["Number Format"],"VXCk+w":["Loading markets..."],"VYFX4v":["Perpetuals"],"VcaZ5z":["No markets found."],"VgTxu0":["Signer not ready"],"VmhkuH":["Account and wallet"],"W1k7eB":["24h"],"W75iLe":["Connect your wallet to view balances."],"W9Fxbx":["SL trigger price"],"WISj7i":["Place Limit Close"],"WNMYIN":["cancelled"],"WRelac":["Cannot switch to isolated mode with an open position"],"WajXzx":["Est. P&L"],"Wqz0SO":["Low Balance"],"XCIAdj":["RO"],"XFp9Bf":["Scale levels must be ",["SCALE_LEVELS_MIN"],"-",["SCALE_LEVELS_MAX"]],"XTwHmT":["Spot Balances"],"XYLcNv":["Support"],"XbxYxh":["Price grouping"],"Y1W9ip":["Equity"],"Y9gMWT":["Failed to load order book."],"YZLEvW":["Processing deposit"],"Yf9lFX":["Ledger"],"YnKdJE":["Margin Used"],"YxaAON":["Spread"],"Z3FXyt":["Loading..."],"ZB/Jm6":["Margin & leverage"],"ZDBdfg":["Enter TP or SL price"],"ZFtwlj":["Trades"],"ZHJZmo":["Amount (USDC)"],"ZYnwzF":["Disconnected"],"ZmGjjl":["Your bridge is still processing. Funds are safe."],"a/MzGi":["sent to Hyperliquid"],"a7u1N9":["Price"],"a9q6hE":["waiting"],"aAIQg2":["Appearance"],"aVwGl4":["Portfolio PNL"],"adcjkX":["Limit close order placed"],"amRC+z":["Connect your wallet to view your account overview, positions, and history."],"axyo2z":["Connect a wallet to manage orders."],"b7Wduj":["buy"],"bMJMhJ":["WebSocket error"],"bSCsJh":["TP/SL"],"bUUVED":["Asset"],"bVPv2S":["Updated live"],"bW1xET":["Stop trigger must be above mark"],"bifv6N":["Scale"],"bm80CF":["Connect your wallet to view TWAP orders."],"c+VX3P":["Custom TP percentage"],"c+tzs5":["Sign in wallet..."],"c2npeq":["Custom SL percentage"],"cJzJWa":["Transfer failed"],"cXvnJ8":["Market Order Slippage"],"csDS2L":["Available"],"cwQAhE":["Failed to switch margin mode"],"d+F6q9":["Created"],"dEgA5A":["Cancel"],"dQGImW":["Account Balances"],"daWrYT":["Agent verification failed"],"dcKNhk":["Taking longer than expected"],"dfIw2n":["USD Value"],"dkzoLd":["Loading funding history..."],"doRJE6":["Set TP/SL for ",["0"]],"drvdT3":["Add TP/SL"],"e/cvV1":["Verifying..."],"e/vgsz":["Total Value"],"e0bpdM":["Unknown symbol: ",["symbolName"]],"e2oWGN":["No tokens with value found across supported chains"],"eXs0Bt":["Search markets..."],"ebwNSs":["Remove ",["displayName"]," from favorites"],"eiZzfX":["Builder codes allow DeFi builders to receive a fee on fills they send on behalf of users. They are set per-order for maximal flexibility."],"ejVYRQ":["From"],"es+Zrf":["Transferring..."],"fBckrr":["Unsupported resolution: ",["0"]],"fEC2uI":["Transfer USDC to your Hyperliquid account to start trading."],"fOG42Y":["Connect your wallet to start trading on Hyperliquid"],"fVmG6b":["Failed to load balances"],"fYSYwH":["No open orders."],"fYUNRJ":["Direct"],"fhqG7u":["Connected: ",["0"],"...",["1"]],"fqDzSu":["Rate"],"fsBGk0":["Balance"],"g5PJI8":["OPEN INT"],"g5Xz8D":["Cross Margin"],"gIpxlQ":["Minimum withdrawal is $",["MIN_WITHDRAW_USD"]],"gL/sdV":["Popular"],"gMHkDJ":["Failed to load balances."],"gVLSxk":["Transaction was rejected"],"ga6DLx":["Your bridge is still processing. Funds are safe — LI.FI routes are always recoverable."],"gbNGPv":["Risk/Reward"],"gsL/Ic":["All cross positions share the same cross margin as collateral. In the event of liquidation, your cross margin balance and any remaining open positions under assets in this mode may be forfeited."],"h+3Zi0":["Loading wallet..."],"h0gbH9":["Bridge USDC from Arbitrum or other chains to your Hyperliquid account."],"h3yIJ7":["Other Options"],"h4z/Mq":["Builder Fee Approval"],"hBm2XN":["Sort by ",["0"]],"hJet42":["No funding payments found."],"hXzOVo":["Next"],"hehnjM":["Amount"],"hgpMHD":["Total Size"],"hhyc5L":["Max slippage allowed for market orders."],"htJlxw":["Sort by ",["headerLabel"]],"i+4Fbp":["Deposit failed"],"i6t9oo":["Failed to load TWAP history."],"i71+SY":["Position reversed"],"iDNBZe":["Notifications"],"iE2I5G":["Enabling"],"iEQQyu":["Agent"],"iFlxcb":["Select favorite markets"],"iGma9e":["Update failed"],"iH8pgl":["Back"],"iKex+G":["Limit Price (USDC)"],"iSLIjg":["Connect"],"iaX5Av":["Failed to load trades."],"iflFdl":["Place ",["0"]," Order"],"ifzbyQ":["USDC"],"ipnMKT":[["p"],"%"],"iu7tUI":["Breadcrumb"],"j085nT":["Order Value"],"jH4vGi":["Net received"],"jJCREz":["Connect your wallet to view funding payments."],"jL9aa6":["Swap direction"],"jX19nk":["Connect your wallet to view open orders."],"ja6RDy":["Sell Short"],"jgWsKr":["No trading pair available for <0/>/<1/>"],"jj+8Tx":["Approve a builder to charge fees on orders placed on your behalf. Builder codes allow DeFi applications to receive a portion of trading fees."],"jjXeQg":["No tokens available"],"k1ifdL":["Processing..."],"kM5ZE+":["Confirm in wallet"],"kVjBmF":["Limit Price"],"kWXidS":["Close position"],"kj3M8S":["Deposit"],"l0Fmrm":["Display Language"],"l4NGKt":["No fills found."],"l75CjT":["Yes"],"lB46ke":["MARK"],"lD8YU8":["Perps Account"],"lGBGsP":["Failed to connect with custom address"],"lHY6Dg":["spot"],"lOEm/1":["Order filled"],"lUDY9v":["Cancel All"],"lVDmF0":["Trade ClockCounterClockwise"],"lZZl3m":["Stop Loss"],"laDnrx":["No TWAP orders found."],"lg7+vk":["Side"],"lkcAoj":["Margin"],"llUlxR":["PNL"],"llckC0":["Switching..."],"lm6AkD":["TP Price"],"lobQ3s":["Est. Fee"],"lvC44O":["Max Fee Rate (%)"],"m+2g06":["will arrive in ~3 min"],"m16xKo":["Add"],"m1eb26":["End Price (USDC)"],"m6RmA/":["Insufficient ",["0"]," balance"],"mCk5iK":["Send failed"],"mE/G/f":["Invalid Ethereum address"],"mSpJjq":["Transfer USDC"],"mTfEdq":["Perps Overview"],"mVfuH4":["Spot → Perp"],"mlQXdF":["Trigger Price"],"mnFamZ":["% filled"],"n/qDNz":["Switch to dark mode"],"nJBD8K":["Market metadata unavailable."],"nJTjIr":["Swapping..."],"nQrkW7":["Max 0.1% (10 bps) for perps, 1% (100 bps) for spot. Enter as decimal (e.g., 0.01 for 1 basis point)."],"nVMDTs":["TP must be below entry"],"nVrjlH":["Withdrawable"],"nWIodQ":["Take profit trigger must be below mark"],"nbrdjK":["In Orders"],"njn4bC":["Confirm transaction in your wallet"],"nuBbBr":["Chart"],"nuqpbC":["Fee Limits:"],"nwcAtu":["Latency:"],"nwtY4N":["Something went wrong"],"o+CS/D":["Failed to load order history."],"o21Y+P":["entries"],"o636h+":["Stop Market"],"o7Xo9X":["24H"],"o8uQyS":["Recent Trades"],"oJv+QI":["Randomize timing"],"oW1G8i":["Your funds were successfully deposited."],"ocovOd":["Avg Price"],"odEUjn":["Advanced order types"],"okV5rM":["Failed to close position"],"ol8emB":["Connect your wallet to view order history."],"olEUh2":["Successful"],"orI3hB":["pagination"],"orv4UV":["Set TP to ",["p"],"%"],"otaTjg":["Long"],"ovBPCi":["Default"],"p/78dY":["Position"],"p0ngfp":["Order Queue"],"p6NueD":["NEW"],"pBsoKL":["Add to favorites"],"pHVQlG":["Cancel all orders"],"pI2rip":["Insufficient balance (includes $",["WITHDRAWAL_FEE_USD"]," fee)"],"pIwpkw":["Go to trading terminal"],"pUEa02":["Margin mode switched to ",["0"]," for ",["coin"]],"pWF6+F":["Show Executions"],"pY5TE9":["Could not fetch your token balances"],"perfgr":["Funding History"],"pvnfJD":["Dark"],"qCdZab":["Switch to ",["displayName"]," market, long position"],"qJb6G2":["Try Again"],"qRhSY/":["Min order $10"],"qX/0av":["Select how margin is allocated for your positions"],"qaeo2F":["Margin Ratio"],"qfS/h8":[["formatted"]," USDC deposited to Hyperliquid"],"qiOIiY":["Buy"],"qlRrjA":["Set to ",["p"],"%"],"qn4nUK":["Builder Address"],"qnKMyZ":["Funding Payments"],"quX3ha":["Register Another"],"r+w5Bx":["No balances found"],"r22IQ2":["Time / Total"],"rJe6vw":["7 days"],"rLi46F":["Must be signed by main wallet (not agent/API wallet)"],"rPNGe1":["Take profit trigger must be above mark"],"rPX0Ef":["Minimum withdrawal is $",["0"]],"rfbg3y":["Switch to ",["0"]," market"],"rm3fFf":["Connect wallet to view account"],"ruL48O":["Number of Orders"],"ryxkVx":["Show Values in USD"],"s/ereB":["active"],"sFSDo6":["No open positions. Leverage settings appear here when you have active positions."],"sLpZwu":["Cancel TWAP order"],"sO+nPg":["Margin Req."],"sO0DWk":["Switch between mainnet and testnet. Page will reload."],"sQWzwD":["View on explorer"],"sYnC5v":["Select ",["displayName"]," market"],"scwWyY":["No ledger activity found."],"shmNel":["Entry Price"],"stec1a":["Unable to cancel orders."],"szH29R":["No balances found. Deposit funds to start trading."],"t+B4rK":["24h Change"],"t+CM0Z":["Leverage updated to ",["pendingLeverage"],"× for ",["coin"]],"t+Jqww":["Flip transfer direction"],"t+R8+P":["Execution"],"t5EZAB":["Loading trade history..."],"tHPbHS":["Leaderboard"],"tMFDem":["No data available"],"tMX8XH":["Select tokens to swap"],"tVJk4q":["Cancel order"],"tWiEVe":["Liq Price"],"tZ9ftZ":["Spot"],"tnJl4V":["Withdrawal submitted"],"tp8zc8":["Custom wallet address"],"u4LEQ2":["You are on Testnet"],"uAQUqI":["Status"],"uBhZmI":["payments"],"uEDo87":["About Builder Codes"],"uWi2Q+":["Sidebar"],"uZi2t8":["Confirmation screen coming in next slice"],"ufWF2Y":["Vaults"],"ugB2se":["No order history found."],"uoD7vB":["Fee rate must be between 0.001% and 1%"],"uqe4In":["Total Equity"],"v/76pL":["Order Book"],"vH2C/2":["Swap"],"vI9OLW":["Bridge failed"],"vIWDJQ":[["totalSeconds"]," seconds"],"vT/Pj1":["VOL"],"vXIe7J":["Language"],"vXWzNt":["Failed to enable trading"],"vZW+PE":["Your transaction is being processed"],"vcHBQG":["Show Positions"],"vpjkXb":["Limit Close"],"vrnnn9":["Processing"],"vtJ2yO":["Explorer"],"vyMDXl":["Show Scanlines"],"w+oJCW":["will arrive in ~5 min"],"w3hmRj":["Waiting for order book..."],"wDbqhD":["Reverse"],"wDy6uq":["Loading order history..."],"wMHvYH":["Value"],"wZVzVU":["Bridge complete"],"wdxz7K":["Source"],"wezJ3v":["Mark Price"],"wq30T4":["Liq"],"wvgF6w":["Order History"],"x+7jw2":["Exceeds max size"],"xGVfLh":["Continue"],"xI4H1r":["Switch to ",["displayCoin"]," market"],"xNB0TS":["Sell"],"xTSCVP":["Builder code registered successfully!"],"xWnh+P":["Start Price (USDC)"],"xgSeuS":["Account Value"],"y/TXy2":["Maintenance Margin"],"y62Dys":["Network fee"],"yQE2r9":["Loading"],"yRkqG9":["Limit"],"yT7sOL":["Trade via ",["0"]," spot market"],"yVfwJk":["Start and end must differ"],"ydOXwr":["Perp"],"ye6Vnv":["Available:"],"ygCKqB":["Stop"],"ygkMcg":["limit"],"yxnt3y":["Fill status"],"yz7wBu":["Close"],"zEGs+1":["Builders"],"zG6eEO":["Connect your wallet to view your account, positions, and start trading."],"zKCXG+":["Trigger Price (USDC)"],"zKJcRr":["Perps: Max 0.1% (10 basis points)"],"zPGNJm":["Transfer"],"zXagFp":["Copy Address"],"zZmf1N":["Filled"],"zdcGo/":["Bridging in progress"],"zjwWvI":["Start Price"],"znqB4T":["Insufficient balance"],"zwWKhA":["Learn more"]}',
),
};
diff --git a/apps/terminal/src/locales/en/messages.po b/apps/terminal/src/locales/en/messages.po
index 68d1080a..efd85043 100644
--- a/apps/terminal/src/locales/en/messages.po
+++ b/apps/terminal/src/locales/en/messages.po
@@ -80,6 +80,8 @@ msgstr "7 days"
#~ msgid "About Builder Codes"
#~ msgstr "About Builder Codes"
+#: src/components/account/account-page.tsx
+#: src/components/trade/header/top-nav.tsx
#: src/components/trade/tradebox/account-panel.tsx
msgid "Account"
msgstr "Account"
@@ -96,6 +98,10 @@ msgstr "Account Balances"
msgid "Account Equity"
msgstr "Account Equity"
+#: src/components/account/account-pnl-chart.tsx
+#~ msgid "Account Value"
+#~ msgstr "Account Value"
+
#: src/components/trade/positions/balances-tab.tsx
#: src/components/trade/positions/orders-tab.tsx
#: src/components/trade/positions/positions-tab.tsx
@@ -160,6 +166,7 @@ msgstr "All cross positions share the same cross margin as collateral. In the ev
#~ msgid "All cross positions share the same cross margin as collateral. In the event of liquidation, your cross margin balance and any remaining open positions under assets in this mode may be forfeited."
#~ msgstr "All cross positions share the same cross margin as collateral. In the event of liquidation, your cross margin balance and any remaining open positions under assets in this mode may be forfeited."
+#: src/components/account/account-history.tsx
#: src/components/trade/positions/send-modal.tsx
#: src/components/trade/positions/transfer-modal.tsx
#: src/components/trade/tradebox/deposit-modal.tsx
@@ -183,6 +190,10 @@ msgstr "Amount"
#~ msgid "Approve a builder to charge fees on orders placed on your behalf. Builder codes allow DeFi applications to receive a portion of trading fees."
#~ msgstr "Approve a builder to charge fees on orders placed on your behalf. Builder codes allow DeFi applications to receive a portion of trading fees."
+#: src/components/account/account-history.tsx
+#: src/components/account/account-history.tsx
+#: src/components/account/account-history.tsx
+#: src/components/account/account-positions.tsx
#: src/components/trade/positions/balances-tab.tsx
#: src/components/trade/positions/funding-tab.tsx
#: src/components/trade/positions/history-tab.tsx
@@ -193,10 +204,14 @@ msgstr "Amount"
msgid "Asset"
msgstr "Asset"
-#: src/components/trade/tradebox/account-panel.tsx
-#~ msgid "Assets"
-#~ msgstr "Assets"
+#: src/components/account/account-page.tsx
+msgid "Assets"
+msgstr "Assets"
+#: src/components/account/account-balances.tsx
+#: src/components/account/account-balances.tsx
+#: src/components/account/account-page.tsx
+#: src/components/account/account-page.tsx
#: src/components/trade/mobile/mobile-balances-tab.tsx
#: src/components/trade/positions/balances-tab.tsx
#: src/components/trade/tradebox/trade-form-fields.tsx
@@ -225,6 +240,7 @@ msgstr "Back"
#~ msgid "Back to asset selection"
#~ msgstr "Back to asset selection"
+#: src/components/account/account-page.tsx
#: src/components/trade/tradebox/account-panel.tsx
msgid "Balance"
msgstr "Balance"
@@ -249,6 +265,7 @@ msgstr "Balance available to trade"
#~ msgid "Breadcrumb"
#~ msgstr "Breadcrumb"
+#: src/components/account/account-page.tsx
#: src/components/trade/mobile/mobile-account-view.tsx
#: src/components/trade/tradebox/account-panel.tsx
#: src/components/trade/tradebox/account-panel.tsx
@@ -370,6 +387,10 @@ msgstr "Canceling..."
#~ msgid "cancelled"
#~ msgstr "cancelled"
+#: src/components/account/account-leverage-settings.tsx
+msgid "Cannot switch to isolated mode with an open position"
+msgstr "Cannot switch to isolated mode with an open position"
+
#: src/components/trade/tradebox/margin-mode-modal.tsx
msgid "Cannot switch to Isolated mode with an open position. Close your position first."
msgstr "Cannot switch to Isolated mode with an open position. Close your position first."
@@ -403,14 +424,15 @@ msgstr "Closing..."
#~ msgid "Collapse account panel"
#~ msgstr "Collapse account panel"
-#: src/components/trade/order-entry/order-entry-panel.tsx
-#~ msgid "Coming soon"
-#~ msgstr "Coming soon"
+#: src/components/account/account-pnl-chart.tsx
+msgid "Coming soon"
+msgstr "Coming soon"
#: src/components/trade/positions/twap-tab.tsx
#~ msgid "completed"
#~ msgstr "completed"
+#: src/components/account/account-leverage-settings.tsx
#: src/components/trade/positions/position-tpsl-modal.tsx
#: src/components/trade/tradebox/bridge-tab.tsx
#: src/components/trade/tradebox/leverage-control.tsx
@@ -451,6 +473,8 @@ msgstr "Connect"
#~ msgid "Connect a wallet to manage positions."
#~ msgstr "Connect a wallet to manage positions."
+#: src/components/account/account-page.tsx
+#: src/components/account/account-page.tsx
#: src/components/trade/components/wallet-modal.tsx
#: src/components/trade/header/user-menu.tsx
#: src/components/trade/mobile/mobile-account-view.tsx
@@ -511,6 +535,10 @@ msgstr "Connect your wallet to view trade history."
msgid "Connect your wallet to view TWAP orders."
msgstr "Connect your wallet to view TWAP orders."
+#: src/components/account/account-page.tsx
+msgid "Connect your wallet to view your account overview, positions, and history."
+msgstr "Connect your wallet to view your account overview, positions, and history."
+
#: src/components/trade/mobile/mobile-account-view.tsx
msgid "Connect your wallet to view your account, positions, and start trading."
msgstr "Connect your wallet to view your account, positions, and start trading."
@@ -567,6 +595,10 @@ msgstr "Could not fetch your token balances"
msgid "Created"
msgstr "Created"
+#: src/components/account/account-leverage-settings.tsx
+#: src/components/account/account-leverage-settings.tsx
+#: src/components/account/account-positions.tsx
+#: src/components/account/account-positions.tsx
#: src/components/trade/positions/positions-tab.tsx
#: src/components/trade/tradebox/margin-mode-modal.tsx
#: src/components/trade/tradebox/margin-mode-modal.tsx
@@ -574,13 +606,17 @@ msgstr "Created"
msgid "Cross"
msgstr "Cross"
+#: src/components/account/account-leverage-settings.tsx
+msgid "Cross → Isolated"
+msgstr "Cross → Isolated"
+
#: src/components/trade/tradebox/account-panel.tsx
msgid "Cross Account Leverage"
msgstr "Cross Account Leverage"
-#: src/components/trade/tradebox/account-panel.tsx
-#~ msgid "Cross Leverage"
-#~ msgstr "Cross Leverage"
+#: src/components/account/account-page.tsx
+msgid "Cross Leverage"
+msgstr "Cross Leverage"
#: src/components/trade/mobile/mobile-account-view.tsx
msgid "Cross Margin"
@@ -618,6 +654,7 @@ msgstr "Custom wallet address"
msgid "Default"
msgstr "Default"
+#: src/components/account/account-page.tsx
#: src/components/trade/header/top-nav.tsx
#: src/components/trade/mobile/mobile-nav-drawer.tsx
#: src/components/trade/tradebox/account-panel.tsx
@@ -666,6 +703,10 @@ msgstr "Destination"
msgid "Destination address"
msgstr "Destination address"
+#: src/components/account/account-history.tsx
+msgid "Details"
+msgstr "Details"
+
#: src/components/trade/order-entry/order-entry-panel.tsx
#~ msgid "Direct"
#~ msgstr "Direct"
@@ -715,6 +756,11 @@ msgstr "Duration (Minutes)"
msgid "Each position uses only its allocated margin. If the margin ratio reaches 100%, the position is liquidated. Margin can be added or removed individually."
msgstr "Each position uses only its allocated margin. If the margin ratio reaches 100%, the position is liquidated. Margin can be added or removed individually."
+#: src/components/account/account-leverage-settings.tsx
+#: src/components/account/account-leverage-settings.tsx
+msgid "Edit leverage"
+msgstr "Edit leverage"
+
#: src/components/trade/positions/positions-tab.tsx
msgid "Edit TP/SL"
msgstr "Edit TP/SL"
@@ -765,6 +811,12 @@ msgstr "Enter TP or SL price"
msgid "Enter trigger price"
msgstr "Enter trigger price"
+#: src/components/account/account-history.tsx
+msgid "entries"
+msgstr "entries"
+
+#: src/components/account/account-positions.tsx
+#: src/components/account/account-positions.tsx
#: src/components/trade/mobile/mobile-positions-tab.tsx
#: src/components/trade/positions/positions-tab.tsx
msgid "Entry"
@@ -848,6 +900,7 @@ msgstr "Failed to enable trading"
msgid "Failed to load balances"
msgstr "Failed to load balances"
+#: src/components/account/account-balances.tsx
#: src/components/trade/mobile/mobile-balances-tab.tsx
#: src/components/trade/positions/balances-tab.tsx
msgid "Failed to load balances."
@@ -872,6 +925,7 @@ msgstr "Failed to load order book."
msgid "Failed to load order history."
msgstr "Failed to load order history."
+#: src/components/account/account-positions.tsx
#: src/components/trade/mobile/mobile-positions-tab.tsx
#: src/components/trade/positions/positions-tab.tsx
msgid "Failed to load positions."
@@ -898,10 +952,16 @@ msgstr "Failed to load trades."
msgid "Failed to reverse position"
msgstr "Failed to reverse position"
-#: src/components/trade/order-entry/order-entry-panel.tsx
-#~ msgid "Failed to switch margin mode"
-#~ msgstr "Failed to switch margin mode"
+#: src/components/account/account-leverage-settings.tsx
+msgid "Failed to switch margin mode"
+msgstr "Failed to switch margin mode"
+
+#: src/components/account/account-leverage-settings.tsx
+msgid "Failed to update leverage"
+msgstr "Failed to update leverage"
+#: src/components/account/account-history.tsx
+#: src/components/account/account-history.tsx
#: src/components/trade/mobile/mobile-history-tab.tsx
#: src/components/trade/positions/history-tab.tsx
msgid "Fee"
@@ -923,9 +983,10 @@ msgstr "Fee"
#~ msgid "Fetching quote..."
#~ msgstr "Fetching quote..."
+#. placeholder {0}: formatPrice(markPx, { szDecimals: market?.szDecimals })
#: src/components/trade/mobile/mobile-trade-view.tsx
-#~ msgid "Fill limit price with mark price {0}"
-#~ msgstr "Fill limit price with mark price {0}"
+msgid "Fill limit price with mark price {0}"
+msgstr "Fill limit price with mark price {0}"
#: src/components/trade/tradebox/bridge-tab.tsx
#: src/components/trade/tradebox/bridge-tab.tsx
@@ -958,6 +1019,7 @@ msgstr "From"
#~ msgid "Full Position"
#~ msgstr "Full Position"
+#: src/components/account/account-history.tsx
#: src/components/trade/chart/token-selector-columns.ts
#: src/components/trade/chart/token-selector.tsx
#: src/components/trade/mobile/mobile-positions-tab.tsx
@@ -1003,14 +1065,17 @@ msgstr "Go to Trade"
msgid "Go to trading terminal"
msgstr "Go to trading terminal"
+#: src/components/account/account-balances.tsx
#: src/components/trade/mobile/mobile-balances-tab.tsx
#: src/components/trade/positions/balances-tab.tsx
msgid "Hide small"
msgstr "Hide small"
-#: src/components/trade/tradebox/account-panel.tsx
-#~ msgid "In Orders"
-#~ msgstr "In Orders"
+#: src/components/account/account-balances.tsx
+#: src/components/account/account-balances.tsx
+#: src/components/account/account-page.tsx
+msgid "In Orders"
+msgstr "In Orders"
#: src/components/trade/positions/balances-tab.tsx
#~ msgid "In Use"
@@ -1059,6 +1124,10 @@ msgstr "Invalid amount"
msgid "Invalid Ethereum address"
msgstr "Invalid Ethereum address"
+#: src/components/account/account-leverage-settings.tsx
+#: src/components/account/account-leverage-settings.tsx
+#: src/components/account/account-positions.tsx
+#: src/components/account/account-positions.tsx
#: src/components/trade/positions/positions-tab.tsx
#: src/components/trade/tradebox/margin-mode-modal.tsx
#: src/components/trade/tradebox/margin-mode-modal.tsx
@@ -1066,6 +1135,10 @@ msgstr "Invalid Ethereum address"
msgid "Isolated"
msgstr "Isolated"
+#: src/components/account/account-leverage-settings.tsx
+msgid "Isolated → Cross"
+msgstr "Isolated → Cross"
+
#: src/components/trade/components/global-settings-dialog.tsx
#~ msgid "Language"
#~ msgstr "Language"
@@ -1083,12 +1156,27 @@ msgstr "Leaderboard"
msgid "Learn more"
msgstr "Learn more"
+#: src/components/account/account-history.tsx
+msgid "Ledger"
+msgstr "Ledger"
+
+#: src/components/account/account-leverage-settings.tsx
+#: src/components/account/account-positions.tsx
+#: src/components/account/account-positions.tsx
#: src/components/trade/tradebox/leverage-control.tsx
#: src/components/trade/tradebox/leverage-control.tsx
#: src/components/trade/tradebox/margin-mode-modal.tsx
msgid "Leverage"
msgstr "Leverage"
+#: src/components/account/account-leverage-settings.tsx
+msgid "Leverage Settings"
+msgstr "Leverage Settings"
+
+#: src/components/account/account-leverage-settings.tsx
+msgid "Leverage updated to {pendingLeverage}× for {coin}"
+msgstr "Leverage updated to {pendingLeverage}× for {coin}"
+
#: src/components/trade/components/global-settings-dialog.tsx
#~ msgid "Light"
#~ msgstr "Light"
@@ -1130,10 +1218,16 @@ msgstr "Limit Price"
msgid "Liq"
msgstr "Liq"
+#: src/components/account/account-positions.tsx
+#: src/components/account/account-positions.tsx
+msgid "Liq Price"
+msgstr "Liq Price"
+
#: src/components/trade/tradebox/order-summary.tsx
msgid "Liq. Price"
msgstr "Liq. Price"
+#: src/components/account/account-history.tsx
#: src/components/trade/mobile/mobile-history-tab.tsx
#: src/components/trade/positions/history-tab.tsx
msgid "Liquidated"
@@ -1188,6 +1282,8 @@ msgstr "Loading wallet..."
msgid "Loading..."
msgstr "Loading..."
+#: src/components/account/account-positions.tsx
+#: src/components/account/account-positions.tsx
#: src/components/trade/mobile/mobile-positions-tab.tsx
#: src/components/trade/positions/position-tpsl-modal.tsx
msgid "Long"
@@ -1206,6 +1302,8 @@ msgstr "Maintenance Margin"
#~ msgid "Manage your risk on individual positions by restricting the amount of margin allocated to each. If the margin ratio of an isolated position reaches 100%, the position will be liquidated. Margin can be added or removed to individual positions in this mode."
#~ msgstr "Manage your risk on individual positions by restricting the amount of margin allocated to each. If the margin ratio of an isolated position reaches 100%, the position will be liquidated. Margin can be added or removed to individual positions in this mode."
+#: src/components/account/account-positions.tsx
+#: src/components/account/account-positions.tsx
#: src/components/trade/mobile/mobile-positions-tab.tsx
#: src/components/trade/positions/positions-tab.tsx
msgid "Margin"
@@ -1223,22 +1321,29 @@ msgstr "Margin & leverage"
msgid "Margin mode"
msgstr "Margin mode"
-#: src/components/trade/tradebox/margin-mode-dialog.tsx
-#~ msgid "Margin Mode"
-#~ msgstr "Margin Mode"
+#: src/components/account/account-leverage-settings.tsx
+msgid "Margin Mode"
+msgstr "Margin Mode"
-#: src/components/trade/tradebox/account-panel.tsx
-#~ msgid "Margin Ratio"
-#~ msgstr "Margin Ratio"
+#. placeholder {0}: newMode === "cross" ? t`Cross` : t`Isolated`
+#: src/components/account/account-leverage-settings.tsx
+msgid "Margin mode switched to {0} for {coin}"
+msgstr "Margin mode switched to {0} for {coin}"
+
+#: src/components/account/account-page.tsx
+msgid "Margin Ratio"
+msgstr "Margin Ratio"
#: src/components/trade/tradebox/order-summary.tsx
msgid "Margin Req."
msgstr "Margin Req."
-#: src/components/trade/tradebox/account-panel.tsx
-#~ msgid "Margin Used"
-#~ msgstr "Margin Used"
+#: src/components/account/account-page.tsx
+msgid "Margin Used"
+msgstr "Margin Used"
+#: src/components/account/account-positions.tsx
+#: src/components/account/account-positions.tsx
#: src/components/trade/mobile/mobile-positions-tab.tsx
#: src/components/trade/positions/positions-tab.tsx
msgid "Mark"
@@ -1446,16 +1551,25 @@ msgstr "No balances found"
msgid "No balances found. Deposit funds to start trading."
msgstr "No balances found. Deposit funds to start trading."
+#: src/components/account/account-pnl-chart.tsx
+#~ msgid "No data available"
+#~ msgstr "No data available"
+
#: src/components/trade/mobile/mobile-history-tab.tsx
#: src/components/trade/positions/history-tab.tsx
msgid "No fills found."
msgstr "No fills found."
+#: src/components/account/account-history.tsx
#: src/components/trade/mobile/mobile-funding-tab.tsx
#: src/components/trade/positions/funding-tab.tsx
msgid "No funding payments found."
msgstr "No funding payments found."
+#: src/components/account/account-history.tsx
+msgid "No ledger activity found."
+msgstr "No ledger activity found."
+
#: src/lib/errors/definitions/market.ts
msgid "No mark price"
msgstr "No mark price"
@@ -1473,6 +1587,15 @@ msgstr "No markets found."
msgid "No open orders."
msgstr "No open orders."
+#: src/components/account/account-positions.tsx
+msgid "No open positions."
+msgstr "No open positions."
+
+#: src/components/account/account-leverage-settings.tsx
+msgid "No open positions. Leverage settings appear here when you have active positions."
+msgstr "No open positions. Leverage settings appear here when you have active positions."
+
+#: src/components/account/account-history.tsx
#: src/components/trade/mobile/mobile-orders-history-tab.tsx
#: src/components/trade/positions/orders-history-tab.tsx
msgid "No order history found."
@@ -1486,6 +1609,10 @@ msgstr "No response from exchange"
msgid "No route available. Try a different amount or asset."
msgstr "No route available. Try a different amount or asset."
+#: src/components/account/account-balances.tsx
+msgid "No spot balances."
+msgstr "No spot balances."
+
#: src/components/trade/components/token-selector-dropdown.tsx
#~ msgid "No tokens available"
#~ msgstr "No tokens available"
@@ -1494,6 +1621,10 @@ msgstr "No route available. Try a different amount or asset."
msgid "No tokens with value found across supported chains"
msgstr "No tokens with value found across supported chains"
+#: src/components/account/account-history.tsx
+msgid "No trades found."
+msgstr "No trades found."
+
#: src/components/trade/order-entry/swap-asset-modal.tsx
#~ msgid "No trading pair available for {fromToken}/{toToken}"
#~ msgstr "No trading pair available for {fromToken}/{toToken}"
@@ -1571,6 +1702,10 @@ msgstr "Open Interest"
msgid "Open Orders"
msgstr "Open Orders"
+#: src/components/account/account-positions.tsx
+msgid "Open Positions"
+msgstr "Open Positions"
+
#: src/components/trade/positions/positions-tab.tsx
#~ msgid "Open positions count"
#~ msgstr "Open positions count"
@@ -1613,13 +1748,14 @@ msgstr "Order submitted"
msgid "Order Value"
msgstr "Order Value"
+#: src/components/account/account-history.tsx
#: src/components/trade/positions/orders-history-tab.tsx
msgid "orders"
msgstr "orders"
-#: src/components/trade/positions/orders-history-tab.tsx
-#~ msgid "Orders"
-#~ msgstr "Orders"
+#: src/components/account/account-history.tsx
+msgid "Orders"
+msgstr "Orders"
#: src/components/trade/tradebox/advanced-order-dropdown.tsx
#: src/components/trade/tradebox/advanced-order-dropdown.tsx
@@ -1643,10 +1779,15 @@ msgstr "Page not found"
#~ msgid "pagination"
#~ msgstr "pagination"
+#: src/components/account/account-history.tsx
#: src/components/trade/positions/funding-tab.tsx
msgid "Payment"
msgstr "Payment"
+#: src/components/account/account-history.tsx
+msgid "payments"
+msgstr "payments"
+
#: src/components/trade/tradebox/order-toast.tsx
msgid "pending"
msgstr "pending"
@@ -1662,11 +1803,17 @@ msgstr "pending"
msgid "Perp"
msgstr "Perp"
+#: src/components/account/account-history.tsx
+msgid "Perp → Spot"
+msgstr "Perp → Spot"
+
#: src/components/trade/mobile/mobile-balances-tab.tsx
#: src/components/trade/positions/balances-tab.tsx
msgid "Perpetuals"
msgstr "Perpetuals"
+#: src/components/account/account-page.tsx
+#: src/components/account/account-page.tsx
#: src/components/trade/tradebox/account-panel.tsx
msgid "Perps"
msgstr "Perps"
@@ -1696,6 +1843,8 @@ msgstr "Place Limit Close"
msgid "Please enter an address"
msgstr "Please enter an address"
+#: src/components/account/account-history.tsx
+#: src/components/account/account-positions.tsx
#: src/components/trade/positions/balances-tab.tsx
#: src/components/trade/positions/history-tab.tsx
#: src/components/trade/positions/positions-tab.tsx
@@ -1711,6 +1860,11 @@ msgstr "PNL"
msgid "Portfolio"
msgstr "Portfolio"
+#: src/components/account/account-pnl-chart.tsx
+msgid "Portfolio PNL"
+msgstr "Portfolio PNL"
+
+#: src/components/account/account-history.tsx
#: src/components/trade/mobile/mobile-funding-tab.tsx
#: src/components/trade/positions/funding-tab.tsx
#: src/components/trade/tradebox/trade-form-fields.tsx
@@ -1746,6 +1900,8 @@ msgstr "Preparing your quote..."
#~ msgid "Previous"
#~ msgstr "Previous"
+#: src/components/account/account-history.tsx
+#: src/components/account/account-history.tsx
#: src/components/trade/chart/token-selector-columns.ts
#: src/components/trade/chart/token-selector.tsx
#: src/components/trade/mobile/mobile-history-tab.tsx
@@ -1794,6 +1950,7 @@ msgstr "Processing..."
msgid "Randomize timing"
msgstr "Randomize timing"
+#: src/components/account/account-history.tsx
#: src/components/trade/components/spot-swap-modal.tsx
#: src/components/trade/mobile/mobile-funding-tab.tsx
#: src/components/trade/positions/funding-tab.tsx
@@ -1952,6 +2109,7 @@ msgstr "Sell"
#~ msgid "Sell Short"
#~ msgstr "Sell Short"
+#: src/components/account/account-page.tsx
#: src/components/trade/mobile/mobile-balances-tab.tsx
#: src/components/trade/positions/balances-tab.tsx
#: src/components/trade/positions/send-modal.tsx
@@ -2007,6 +2165,8 @@ msgstr "Set to {p}%"
msgid "Settings"
msgstr "Settings"
+#: src/components/account/account-positions.tsx
+#: src/components/account/account-positions.tsx
#: src/components/trade/mobile/mobile-positions-tab.tsx
#: src/components/trade/positions/position-tpsl-modal.tsx
msgid "Short"
@@ -2052,9 +2212,9 @@ msgstr "Show Values in Quote Asset"
#~ msgid "Show Values in USD"
#~ msgstr "Show Values in USD"
-#: src/components/trade/positions/position-tpsl-modal.tsx
-#~ msgid "Side"
-#~ msgstr "Side"
+#: src/components/account/account-history.tsx
+msgid "Side"
+msgstr "Side"
#: src/components/ui/sidebar.tsx
#~ msgid "Sidebar"
@@ -2072,6 +2232,10 @@ msgstr "Signer not ready"
#~ msgid "Signing..."
#~ msgstr "Signing..."
+#: src/components/account/account-history.tsx
+#: src/components/account/account-history.tsx
+#: src/components/account/account-positions.tsx
+#: src/components/account/account-positions.tsx
#: src/components/trade/mobile/mobile-history-tab.tsx
#: src/components/trade/mobile/mobile-orders-history-tab.tsx
#: src/components/trade/mobile/mobile-orders-tab.tsx
@@ -2157,6 +2321,8 @@ msgstr "Source"
#~ msgid "spot"
#~ msgstr "spot"
+#: src/components/account/account-page.tsx
+#: src/components/account/account-page.tsx
#: src/components/trade/header/top-nav.tsx
#: src/components/trade/mobile/mobile-balances-tab.tsx
#: src/components/trade/mobile/mobile-nav-drawer.tsx
@@ -2167,10 +2333,18 @@ msgstr "Source"
msgid "Spot"
msgstr "Spot"
+#: src/components/account/account-history.tsx
+msgid "Spot → Perp"
+msgstr "Spot → Perp"
+
#: src/components/trade/positions/send-modal.tsx
msgid "Spot Account"
msgstr "Spot Account"
+#: src/components/account/account-balances.tsx
+msgid "Spot Balances"
+msgstr "Spot Balances"
+
#: src/components/pages/builder-page.tsx
#~ msgid "Spot: Max 1% (100 basis points)"
#~ msgstr "Spot: Max 1% (100 basis points)"
@@ -2196,6 +2370,7 @@ msgstr "Start Price"
#~ msgid "Start Price (USDC)"
#~ msgstr "Start Price (USDC)"
+#: src/components/account/account-history.tsx
#: src/components/trade/positions/orders-history-tab.tsx
msgid "Status"
msgstr "Status"
@@ -2367,6 +2542,10 @@ msgstr "The page you are looking for does not exist."
msgid "TIF"
msgstr "TIF"
+#: src/components/account/account-history.tsx
+#: src/components/account/account-history.tsx
+#: src/components/account/account-history.tsx
+#: src/components/account/account-history.tsx
#: src/components/trade/mobile/mobile-funding-tab.tsx
#: src/components/trade/orderbook/trades-panel.tsx
#: src/components/trade/positions/funding-tab.tsx
@@ -2409,16 +2588,26 @@ msgstr "To Spot"
msgid "Toggle size mode"
msgstr "Toggle size mode"
+#: src/components/account/account-balances.tsx
+msgid "Token"
+msgstr "Token"
+
#: src/components/trade/market-overview.tsx
msgid "TOKEN"
msgstr "TOKEN"
+#: src/components/account/account-balances.tsx
+#: src/components/account/account-balances.tsx
#: src/components/trade/mobile/mobile-balances-tab.tsx
#: src/components/trade/orderbook/orderbook-panel.tsx
#: src/components/trade/positions/balances-tab.tsx
msgid "Total"
msgstr "Total"
+#: src/components/account/account-page.tsx
+msgid "Total Equity"
+msgstr "Total Equity"
+
#: src/components/trade/positions/twap-tab.tsx
#~ msgid "Total Size"
#~ msgstr "Total Size"
@@ -2427,9 +2616,9 @@ msgstr "Total"
msgid "Total time"
msgstr "Total time"
-#: src/components/trade/tradebox/account-panel.tsx
-#~ msgid "Total Value"
-#~ msgstr "Total Value"
+#: src/components/account/account-page.tsx
+msgid "Total Value"
+msgstr "Total Value"
#: src/components/trade/positions/orders-tab.tsx
#~ msgid "TP"
@@ -2480,10 +2669,12 @@ msgstr "Trade History"
msgid "Trade via {0} spot market"
msgstr "Trade via {0} spot market"
+#: src/components/account/account-history.tsx
#: src/components/trade/positions/history-tab.tsx
msgid "trades"
msgstr "trades"
+#: src/components/account/account-history.tsx
#: src/components/trade/orderbook/orderbook-panel.tsx
msgid "Trades"
msgstr "Trades"
@@ -2504,6 +2695,7 @@ msgstr "Transaction breakdown"
msgid "Transaction was rejected"
msgstr "Transaction was rejected"
+#: src/components/account/account-page.tsx
#: src/components/trade/positions/transfer-modal.tsx
#: src/components/trade/tradebox/deposit-modal.tsx
#: src/components/trade/tradebox/deposit-modal.tsx
@@ -2558,6 +2750,8 @@ msgstr "TWAP minutes must be {TWAP_MINUTES_MIN}-{TWAP_MINUTES_MAX}"
msgid "TWAP Orders"
msgstr "TWAP Orders"
+#: src/components/account/account-history.tsx
+#: src/components/account/account-history.tsx
#: src/components/trade/mobile/mobile-orders-history-tab.tsx
#: src/components/trade/positions/history-tab.tsx
#: src/components/trade/positions/orders-history-tab.tsx
@@ -2587,6 +2781,8 @@ msgstr "Unknown symbol: {symbolName}"
msgid "Unrealized P&L"
msgstr "Unrealized P&L"
+#: src/components/account/account-page.tsx
+#: src/components/account/account-page.tsx
#: src/components/trade/tradebox/account-panel.tsx
msgid "Unrealized PNL"
msgstr "Unrealized PNL"
@@ -2596,6 +2792,7 @@ msgstr "Unrealized PNL"
msgid "Unsupported resolution: {0}"
msgstr "Unsupported resolution: {0}"
+#: src/components/account/account-leverage-settings.tsx
#: src/components/trade/tradebox/leverage-control.tsx
#: src/components/trade/tradebox/margin-mode-modal.tsx
msgid "Update failed"
@@ -2612,6 +2809,7 @@ msgstr "Updated"
msgid "Updated live"
msgstr "Updated live"
+#: src/components/account/account-balances.tsx
#: src/components/trade/positions/balances-tab.tsx
msgid "USD Value"
msgstr "USD Value"
@@ -2688,6 +2886,7 @@ msgstr "Wallet not connected"
msgid "will arrive in ~5 min"
msgstr "will arrive in ~5 min"
+#: src/components/account/account-page.tsx
#: src/components/trade/tradebox/account-panel.tsx
#: src/components/trade/tradebox/account-panel.tsx
#: src/components/trade/tradebox/deposit-modal.tsx
@@ -2697,6 +2896,10 @@ msgstr "will arrive in ~5 min"
msgid "Withdraw"
msgstr "Withdraw"
+#: src/components/account/account-page.tsx
+msgid "Withdrawable"
+msgstr "Withdrawable"
+
#: src/components/trade/tradebox/deposit-modal.tsx
msgid "Withdrawal failed"
msgstr "Withdrawal failed"
diff --git a/apps/terminal/src/locales/es/messages.js b/apps/terminal/src/locales/es/messages.js
index 0c01f35b..c69617d9 100644
--- a/apps/terminal/src/locales/es/messages.js
+++ b/apps/terminal/src/locales/es/messages.js
@@ -1,5 +1,5 @@
/*eslint-disable*/ module.exports = {
messages: JSON.parse(
- '{"++OGth":["Deposit successful"],"+1S7b1":["Billetera no conectada"],"+6YAwo":["selected"],"+8WrGc":["No se encontraron billeteras"],"+F8cLG":["Muestra la barra lateral móvil."],"+JE0m7":["Error al cargar posiciones."],"+K0AvT":["Desconectar"],"+N2Rqk":["Sin posiciones activas."],"+ONfBR":["PRICE"],"+ZV3i5":["Error al cargar órdenes abiertas."],"+b7T3G":["Updated"],"+hA/UM":["Órdenes abiertas"],"+nuEh/":["Estimated time"],"+w/hP1":["Mostrar ejecuciones en gráfico"],"+xnyQO":["Ingresa tamaño"],"+z3YcL":["Position actions"],"+zy2Nq":["Tipo"],"/2hibY":["Cancelar seleccionadas"],"/AsMcZ":["Enabling..."],"/IX/7x":["Other"],"/PvdTS":["Gas (",["0"],")"],"/TT0Oq":["ORÁCULO"],"/cF7Rs":["Volumen"],"/gY2VH":["Filtrar por ",["0"]],"/jQctM":["To"],"/kXBrK":["Total time"],"/mfICu":["Fees"],"/tPR7R":["Builder Fee"],"0+Iw6C":["Duration (Minutes)"],"0+X+sh":["Spot Account"],"0LZtsz":["Take Market"],"0Mx4+k":["No trading pair available for ",["fromTokenDisplay"],"/",["toTokenDisplay"]],"0P2gFy":["La página que buscas no existe."],"0QDjxt":["Balance:"],"0RrIzN":["Seleccionar token"],"0Xlr0L":["Minimum deposit is ",["0"]," USDC"],"0exG4Q":["Financiamiento"],"0z59Ep":["venta"],"1BkDWk":["Comprar largo"],"1QfxQT":["Descartar"],"1UzENP":["No"],"1ZMjyh":["The builder at ",["0"],"...",["1"]," can now charge up to ",["maxFeeRate"],"% fee on orders placed on your behalf."],"1h+RBg":["Orders"],"1njn7W":["Light"],"29VNqC":["Unknown error"],"2Ea5Vz":["Historial de operaciones"],"2FYpfJ":["Más"],"2M2s7z":["Habilitar trading"],"2PsTzL":["completado"],"2tQrK2":["Cambiar a Arbitrum"],"3/vMct":["A crypto wallet lets you store and manage your digital assets securely."],"30ZPad":["Posiciones activas"],"3CHbH/":["SL Price"],"3DtJpz":["Stop Limit"],"3IkQgP":["Secure & Private"],"3Siwmw":["Más opciones"],"3UZudY":["Stop trigger must be below mark"],"3fPjUY":["Pro"],"3oHIhx":["TP must be above entry"],"4+HkLv":["Show Values in Quote Asset"],"40lLFI":["Ir a página siguiente"],"42w2ly":["IA"],"46Sm8O":["Gas:"],"4HtGBb":["MAX"],"4J2s8f":["Cancelando..."],"4Kyst7":["Agent mode: Orders signed automatically (fast)"],"4NuBK4":["Esperando operaciones..."],"4Vzb+4":["Cerrando..."],"54QqdM":["Firmando..."],"5FsTU5":["Cliente de billetera no está listo"],"5Omwef":["Scale level below min notional"],"5joj8M":["Transaction breakdown"],"5oE2C+":["Ordenado por ",["0"]],"5u8fWJ":["Back to asset selection"],"5xKxZd":["TP trigger price"],"5zbbOn":["Invalid amount"],"60m4P5":["24H VOL"],"621rYf":["Pago"],"63wHTy":["Edit TP/SL"],"69b7aE":["Open command menu"],"6Aih4U":["Offline"],"6gRgw8":["Retry"],"6jVqpA":["Error al cargar historial de operaciones."],"6poLt9":["Alternar barra lateral"],"6vyJOd":["Deposit from any chain to your Hyperliquid account"],"6zAIUU":["Cannot switch to Isolated mode with an open position. Close your position first."],"72c5Qo":["Total"],"77Rx22":["Contraer panel de cuenta"],"7L01XJ":["Acciones"],"7Lv7j5":["Margin Mode"],"7VpPHA":["Confirm"],"7l15X4":["fallido"],"88cUW+":["You receive"],"8F1i42":["Página no encontrada"],"8Fu1E7":["Cambiar modo de tamaño"],"8Itoo3":["Unrealized P&L"],"8LkAxv":["SL must be below entry"],"8SNccp":["Switch to ",["displayName"]," market, short position"],"8gcijf":["Insufficient <0/> balance"],"8hvfaA":["Position closed"],"8yhvii":["Mid"],"997z0L":["Spot: Max 1% (100 basis points)"],"9ACh/c":["Sin precio marca"],"9SBcQj":["All cross positions share the same cross margin as collateral. In the event of liquidation, your cross margin balance and any remaining open positions may be forfeited."],"9lH5ev":["Cargando órdenes abiertas..."],"9mRTyg":["Bloque:"],"9qnvU0":["Switch to ",["displayName"]," market"],"9ykF9H":["Hide small"],"9zb2WA":["Connecting"],"A+q/Is":["mercados"],"A1taO8":["Search"],"AArF6S":["Move USDC between your Perp and Spot accounts."],"AEGM8s":["Failed to copy"],"AErIoZ":["Manage your risk on individual positions by restricting the amount of margin allocated to each. If the margin ratio of an isolated position reaches 100%, the position will be liquidated. Margin can be added or removed to individual positions in this mode."],"AGWjPT":["Establecer ",["p"],"%"],"AUYALh":["Próximamente"],"AUahCv":["Insufficient funds for gas"],"AeXO77":["Cuenta"],"B5AKvo":["Marca"],"BOppjS":["Sin mercado"],"BSj/hz":["Agregar fondos"],"BvlAGq":["PNL no realizado"],"BxBZCk":["Each position uses only its allocated margin. If the margin ratio reaches 100%, the position is liquidated. Margin can be added or removed individually."],"C2TJN3":["Cargando órdenes TWAP..."],"CF1zwJ":["Error al cargar historial de financiamiento."],"CK1KXz":["Máx"],"CMHmbm":["Deslizamiento"],"CP3D8G":["Progreso"],"CW11B+":["Minimum"],"CfRvLF":["Swap failed"],"CgqzuN":["Cruzado"],"Cj2Gtd":["Tamaño"],"Cjh38d":["New to wallets?"],"Ck1xL4":["You send"],"Co8gGw":["No active TWAP orders."],"CtByM7":["Conectar billetera"],"CzeOTH":["Wallet (",["0"],")"],"D243f/":["Install a wallet extension to continue"],"D6X5UU":["Market Close"],"DBVcOk":["More intervals"],"DHhJ7s":["Anterior"],"DPfwMq":["Done"],"DWs3bP":["Mark:"],"DXxfpS":["Seleccionar agregación del libro de órdenes"],"DZo9LT":["Mock Wallet (Testing)"],"DabQ8P":["Órdenes TWAP"],"E8sxZm":["Mostrar posiciones en gráfico"],"EE/1QC":["Format for numbers and dates"],"ETkk6Z":["TOKEN"],"Enslfm":["Destination"],"F6pfE9":["Activo"],"FF5wYg":["Seleccionar todas las órdenes"],"FKY8dA":["Est. P&L at Limit"],"FLNk0d":["Min order $",["ORDER_MIN_NOTIONAL_USD"]],"FLkCnQ":["You can revoke permissions at any time by registering a new approval with 0% fee rate. Builder codes are processed entirely onchain as part of the fee logic."],"FS+bo3":["No se puede cerrar la posición."],"Fdp03t":["on"],"FmemI7":["FUNDING"],"FqmhBo":["No balance on Hyperliquid. Deposit first."],"FxVG/l":["Copied to clipboard"],"G3oEYi":["Seleccionar orden"],"G6etJA":["Cargando saldos..."],"GINUX/":["Only you control your funds. No email or password required."],"GLWV4x":["Builder must have at least 100 USDC in perps account value"],"GX8GKD":["Assets"],"GbNWWs":["Slippage tolerance"],"H2Sfhg":["Trigger"],"HJlY85":["Sin saldo"],"HZN+sw":["Trading"],"HZdgTJ":["Select signing mode"],"HfT9T6":["No route available. Try a different amount or asset."],"Hp1l6f":["Current"],"I8LlJA":["TradingView"],"ICCWOn":["No se pudo crear la billetera"],"IJfJAB":["Margin mode"],"IJndUb":["Connect your wallet to register a builder code"],"IV3hWp":["Enter trigger price"],"IZL9b6":["Apalancamiento cruzado"],"IcSLiu":["Oracle"],"Ieh2cV":["Expandir panel de cuenta"],"IoAuJG":["Sending..."],"IwI0rY":["Wrong network"],"IyNxxU":["perp"],"J24FyN":["Bridge"],"J28zul":["Conectando..."],"JHxGP5":["Operar"],"JVvYNb":["Deposit complete"],"JXzPJX":["SL"],"JfWXib":["Track on LI.FI Explorer"],"JlFcis":["Send"],"Ju4B2M":["Seleccionar apalancamiento"],"JuyzMZ":["Maximum slippage tolerance for market orders"],"KTNWsg":["Withdrawal failed"],"KYAjf3":["Aislado"],"KZHfkR":["Depositar fondos"],"KaqqlB":["Depositar en Hyperliquid"],"Ke6k18":["Leverage"],"KeDrPl":["Minimum deposit is 5 USDC"],"KnTbj2":["Mostrar órdenes en gráfico"],"Kp3IPD":["No response from exchange"],"KsqhWn":["Staking"],"KxF048":["Personaliza tu experiencia de trading."],"Kz1TxG":["abierta"],"L+qiq+":["Mercado"],"L4jnDP":["Ejecutado"],"LEbOpR":["More details"],"LHfqhz":["New deposit"],"LMMGPr":["Submitting..."],"Le70b5":["Más páginas"],"LhMjLm":["Hora"],"LlsvFY":["Reduce"],"Lx+htK":["Swap submitted"],"Lz5J1x":["Sort by ",["sortLabel"]],"M0biAV":["Preparing your quote..."],"M9fkA0":["Liquidated"],"MLQamJ":["Conecta tu billetera para ver historial de operaciones."],"MSSmsu":["To Perp"],"MTq3hP":["24h vol"],"Mim7/r":["Insufficient ",["fromTokenDisplay"]," balance"],"MpLcsV":["Loading balances across all chains..."],"MqA4qt":["Portafolio"],"MyytBE":["Send tokens to another account on the Hyperliquid L1."],"N40H+G":["All"],"NIDWjN":["SL must be above entry"],"NJNMJX":["TWAP"],"NNJKWa":["Connect your wallet to withdraw funds"],"NQtgSJ":["Failed to register builder code"],"NpuiU+":["Perpetuos"],"NsJrqM":["Mercado no listo"],"ODVKKZ":["Ingresa precio límite"],"OQGH4C":["límite sr"],"OR475H":["Network"],"OSnZvX":["Change leverage"],"OYsSpP":["Failed to reverse position"],"OZtEcz":["API"],"Oe3M3Y":["Switch to Arbitrum to deposit USDC to Hyperliquid"],"Oid00w":["Enter price range"],"OsyKSt":["Retirar"],"Otdc/Y":["Conecta tu billetera para ver posiciones."],"OxPEUg":["En uso"],"PJEzIS":["Bridge to Hyperliquid"],"PLUB/s":["Comisión"],"PNsB0A":["Fetching quote..."],"PTna/x":["Interés abierto"],"PTyoXs":["Set SL to ",["p"],"%"],"PWRc/M":["Open positions count"],"PZBWpL":["Cambiar a modo claro"],"PaQ3df":["Enable"],"PcmIvv":["pbs"],"PeO4lq":["Requirements:"],"PelVTv":["Register Builder Code"],"PiH3UR":["Copied!"],"Pl9jiz":["Show Orders"],"QD2PKQ":["End Price"],"QHcLEN":["Conectado"],"QjUEvK":["Cancelar todo"],"R68yLX":["Establecer TP/SL"],"RRXpo1":["Corto"],"RaWC6b":["Size exceeds position"],"Rb1yph":["Precio liq."],"RnpwtT":["TWAP minutes must be ",["TWAP_MINUTES_MIN"],"-",["TWAP_MINUTES_MAX"]],"RoE+o+":["Solo reducir"],"S33tz3":["No conectado"],"S48xcO":["pendiente"],"S9zH+G":["This action must be signed by your main wallet (not an agent/API wallet). The builder must have at least 100 USDC in perps account value."],"SEDVHU":["Cargando posiciones..."],"SEoDwA":["Take Limit"],"SJrFO1":["Position close actions"],"SVHeJc":["Direct mode: Sign each order with wallet"],"SWH2Eh":["Time in Force"],"SsGsC0":["Cancelar órdenes seleccionadas"],"Svkela":["Ir a página anterior"],"T/pF0Z":["Quitar de favoritos"],"TDa39c":["Precio 24h"],"THTG58":["Select asset to bridge"],"THmCgW":["Select market"],"TK3J5O":["Send Tokens"],"TK9uys":["Seleccionar mercado ",["coin"]],"TLa4Oo":["Conecta una billetera para gestionar posiciones."],"TNtZN2":["TP"],"TQ/QV5":["No trading pair available for ",["fromToken"],"/",["toToken"]],"TT0aVH":["Order submitted"],"TbjyhA":["Documentación"],"Tm8JF7":["Connect your wallet to bridge funds"],"Tuc34V":["Confirm Bridge"],"Tz0i8g":["Configuración"],"U3As+R":["Take Profit"],"U86eEA":["No user address"],"URvngU":["Est. time"],"UXtGFD":["Full Position"],"UwG7db":["What is a wallet?"],"V0ubMJ":["Tomar ganancia / Stop Loss"],"V3XYw0":["P&L"],"V6ETmV":["To Spot"],"VAZUpd":["Orden fallida"],"VIwCaD":["Entrada"],"VMLGYS":["Switch to Mainnet"],"VU5rsP":["Number Format"],"VXCk+w":["Cargando mercados..."],"VYFX4v":["Perpetuals"],"VcaZ5z":["No se encontraron mercados."],"VgTxu0":["Firmante no listo"],"VmhkuH":["Account and wallet"],"W1k7eB":["24h"],"W75iLe":["Conecta tu billetera para ver saldos."],"W9Fxbx":["SL trigger price"],"WISj7i":["Place Limit Close"],"WNMYIN":["cancelado"],"WajXzx":["Est. P&L"],"WhSRZw":["This row answers: “What is the selected market doing right now?” — mark price, 24h move, oracle, volume, open interest, and funding. Pick a layout that balances scan speed, density, and calm."],"Wqz0SO":["Low Balance"],"XCIAdj":["RO"],"XFp9Bf":["Scale levels must be ",["SCALE_LEVELS_MIN"],"-",["SCALE_LEVELS_MAX"]],"XYLcNv":["Soporte"],"XbxYxh":["Price grouping"],"Y1W9ip":["Patrimonio"],"Y9gMWT":["Error al cargar libro de órdenes."],"YZLEvW":["Processing deposit"],"YnKdJE":["Margen usado"],"YxaAON":["Diferencial"],"Z3FXyt":["Cargando..."],"ZB/Jm6":["Margin & leverage"],"ZDBdfg":["Enter TP or SL price"],"ZFtwlj":["Operaciones"],"ZHJZmo":["Amount (USDC)"],"ZYnwzF":["Disconnected"],"ZmGjjl":["Your bridge is still processing. Funds are safe."],"a/MzGi":["sent to Hyperliquid"],"a7u1N9":["Precio"],"a9q6hE":["waiting"],"aAIQg2":["Appearance"],"adcjkX":["Limit close order placed"],"axyo2z":["Conecta una billetera para gestionar órdenes."],"b7Wduj":["compra"],"bMJMhJ":["Error de WebSocket"],"bSCsJh":["TP/SL"],"bUUVED":["Activo"],"bVPv2S":["Actualizado en vivo"],"bW1xET":["Stop trigger must be above mark"],"bifv6N":["Scale"],"bm80CF":["Conecta tu billetera para ver órdenes TWAP."],"c+VX3P":["Custom TP percentage"],"c+tzs5":["Sign in wallet..."],"c2npeq":["Custom SL percentage"],"cJzJWa":["Transfer failed"],"cXvnJ8":["Deslizamiento de orden de mercado"],"csDS2L":["Disponible"],"cwQAhE":["Failed to switch margin mode"],"d+F6q9":["Created"],"dEgA5A":["Cancelar"],"dQGImW":["Saldos de cuenta"],"daWrYT":["Agent verification failed"],"dcKNhk":["Taking longer than expected"],"dfIw2n":["Valor en USD"],"dkzoLd":["Cargando historial de financiamiento..."],"doRJE6":["Set TP/SL for ",["0"]],"drvdT3":["Add TP/SL"],"e/cvV1":["Verifying..."],"e/vgsz":["Total Value"],"e0bpdM":["Símbolo desconocido: ",["symbolName"]],"e2oWGN":["No tokens with value found across supported chains"],"eXs0Bt":["Buscar mercados..."],"ebwNSs":["Remove ",["displayName"]," from favorites"],"eiZzfX":["Builder codes allow DeFi builders to receive a fee on fills they send on behalf of users. They are set per-order for maximal flexibility."],"ejVYRQ":["From"],"es+Zrf":["Transferring..."],"fBckrr":["Resolución no soportada: ",["0"]],"fEC2uI":["Transfiere USDC a tu cuenta Hyperliquid para comenzar a operar."],"fOG42Y":["Connect your wallet to start trading on Hyperliquid"],"fVmG6b":["Failed to load balances"],"fYSYwH":["Sin órdenes abiertas."],"fYUNRJ":["Direct"],"fhqG7u":["Connected: ",["0"],"...",["1"]],"fqDzSu":["Tasa"],"fsBGk0":["Saldo"],"g5PJI8":["OPEN INT"],"gIpxlQ":["Minimum withdrawal is $",["MIN_WITHDRAW_USD"]],"gL/sdV":["Popular"],"gMHkDJ":["Error al cargar saldos."],"gVLSxk":["Transaction was rejected"],"ga6DLx":["Your bridge is still processing. Funds are safe — LI.FI routes are always recoverable."],"gbNGPv":["Risk/Reward"],"gsL/Ic":["All cross positions share the same cross margin as collateral. In the event of liquidation, your cross margin balance and any remaining open positions under assets in this mode may be forfeited."],"h+3Zi0":["Cargando billetera..."],"h0gbH9":["Transfiere USDC desde Arbitrum u otras cadenas a tu cuenta Hyperliquid."],"h3yIJ7":["Other Options"],"h4z/Mq":["Builder Fee Approval"],"hBm2XN":["Ordenar por ",["0"]],"hJet42":["No se encontraron pagos de financiamiento."],"hXzOVo":["Siguiente"],"hehnjM":["Amount"],"hgpMHD":["Tamaño total"],"hhyc5L":["Deslizamiento máximo permitido para órdenes de mercado."],"htJlxw":["Ordenar por ",["headerLabel"]],"i+4Fbp":["Deposit failed"],"i6t9oo":["Error al cargar historial TWAP."],"i71+SY":["Position reversed"],"iDNBZe":["Notificaciones"],"iE2I5G":["Enabling"],"iEQQyu":["Agent"],"iFlxcb":["Seleccionar mercados favoritos"],"iGma9e":["Update failed"],"iH8pgl":["Back"],"iKex+G":["Limit Price (USDC)"],"iSLIjg":["Connect"],"iaX5Av":["Error al cargar operaciones."],"iflFdl":["Place ",["0"]," Order"],"ifzbyQ":["USDC"],"ipnMKT":[["p"],"%"],"iu7tUI":["Ruta de navegación"],"j085nT":["Valor orden"],"jH4vGi":["Net received"],"jJCREz":["Conecta tu billetera para ver pagos de financiamiento."],"jL9aa6":["Swap direction"],"jX19nk":["Conecta tu billetera para ver órdenes abiertas."],"ja6RDy":["Vender corto"],"jgWsKr":["No trading pair available for <0/>/<1/>"],"jj+8Tx":["Approve a builder to charge fees on orders placed on your behalf. Builder codes allow DeFi applications to receive a portion of trading fees."],"jjXeQg":["No tokens available"],"k1ifdL":["Processing..."],"kM5ZE+":["Confirm in wallet"],"kVjBmF":["Precio límite"],"kWXidS":["Cerrar posición"],"kj3M8S":["Depositar"],"l0Fmrm":["Idioma de visualización"],"l4NGKt":["No se encontraron ejecuciones."],"l75CjT":["Yes"],"lB46ke":["MARCA"],"lD8YU8":["Perps Account"],"lHY6Dg":["spot"],"lOEm/1":["Order filled"],"lUDY9v":["Cancel All"],"lVDmF0":["Trade ClockCounterClockwise"],"lZZl3m":["Stop Loss"],"laDnrx":["No se encontraron órdenes TWAP."],"lg7+vk":["Side"],"lkcAoj":["Margin"],"llUlxR":["PNL"],"llckC0":["Cambiando..."],"lm6AkD":["TP Price"],"lobQ3s":["Comisión est."],"lvC44O":["Max Fee Rate (%)"],"m+2g06":["will arrive in ~3 min"],"m16xKo":["Add"],"m1eb26":["End Price (USDC)"],"m6RmA/":["Insufficient ",["0"]," balance"],"mCk5iK":["Send failed"],"mE/G/f":["Invalid Ethereum address"],"mSpJjq":["Transfer USDC"],"mcOcEg":["Market stats row — layout options"],"mlQXdF":["Trigger Price"],"mnFamZ":["% ejecutado"],"n/qDNz":["Cambiar a modo oscuro"],"nJBD8K":["Metadatos del mercado no disponibles."],"nJTjIr":["Swapping..."],"nQrkW7":["Max 0.1% (10 bps) for perps, 1% (100 bps) for spot. Enter as decimal (e.g., 0.01 for 1 basis point)."],"nVMDTs":["TP must be below entry"],"nWIodQ":["Take profit trigger must be below mark"],"nbrdjK":["In Orders"],"njn4bC":["Confirm transaction in your wallet"],"nuBbBr":["Gráfico"],"nuqpbC":["Fee Limits:"],"nwcAtu":["Latencia:"],"nwtY4N":["Algo salió mal"],"o+CS/D":["Failed to load order history."],"o636h+":["Stop Market"],"o7Xo9X":["24H"],"o8uQyS":["Operaciones recientes"],"oJv+QI":["Randomize timing"],"oW1G8i":["Your funds were successfully deposited."],"ocovOd":["Precio prom."],"odEUjn":["Advanced order types"],"okV5rM":["Failed to close position"],"ol8emB":["Connect your wallet to view order history."],"olEUh2":["Successful"],"orI3hB":["paginación"],"orv4UV":["Set TP to ",["p"],"%"],"otaTjg":["Largo"],"ovBPCi":["Default"],"p/78dY":["Posición"],"p0ngfp":["Cola de órdenes"],"p6NueD":["NUEVO"],"pBsoKL":["Agregar a favoritos"],"pHVQlG":["Cancelar todas las órdenes"],"pI2rip":["Insufficient balance (includes $",["WITHDRAWAL_FEE_USD"]," fee)"],"pIwpkw":["Ir al terminal de trading"],"pWF6+F":["Show Executions"],"pY5TE9":["Could not fetch your token balances"],"perfgr":["Funding History"],"pvnfJD":["Dark"],"qCdZab":["Switch to ",["displayName"]," market, long position"],"qJb6G2":["Try Again"],"qRhSY/":["Orden mín. $10"],"qX/0av":["Select how margin is allocated for your positions"],"qaeo2F":["Ratio de margen"],"qfS/h8":[["formatted"]," USDC deposited to Hyperliquid"],"qiOIiY":["Comprar"],"qlRrjA":["Set to ",["p"],"%"],"qn4nUK":["Builder Address"],"qnKMyZ":["Pagos de financiamiento"],"quX3ha":["Register Another"],"r+w5Bx":["No balances found"],"r22IQ2":["Time / Total"],"rLi46F":["Must be signed by main wallet (not agent/API wallet)"],"rPNGe1":["Take profit trigger must be above mark"],"rPX0Ef":["Minimum withdrawal is $",["0"]],"rfbg3y":["Switch to ",["0"]," market"],"rm3fFf":["Conecta billetera para ver cuenta"],"ruL48O":["Number of Orders"],"ryxkVx":["Mostrar valores en USD"],"s/ereB":["activo"],"sLpZwu":["Cancelar orden TWAP"],"sO+nPg":["Margen req."],"sO0DWk":["Switch between mainnet and testnet. Page will reload."],"sQWzwD":["View on explorer"],"sYnC5v":["Select ",["displayName"]," market"],"shmNel":["Entry Price"],"stec1a":["No se pueden cancelar las órdenes."],"szH29R":["No se encontraron saldos. Deposita fondos para comenzar a operar."],"t+B4rK":["24h Change"],"t+R8+P":["Execution"],"t5EZAB":["Cargando historial de operaciones..."],"tHPbHS":["Clasificación"],"tMX8XH":["Select tokens to swap"],"tVJk4q":["Cancelar orden"],"tZ9ftZ":["Spot"],"tnJl4V":["Withdrawal submitted"],"u4LEQ2":["You are on Testnet"],"uAQUqI":["Estado"],"uEDo87":["About Builder Codes"],"uWi2Q+":["Barra lateral"],"uZi2t8":["Confirmation screen coming in next slice"],"ufWF2Y":["Bóvedas"],"ugB2se":["No order history found."],"uoD7vB":["Fee rate must be between 0.001% and 1%"],"v/76pL":["Libro de órdenes"],"vH2C/2":["Swap"],"vI9OLW":["Bridge failed"],"vIWDJQ":[["totalSeconds"]," seconds"],"vT/Pj1":["VOL"],"vXIe7J":["Language"],"vXWzNt":["Error al habilitar trading"],"vZW+PE":["Your transaction is being processed"],"vcHBQG":["Show Positions"],"vpjkXb":["Limit Close"],"vrnnn9":["Processing"],"vtJ2yO":["Explorer"],"vyMDXl":["Mostrar líneas de escaneo"],"w+oJCW":["will arrive in ~5 min"],"w3hmRj":["Esperando libro de órdenes..."],"wDbqhD":["Reverse"],"wDy6uq":["Loading order history..."],"wMHvYH":["Valor"],"wZVzVU":["Bridge complete"],"wdxz7K":["Source"],"wezJ3v":["Mark Price"],"wq30T4":["Liq"],"wvgF6w":["Order History"],"x+7jw2":["Excede tamaño máximo"],"xGVfLh":["Continue"],"xI4H1r":["Switch to ",["displayCoin"]," market"],"xNB0TS":["Vender"],"xTSCVP":["Builder code registered successfully!"],"xWnh+P":["Start Price (USDC)"],"y62Dys":["Network fee"],"yQE2r9":["Cargando"],"yRkqG9":["Límite"],"yT7sOL":["Trade via ",["0"]," spot market"],"yVfwJk":["Start and end must differ"],"ydOXwr":["Perp"],"ye6Vnv":["Available:"],"ygCKqB":["Stop"],"ygkMcg":["límite"],"yxnt3y":["Fill status"],"yz7wBu":["Cerrar"],"zEGs+1":["Builders"],"zKCXG+":["Trigger Price (USDC)"],"zKJcRr":["Perps: Max 0.1% (10 basis points)"],"zPGNJm":["Transfer"],"zXagFp":["Copiar dirección"],"zZmf1N":["Ejecutado"],"zdcGo/":["Bridging in progress"],"zjwWvI":["Start Price"],"znqB4T":["Insufficient balance"],"zwWKhA":["Learn more"]}',
+ '{"++OGth":["Deposit successful"],"+1S7b1":["Billetera no conectada"],"+6YAwo":["selected"],"+8WrGc":["No se encontraron billeteras"],"+F8cLG":["Muestra la barra lateral móvil."],"+JE0m7":["Error al cargar posiciones."],"+K0AvT":["Desconectar"],"+N2Rqk":["Sin posiciones activas."],"+N7uug":["1 year"],"+ONfBR":["PRICE"],"+ZV3i5":["Error al cargar órdenes abiertas."],"+b7T3G":["Updated"],"+hA/UM":["Órdenes abiertas"],"+nuEh/":["Estimated time"],"+w/hP1":["Mostrar ejecuciones en gráfico"],"+xnyQO":["Ingresa tamaño"],"+z3YcL":["Position actions"],"+zy2Nq":["Tipo"],"/2hibY":["Cancelar seleccionadas"],"/AsMcZ":["Enabling..."],"/G76GM":["Your current open position on this market"],"/IX/7x":["Other"],"/PvdTS":["Gas (",["0"],")"],"/TT0Oq":["ORÁCULO"],"/cF7Rs":["Volumen"],"/gY2VH":["Filtrar por ",["0"]],"/jQctM":["To"],"/kXBrK":["Total time"],"/mfICu":["Fees"],"/tPR7R":["Builder Fee"],"0+Iw6C":["Duration (Minutes)"],"0+X+sh":["Spot Account"],"0LZtsz":["Take Market"],"0Mx4+k":["No trading pair available for ",["fromTokenDisplay"],"/",["toTokenDisplay"]],"0P2gFy":["La página que buscas no existe."],"0QDjxt":["Balance:"],"0RrIzN":["Seleccionar token"],"0Xlr0L":["Minimum deposit is ",["0"]," USDC"],"0cIV8s":["Open Positions"],"0exG4Q":["Financiamiento"],"0z59Ep":["venta"],"1BkDWk":["Comprar largo"],"1PJ7wL":["Confirm Close"],"1QfxQT":["Descartar"],"1UzENP":["No"],"1ZMjyh":["The builder at ",["0"],"...",["1"]," can now charge up to ",["maxFeeRate"],"% fee on orders placed on your behalf."],"1h+RBg":["Orders"],"1njn7W":["Light"],"29VNqC":["Unknown error"],"2Ea5Vz":["Historial de operaciones"],"2FYpfJ":["Más"],"2M2s7z":["Habilitar trading"],"2OWSzg":["Account Equity"],"2PsTzL":["completado"],"2tQrK2":["Cambiar a Arbitrum"],"3/vMct":["A crypto wallet lets you store and manage your digital assets securely."],"30ZPad":["Posiciones activas"],"3CHbH/":["SL Price"],"3DtJpz":["Stop Limit"],"3IkQgP":["Secure & Private"],"3Siwmw":["Más opciones"],"3UZudY":["Stop trigger must be below mark"],"3fPjUY":["Pro"],"3oHIhx":["TP must be above entry"],"3q1W5Q":["Isolated → Cross"],"4+HkLv":["Show Values in Quote Asset"],"40lLFI":["Ir a página siguiente"],"42w2ly":["IA"],"46Sm8O":["Gas:"],"4HtGBb":["MAX"],"4J2s8f":["Cancelando..."],"4Kyst7":["Agent mode: Orders signed automatically (fast)"],"4NuBK4":["Esperando operaciones..."],"4Vzb+4":["Cerrando..."],"4avvba":["No trades found."],"54QqdM":["Firmando..."],"5FsTU5":["Cliente de billetera no está listo"],"5Omwef":["Scale level below min notional"],"5joj8M":["Transaction breakdown"],"5oE2C+":["Ordenado por ",["0"]],"5u8fWJ":["Back to asset selection"],"5xKxZd":["TP trigger price"],"5zbbOn":["Invalid amount"],"60m4P5":["24H VOL"],"621rYf":["Pago"],"63wHTy":["Edit TP/SL"],"69b7aE":["Open command menu"],"6Aih4U":["Offline"],"6fpdpR":["Show fewer wallets"],"6gRgw8":["Retry"],"6jVqpA":["Error al cargar historial de operaciones."],"6poLt9":["Alternar barra lateral"],"6vyJOd":["Deposit from any chain to your Hyperliquid account"],"6zAIUU":["Cannot switch to Isolated mode with an open position. Close your position first."],"72c5Qo":["Total"],"77Rx22":["Contraer panel de cuenta"],"7L01XJ":["Acciones"],"7Lv7j5":["Margin Mode"],"7VpPHA":["Confirm"],"7l15X4":["fallido"],"88cUW+":["You receive"],"8F1i42":["Página no encontrada"],"8Fu1E7":["Cambiar modo de tamaño"],"8Itoo3":["Unrealized P&L"],"8LkAxv":["SL must be below entry"],"8SNccp":["Switch to ",["displayName"]," market, short position"],"8WrNUb":["TIF"],"8gcijf":["Insufficient <0/> balance"],"8hvfaA":["Position closed"],"8yhvii":["Mid"],"997z0L":["Spot: Max 1% (100 basis points)"],"9ACh/c":["Sin precio marca"],"9SBcQj":["All cross positions share the same cross margin as collateral. In the event of liquidation, your cross margin balance and any remaining open positions may be forfeited."],"9lH5ev":["Cargando órdenes abiertas..."],"9mRTyg":["Bloque:"],"9qnvU0":["Switch to ",["displayName"]," market"],"9ykF9H":["Hide small"],"9zb2WA":["Connecting"],"A+q/Is":["mercados"],"A1taO8":["Search"],"AArF6S":["Move USDC between your Perp and Spot accounts."],"AEGM8s":["Failed to copy"],"AErIoZ":["Manage your risk on individual positions by restricting the amount of margin allocated to each. If the margin ratio of an isolated position reaches 100%, the position will be liquidated. Margin can be added or removed to individual positions in this mode."],"AGWjPT":["Establecer ",["p"],"%"],"AUYALh":["Próximamente"],"AUahCv":["Insufficient funds for gas"],"AeXO77":["Cuenta"],"B5AKvo":["Marca"],"BOppjS":["Sin mercado"],"BSj/hz":["Agregar fondos"],"BvlAGq":["PNL no realizado"],"BxBZCk":["Each position uses only its allocated margin. If the margin ratio reaches 100%, the position is liquidated. Margin can be added or removed individually."],"C2TJN3":["Cargando órdenes TWAP..."],"C8kdVg":["Fill limit price with mark price ",["0"]],"CF1zwJ":["Error al cargar historial de financiamiento."],"CK1KXz":["Máx"],"CMHmbm":["Deslizamiento"],"CP3D8G":["Progreso"],"CW11B+":["Minimum"],"CfRvLF":["Swap failed"],"CgqzuN":["Cruzado"],"Cj2Gtd":["Tamaño"],"CjCD8F":[["0"]," more wallets"],"Cjh38d":["New to wallets?"],"Ck1xL4":["You send"],"Co8gGw":["No active TWAP orders."],"CtByM7":["Conectar billetera"],"CzeOTH":["Wallet (",["0"],")"],"D243f/":["Install a wallet extension to continue"],"D6X5UU":["Market Close"],"DBVcOk":["More intervals"],"DHhJ7s":["Anterior"],"DPfwMq":["Done"],"DWs3bP":["Mark:"],"DXxfpS":["Seleccionar agregación del libro de órdenes"],"DZo9LT":["Mock Wallet (Testing)"],"DabQ8P":["Órdenes TWAP"],"DiL7DR":["Perp → Spot"],"Do4l1I":["Edit leverage"],"DzHUbu":["Copy address"],"E8sxZm":["Mostrar posiciones en gráfico"],"EE/1QC":["Format for numbers and dates"],"ETkk6Z":["TOKEN"],"Enslfm":["Destination"],"F6pfE9":["Activo"],"FF5wYg":["Seleccionar todas las órdenes"],"FKY8dA":["Est. P&L at Limit"],"FLNk0d":["Min order $",["ORDER_MIN_NOTIONAL_USD"]],"FLkCnQ":["You can revoke permissions at any time by registering a new approval with 0% fee rate. Builder codes are processed entirely onchain as part of the fee logic."],"FS+bo3":["No se puede cerrar la posición."],"Fdp03t":["on"],"FeRMvR":["Margin · Iso"],"FmemI7":["FUNDING"],"FqmhBo":["No balance on Hyperliquid. Deposit first."],"FxVG/l":["Copied to clipboard"],"G3oEYi":["Seleccionar orden"],"G6etJA":["Cargando saldos..."],"GINUX/":["Only you control your funds. No email or password required."],"GLWV4x":["Builder must have at least 100 USDC in perps account value"],"GX8GKD":["Assets"],"GbNWWs":["Slippage tolerance"],"H2Sfhg":["Trigger"],"HJlY85":["Sin saldo"],"HZN+sw":["Trading"],"HZdgTJ":["Select signing mode"],"HfT9T6":["No route available. Try a different amount or asset."],"Hp1l6f":["Current"],"I8LlJA":["TradingView"],"ICCWOn":["No se pudo crear la billetera"],"IHIyQG":["positions"],"IJfJAB":["Margin mode"],"IJndUb":["Connect your wallet to register a builder code"],"IV3hWp":["Enter trigger price"],"IZL9b6":["Apalancamiento cruzado"],"IcSLiu":["Oracle"],"Ieh2cV":["Expandir panel de cuenta"],"IoAuJG":["Sending..."],"IwI0rY":["Wrong network"],"IyNxxU":["perp"],"J24FyN":["Bridge"],"J28zul":["Conectando..."],"JHxGP5":["Operar"],"JVvYNb":["Deposit complete"],"JXzPJX":["SL"],"JbH+Me":["Leverage Settings"],"Jc94Bq":["No open positions."],"JfWXib":["Track on LI.FI Explorer"],"JlFcis":["Send"],"Ju4B2M":["Seleccionar apalancamiento"],"JuyzMZ":["Maximum slippage tolerance for market orders"],"KTNWsg":["Withdrawal failed"],"KYAjf3":["Aislado"],"KZHfkR":["Depositar fondos"],"KaqqlB":["Depositar en Hyperliquid"],"Ke6k18":["Leverage"],"KeDrPl":["Minimum deposit is 5 USDC"],"KnTbj2":["Mostrar órdenes en gráfico"],"Kp3IPD":["No response from exchange"],"KpAolD":["Failed to update leverage"],"KsqhWn":["Staking"],"KxF048":["Personaliza tu experiencia de trading."],"Kz1TxG":["abierta"],"L+qiq+":["Mercado"],"L4jnDP":["Ejecutado"],"LEbOpR":["More details"],"LGuqeh":["Please enter an address"],"LHfqhz":["New deposit"],"LMMGPr":["Submitting..."],"Le70b5":["Más páginas"],"LhMjLm":["Hora"],"LlsvFY":["Reduce"],"Lx+htK":["Swap submitted"],"Lz5J1x":["Sort by ",["sortLabel"]],"M0biAV":["Preparing your quote..."],"M9fkA0":["Liquidated"],"MLQamJ":["Conecta tu billetera para ver historial de operaciones."],"MSSmsu":["To Perp"],"MTq3hP":["24h vol"],"Mim7/r":["Insufficient ",["fromTokenDisplay"]," balance"],"MpLcsV":["Loading balances across all chains..."],"MqA4qt":["Portafolio"],"MyytBE":["Send tokens to another account on the Hyperliquid L1."],"N40H+G":["All"],"NIDWjN":["SL must be above entry"],"NJNMJX":["TWAP"],"NNJKWa":["Connect your wallet to withdraw funds"],"NNtdiI":["Resets in"],"NQtgSJ":["Failed to register builder code"],"NpuiU+":["Perpetuos"],"NsJrqM":["Mercado no listo"],"O5ycjq":["trades"],"ODVKKZ":["Ingresa precio límite"],"OQGH4C":["límite sr"],"OR475H":["Network"],"OSnZvX":["Change leverage"],"OYsSpP":["Failed to reverse position"],"OZtEcz":["API"],"Oe3M3Y":["Switch to Arbitrum to deposit USDC to Hyperliquid"],"Oid00w":["Enter price range"],"OsyKSt":["Retirar"],"Otdc/Y":["Conecta tu billetera para ver posiciones."],"OxPEUg":["En uso"],"P9cEa2":["30 days"],"PJEzIS":["Bridge to Hyperliquid"],"PLUB/s":["Comisión"],"PNsB0A":["Fetching quote..."],"PTna/x":["Interés abierto"],"PTyoXs":["Set SL to ",["p"],"%"],"PWRc/M":["Open positions count"],"PWk+Et":["No spot balances."],"PXH7+k":["Cross → Isolated"],"PZBWpL":["Cambiar a modo claro"],"PaQ3df":["Enable"],"PcmIvv":["pbs"],"PeO4lq":["Requirements:"],"PelVTv":["Register Builder Code"],"PiH3UR":["Copied!"],"Pl9jiz":["Show Orders"],"Q9fVmw":["Go to Trade"],"QD2PKQ":["End Price"],"QHcLEN":["Conectado"],"QjUEvK":["Cancelar todo"],"QlN9wA":["Destination address"],"R68yLX":["Establecer TP/SL"],"RRXpo1":["Corto"],"RaWC6b":["Size exceeds position"],"Rb1yph":["Precio liq."],"RnpwtT":["TWAP minutes must be ",["TWAP_MINUTES_MIN"],"-",["TWAP_MINUTES_MAX"]],"RoE+o+":["Solo reducir"],"RwFtJj":["Cross Margin Ratio"],"S33tz3":["No conectado"],"S48xcO":["pendiente"],"S9zH+G":["This action must be signed by your main wallet (not an agent/API wallet). The builder must have at least 100 USDC in perps account value."],"SEDVHU":["Cargando posiciones..."],"SEoDwA":["Take Limit"],"SHk3ns":["Balance available to trade"],"SJrFO1":["Position close actions"],"SVHeJc":["Direct mode: Sign each order with wallet"],"SWH2Eh":["Time in Force"],"SsGsC0":["Cancelar órdenes seleccionadas"],"Svkela":["Ir a página anterior"],"T/pF0Z":["Quitar de favoritos"],"TDa39c":["Precio 24h"],"THTG58":["Select asset to bridge"],"THfjt2":["Cross Account Leverage"],"THmCgW":["Select market"],"TK3J5O":["Send Tokens"],"TK9uys":["Seleccionar mercado ",["coin"]],"TLa4Oo":["Conecta una billetera para gestionar posiciones."],"TNawll":["Disconnect wallet"],"TNtZN2":["TP"],"TP9/K5":["Token"],"TQ/QV5":["No trading pair available for ",["fromToken"],"/",["toToken"]],"TT0aVH":["Order submitted"],"TbjyhA":["Documentación"],"Tm8JF7":["Connect your wallet to bridge funds"],"Tuc34V":["Confirm Bridge"],"Tz0i8g":["Configuración"],"U3As+R":["Take Profit"],"U86eEA":["No user address"],"URmyfc":["Details"],"URvngU":["Est. time"],"UXtGFD":["Full Position"],"UwG7db":["What is a wallet?"],"V0ubMJ":["Tomar ganancia / Stop Loss"],"V3XYw0":["P&L"],"V5khLm":["orders"],"V6ETmV":["To Spot"],"VAZUpd":["Orden fallida"],"VIwCaD":["Entrada"],"VMLGYS":["Switch to Mainnet"],"VU5rsP":["Number Format"],"VXCk+w":["Cargando mercados..."],"VYFX4v":["Perpetuals"],"VcaZ5z":["No se encontraron mercados."],"VgTxu0":["Firmante no listo"],"VmhkuH":["Account and wallet"],"W1k7eB":["24h"],"W75iLe":["Conecta tu billetera para ver saldos."],"W9Fxbx":["SL trigger price"],"WISj7i":["Place Limit Close"],"WNMYIN":["cancelado"],"WRelac":["Cannot switch to isolated mode with an open position"],"WajXzx":["Est. P&L"],"Wqz0SO":["Low Balance"],"XCIAdj":["RO"],"XFp9Bf":["Scale levels must be ",["SCALE_LEVELS_MIN"],"-",["SCALE_LEVELS_MAX"]],"XTwHmT":["Spot Balances"],"XYLcNv":["Soporte"],"XbxYxh":["Price grouping"],"Y1W9ip":["Patrimonio"],"Y9gMWT":["Error al cargar libro de órdenes."],"YZLEvW":["Processing deposit"],"Yf9lFX":["Ledger"],"YnKdJE":["Margen usado"],"YxaAON":["Diferencial"],"Z3FXyt":["Cargando..."],"ZB/Jm6":["Margin & leverage"],"ZDBdfg":["Enter TP or SL price"],"ZFtwlj":["Operaciones"],"ZHJZmo":["Amount (USDC)"],"ZYnwzF":["Disconnected"],"ZmGjjl":["Your bridge is still processing. Funds are safe."],"a/MzGi":["sent to Hyperliquid"],"a7u1N9":["Precio"],"a9q6hE":["waiting"],"aAIQg2":["Appearance"],"aVwGl4":["Portfolio PNL"],"adcjkX":["Limit close order placed"],"amRC+z":["Connect your wallet to view your account overview, positions, and history."],"axyo2z":["Conecta una billetera para gestionar órdenes."],"b7Wduj":["compra"],"bMJMhJ":["Error de WebSocket"],"bSCsJh":["TP/SL"],"bUUVED":["Activo"],"bVPv2S":["Actualizado en vivo"],"bW1xET":["Stop trigger must be above mark"],"bifv6N":["Scale"],"bm80CF":["Conecta tu billetera para ver órdenes TWAP."],"c+VX3P":["Custom TP percentage"],"c+tzs5":["Sign in wallet..."],"c2npeq":["Custom SL percentage"],"cJzJWa":["Transfer failed"],"cXvnJ8":["Deslizamiento de orden de mercado"],"csDS2L":["Disponible"],"cwQAhE":["Failed to switch margin mode"],"d+F6q9":["Created"],"dEgA5A":["Cancelar"],"dQGImW":["Saldos de cuenta"],"daWrYT":["Agent verification failed"],"dcKNhk":["Taking longer than expected"],"dfIw2n":["Valor en USD"],"dkzoLd":["Cargando historial de financiamiento..."],"doRJE6":["Set TP/SL for ",["0"]],"drvdT3":["Add TP/SL"],"e/cvV1":["Verifying..."],"e/vgsz":["Total Value"],"e0bpdM":["Símbolo desconocido: ",["symbolName"]],"e2oWGN":["No tokens with value found across supported chains"],"eXs0Bt":["Buscar mercados..."],"ebwNSs":["Remove ",["displayName"]," from favorites"],"eiZzfX":["Builder codes allow DeFi builders to receive a fee on fills they send on behalf of users. They are set per-order for maximal flexibility."],"ejVYRQ":["From"],"es+Zrf":["Transferring..."],"fBckrr":["Resolución no soportada: ",["0"]],"fEC2uI":["Transfiere USDC a tu cuenta Hyperliquid para comenzar a operar."],"fOG42Y":["Connect your wallet to start trading on Hyperliquid"],"fVmG6b":["Failed to load balances"],"fYSYwH":["Sin órdenes abiertas."],"fYUNRJ":["Direct"],"fhqG7u":["Connected: ",["0"],"...",["1"]],"fqDzSu":["Tasa"],"fsBGk0":["Saldo"],"g5PJI8":["OPEN INT"],"g5Xz8D":["Cross Margin"],"gIpxlQ":["Minimum withdrawal is $",["MIN_WITHDRAW_USD"]],"gL/sdV":["Popular"],"gMHkDJ":["Error al cargar saldos."],"gVLSxk":["Transaction was rejected"],"ga6DLx":["Your bridge is still processing. Funds are safe — LI.FI routes are always recoverable."],"gbNGPv":["Risk/Reward"],"gsL/Ic":["All cross positions share the same cross margin as collateral. In the event of liquidation, your cross margin balance and any remaining open positions under assets in this mode may be forfeited."],"h+3Zi0":["Cargando billetera..."],"h0gbH9":["Transfiere USDC desde Arbitrum u otras cadenas a tu cuenta Hyperliquid."],"h3yIJ7":["Other Options"],"h4z/Mq":["Builder Fee Approval"],"hBm2XN":["Ordenar por ",["0"]],"hJet42":["No se encontraron pagos de financiamiento."],"hXzOVo":["Siguiente"],"hehnjM":["Amount"],"hgpMHD":["Tamaño total"],"hhyc5L":["Deslizamiento máximo permitido para órdenes de mercado."],"htJlxw":["Ordenar por ",["headerLabel"]],"i+4Fbp":["Deposit failed"],"i6t9oo":["Error al cargar historial TWAP."],"i71+SY":["Position reversed"],"iDNBZe":["Notificaciones"],"iE2I5G":["Enabling"],"iEQQyu":["Agent"],"iFlxcb":["Seleccionar mercados favoritos"],"iGma9e":["Update failed"],"iH8pgl":["Back"],"iKex+G":["Limit Price (USDC)"],"iSLIjg":["Connect"],"iaX5Av":["Error al cargar operaciones."],"iflFdl":["Place ",["0"]," Order"],"ifzbyQ":["USDC"],"ipnMKT":[["p"],"%"],"iu7tUI":["Ruta de navegación"],"j085nT":["Valor orden"],"jH4vGi":["Net received"],"jJCREz":["Conecta tu billetera para ver pagos de financiamiento."],"jL9aa6":["Swap direction"],"jX19nk":["Conecta tu billetera para ver órdenes abiertas."],"ja6RDy":["Vender corto"],"jgWsKr":["No trading pair available for <0/>/<1/>"],"jj+8Tx":["Approve a builder to charge fees on orders placed on your behalf. Builder codes allow DeFi applications to receive a portion of trading fees."],"jjXeQg":["No tokens available"],"k1ifdL":["Processing..."],"kM5ZE+":["Confirm in wallet"],"kVjBmF":["Precio límite"],"kWXidS":["Cerrar posición"],"kj3M8S":["Depositar"],"l0Fmrm":["Idioma de visualización"],"l4NGKt":["No se encontraron ejecuciones."],"l75CjT":["Yes"],"lB46ke":["MARCA"],"lD8YU8":["Perps Account"],"lGBGsP":["Failed to connect with custom address"],"lHY6Dg":["spot"],"lOEm/1":["Order filled"],"lUDY9v":["Cancel All"],"lVDmF0":["Trade ClockCounterClockwise"],"lZZl3m":["Stop Loss"],"laDnrx":["No se encontraron órdenes TWAP."],"lg7+vk":["Side"],"lkcAoj":["Margin"],"llUlxR":["PNL"],"llckC0":["Cambiando..."],"lm6AkD":["TP Price"],"lobQ3s":["Comisión est."],"lvC44O":["Max Fee Rate (%)"],"m+2g06":["will arrive in ~3 min"],"m16xKo":["Add"],"m1eb26":["End Price (USDC)"],"m6RmA/":["Insufficient ",["0"]," balance"],"mCk5iK":["Send failed"],"mE/G/f":["Invalid Ethereum address"],"mSpJjq":["Transfer USDC"],"mTfEdq":["Perps Overview"],"mVfuH4":["Spot → Perp"],"mlQXdF":["Trigger Price"],"mnFamZ":["% ejecutado"],"n/qDNz":["Cambiar a modo oscuro"],"nJBD8K":["Metadatos del mercado no disponibles."],"nJTjIr":["Swapping..."],"nQrkW7":["Max 0.1% (10 bps) for perps, 1% (100 bps) for spot. Enter as decimal (e.g., 0.01 for 1 basis point)."],"nVMDTs":["TP must be below entry"],"nVrjlH":["Withdrawable"],"nWIodQ":["Take profit trigger must be below mark"],"nbrdjK":["In Orders"],"njn4bC":["Confirm transaction in your wallet"],"nuBbBr":["Gráfico"],"nuqpbC":["Fee Limits:"],"nwcAtu":["Latencia:"],"nwtY4N":["Algo salió mal"],"o+CS/D":["Failed to load order history."],"o21Y+P":["entries"],"o636h+":["Stop Market"],"o7Xo9X":["24H"],"o8uQyS":["Operaciones recientes"],"oJv+QI":["Randomize timing"],"oW1G8i":["Your funds were successfully deposited."],"ocovOd":["Precio prom."],"odEUjn":["Advanced order types"],"okV5rM":["Failed to close position"],"ol8emB":["Connect your wallet to view order history."],"olEUh2":["Successful"],"orI3hB":["paginación"],"orv4UV":["Set TP to ",["p"],"%"],"otaTjg":["Largo"],"ovBPCi":["Default"],"p/78dY":["Posición"],"p0ngfp":["Cola de órdenes"],"p6NueD":["NUEVO"],"pBsoKL":["Agregar a favoritos"],"pHVQlG":["Cancelar todas las órdenes"],"pI2rip":["Insufficient balance (includes $",["WITHDRAWAL_FEE_USD"]," fee)"],"pIwpkw":["Ir al terminal de trading"],"pUEa02":["Margin mode switched to ",["0"]," for ",["coin"]],"pWF6+F":["Show Executions"],"pY5TE9":["Could not fetch your token balances"],"perfgr":["Funding History"],"pvnfJD":["Dark"],"qCdZab":["Switch to ",["displayName"]," market, long position"],"qJb6G2":["Try Again"],"qRhSY/":["Orden mín. $10"],"qX/0av":["Select how margin is allocated for your positions"],"qaeo2F":["Ratio de margen"],"qfS/h8":[["formatted"]," USDC deposited to Hyperliquid"],"qiOIiY":["Comprar"],"qlRrjA":["Set to ",["p"],"%"],"qn4nUK":["Builder Address"],"qnKMyZ":["Pagos de financiamiento"],"quX3ha":["Register Another"],"r+w5Bx":["No balances found"],"r22IQ2":["Time / Total"],"rJe6vw":["7 days"],"rLi46F":["Must be signed by main wallet (not agent/API wallet)"],"rPNGe1":["Take profit trigger must be above mark"],"rPX0Ef":["Minimum withdrawal is $",["0"]],"rfbg3y":["Switch to ",["0"]," market"],"rm3fFf":["Conecta billetera para ver cuenta"],"ruL48O":["Number of Orders"],"ryxkVx":["Mostrar valores en USD"],"s/ereB":["activo"],"sFSDo6":["No open positions. Leverage settings appear here when you have active positions."],"sLpZwu":["Cancelar orden TWAP"],"sO+nPg":["Margen req."],"sO0DWk":["Switch between mainnet and testnet. Page will reload."],"sQWzwD":["View on explorer"],"sYnC5v":["Select ",["displayName"]," market"],"scwWyY":["No ledger activity found."],"shmNel":["Entry Price"],"stec1a":["No se pueden cancelar las órdenes."],"szH29R":["No se encontraron saldos. Deposita fondos para comenzar a operar."],"t+B4rK":["24h Change"],"t+CM0Z":["Leverage updated to ",["pendingLeverage"],"× for ",["coin"]],"t+Jqww":["Flip transfer direction"],"t+R8+P":["Execution"],"t5EZAB":["Cargando historial de operaciones..."],"tHPbHS":["Clasificación"],"tMFDem":["No data available"],"tMX8XH":["Select tokens to swap"],"tVJk4q":["Cancelar orden"],"tWiEVe":["Liq Price"],"tZ9ftZ":["Spot"],"tnJl4V":["Withdrawal submitted"],"tp8zc8":["Custom wallet address"],"u4LEQ2":["You are on Testnet"],"uAQUqI":["Estado"],"uBhZmI":["payments"],"uEDo87":["About Builder Codes"],"uWi2Q+":["Barra lateral"],"uZi2t8":["Confirmation screen coming in next slice"],"ufWF2Y":["Bóvedas"],"ugB2se":["No order history found."],"uoD7vB":["Fee rate must be between 0.001% and 1%"],"uqe4In":["Total Equity"],"v/76pL":["Libro de órdenes"],"vH2C/2":["Swap"],"vI9OLW":["Bridge failed"],"vIWDJQ":[["totalSeconds"]," seconds"],"vT/Pj1":["VOL"],"vXIe7J":["Language"],"vXWzNt":["Error al habilitar trading"],"vZW+PE":["Your transaction is being processed"],"vcHBQG":["Show Positions"],"vpjkXb":["Limit Close"],"vrnnn9":["Processing"],"vtJ2yO":["Explorer"],"vyMDXl":["Mostrar líneas de escaneo"],"w+oJCW":["will arrive in ~5 min"],"w3hmRj":["Esperando libro de órdenes..."],"wDbqhD":["Reverse"],"wDy6uq":["Loading order history..."],"wMHvYH":["Valor"],"wZVzVU":["Bridge complete"],"wdxz7K":["Source"],"wezJ3v":["Mark Price"],"wq30T4":["Liq"],"wvgF6w":["Order History"],"x+7jw2":["Excede tamaño máximo"],"xGVfLh":["Continue"],"xI4H1r":["Switch to ",["displayCoin"]," market"],"xNB0TS":["Vender"],"xTSCVP":["Builder code registered successfully!"],"xWnh+P":["Start Price (USDC)"],"xgSeuS":["Account Value"],"y/TXy2":["Maintenance Margin"],"y62Dys":["Network fee"],"yQE2r9":["Cargando"],"yRkqG9":["Límite"],"yT7sOL":["Trade via ",["0"]," spot market"],"yVfwJk":["Start and end must differ"],"ydOXwr":["Perp"],"ye6Vnv":["Available:"],"ygCKqB":["Stop"],"ygkMcg":["límite"],"yxnt3y":["Fill status"],"yz7wBu":["Cerrar"],"zEGs+1":["Builders"],"zG6eEO":["Connect your wallet to view your account, positions, and start trading."],"zKCXG+":["Trigger Price (USDC)"],"zKJcRr":["Perps: Max 0.1% (10 basis points)"],"zPGNJm":["Transfer"],"zXagFp":["Copiar dirección"],"zZmf1N":["Ejecutado"],"zdcGo/":["Bridging in progress"],"zjwWvI":["Start Price"],"znqB4T":["Insufficient balance"],"zwWKhA":["Learn more"]}',
),
};
diff --git a/apps/terminal/src/locales/es/messages.po b/apps/terminal/src/locales/es/messages.po
index 467d4b25..1a6e42c5 100644
--- a/apps/terminal/src/locales/es/messages.po
+++ b/apps/terminal/src/locales/es/messages.po
@@ -80,6 +80,8 @@ msgstr ""
#~ msgid "About Builder Codes"
#~ msgstr ""
+#: src/components/account/account-page.tsx
+#: src/components/trade/header/top-nav.tsx
#: src/components/trade/tradebox/account-panel.tsx
msgid "Account"
msgstr "Cuenta"
@@ -96,6 +98,10 @@ msgstr "Saldos de cuenta"
msgid "Account Equity"
msgstr ""
+#: src/components/account/account-pnl-chart.tsx
+#~ msgid "Account Value"
+#~ msgstr ""
+
#: src/components/trade/positions/balances-tab.tsx
#: src/components/trade/positions/orders-tab.tsx
#: src/components/trade/positions/positions-tab.tsx
@@ -160,6 +166,7 @@ msgstr ""
#~ msgid "All cross positions share the same cross margin as collateral. In the event of liquidation, your cross margin balance and any remaining open positions under assets in this mode may be forfeited."
#~ msgstr ""
+#: src/components/account/account-history.tsx
#: src/components/trade/positions/send-modal.tsx
#: src/components/trade/positions/transfer-modal.tsx
#: src/components/trade/tradebox/deposit-modal.tsx
@@ -183,6 +190,10 @@ msgstr ""
#~ msgid "Approve a builder to charge fees on orders placed on your behalf. Builder codes allow DeFi applications to receive a portion of trading fees."
#~ msgstr ""
+#: src/components/account/account-history.tsx
+#: src/components/account/account-history.tsx
+#: src/components/account/account-history.tsx
+#: src/components/account/account-positions.tsx
#: src/components/trade/positions/balances-tab.tsx
#: src/components/trade/positions/funding-tab.tsx
#: src/components/trade/positions/history-tab.tsx
@@ -193,10 +204,14 @@ msgstr ""
msgid "Asset"
msgstr "Activo"
-#: src/components/trade/tradebox/account-panel.tsx
-#~ msgid "Assets"
-#~ msgstr ""
+#: src/components/account/account-page.tsx
+msgid "Assets"
+msgstr ""
+#: src/components/account/account-balances.tsx
+#: src/components/account/account-balances.tsx
+#: src/components/account/account-page.tsx
+#: src/components/account/account-page.tsx
#: src/components/trade/mobile/mobile-balances-tab.tsx
#: src/components/trade/positions/balances-tab.tsx
#: src/components/trade/tradebox/trade-form-fields.tsx
@@ -225,6 +240,7 @@ msgstr ""
#~ msgid "Back to asset selection"
#~ msgstr ""
+#: src/components/account/account-page.tsx
#: src/components/trade/tradebox/account-panel.tsx
msgid "Balance"
msgstr "Saldo"
@@ -249,6 +265,7 @@ msgstr ""
#~ msgid "Breadcrumb"
#~ msgstr "Ruta de navegación"
+#: src/components/account/account-page.tsx
#: src/components/trade/mobile/mobile-account-view.tsx
#: src/components/trade/tradebox/account-panel.tsx
#: src/components/trade/tradebox/account-panel.tsx
@@ -370,6 +387,10 @@ msgstr "Cancelando..."
#~ msgid "cancelled"
#~ msgstr "cancelado"
+#: src/components/account/account-leverage-settings.tsx
+msgid "Cannot switch to isolated mode with an open position"
+msgstr ""
+
#: src/components/trade/tradebox/margin-mode-modal.tsx
msgid "Cannot switch to Isolated mode with an open position. Close your position first."
msgstr ""
@@ -403,14 +424,15 @@ msgstr "Cerrando..."
#~ msgid "Collapse account panel"
#~ msgstr "Contraer panel de cuenta"
-#: src/components/trade/order-entry/order-entry-panel.tsx
-#~ msgid "Coming soon"
-#~ msgstr "Próximamente"
+#: src/components/account/account-pnl-chart.tsx
+msgid "Coming soon"
+msgstr "Próximamente"
#: src/components/trade/positions/twap-tab.tsx
#~ msgid "completed"
#~ msgstr "completado"
+#: src/components/account/account-leverage-settings.tsx
#: src/components/trade/positions/position-tpsl-modal.tsx
#: src/components/trade/tradebox/bridge-tab.tsx
#: src/components/trade/tradebox/leverage-control.tsx
@@ -451,6 +473,8 @@ msgstr ""
#~ msgid "Connect a wallet to manage positions."
#~ msgstr "Conecta una billetera para gestionar posiciones."
+#: src/components/account/account-page.tsx
+#: src/components/account/account-page.tsx
#: src/components/trade/components/wallet-modal.tsx
#: src/components/trade/header/user-menu.tsx
#: src/components/trade/mobile/mobile-account-view.tsx
@@ -511,6 +535,10 @@ msgstr "Conecta tu billetera para ver historial de operaciones."
msgid "Connect your wallet to view TWAP orders."
msgstr "Conecta tu billetera para ver órdenes TWAP."
+#: src/components/account/account-page.tsx
+msgid "Connect your wallet to view your account overview, positions, and history."
+msgstr ""
+
#: src/components/trade/mobile/mobile-account-view.tsx
msgid "Connect your wallet to view your account, positions, and start trading."
msgstr ""
@@ -567,6 +595,10 @@ msgstr ""
msgid "Created"
msgstr ""
+#: src/components/account/account-leverage-settings.tsx
+#: src/components/account/account-leverage-settings.tsx
+#: src/components/account/account-positions.tsx
+#: src/components/account/account-positions.tsx
#: src/components/trade/positions/positions-tab.tsx
#: src/components/trade/tradebox/margin-mode-modal.tsx
#: src/components/trade/tradebox/margin-mode-modal.tsx
@@ -574,13 +606,17 @@ msgstr ""
msgid "Cross"
msgstr "Cruzado"
+#: src/components/account/account-leverage-settings.tsx
+msgid "Cross → Isolated"
+msgstr ""
+
#: src/components/trade/tradebox/account-panel.tsx
msgid "Cross Account Leverage"
msgstr ""
-#: src/components/trade/tradebox/account-panel.tsx
-#~ msgid "Cross Leverage"
-#~ msgstr "Apalancamiento cruzado"
+#: src/components/account/account-page.tsx
+msgid "Cross Leverage"
+msgstr "Apalancamiento cruzado"
#: src/components/trade/mobile/mobile-account-view.tsx
msgid "Cross Margin"
@@ -618,6 +654,7 @@ msgstr ""
msgid "Default"
msgstr ""
+#: src/components/account/account-page.tsx
#: src/components/trade/header/top-nav.tsx
#: src/components/trade/mobile/mobile-nav-drawer.tsx
#: src/components/trade/tradebox/account-panel.tsx
@@ -666,6 +703,10 @@ msgstr ""
msgid "Destination address"
msgstr ""
+#: src/components/account/account-history.tsx
+msgid "Details"
+msgstr ""
+
#: src/components/trade/order-entry/order-entry-panel.tsx
#~ msgid "Direct"
#~ msgstr ""
@@ -715,6 +756,11 @@ msgstr ""
msgid "Each position uses only its allocated margin. If the margin ratio reaches 100%, the position is liquidated. Margin can be added or removed individually."
msgstr ""
+#: src/components/account/account-leverage-settings.tsx
+#: src/components/account/account-leverage-settings.tsx
+msgid "Edit leverage"
+msgstr ""
+
#: src/components/trade/positions/positions-tab.tsx
msgid "Edit TP/SL"
msgstr ""
@@ -765,6 +811,12 @@ msgstr ""
msgid "Enter trigger price"
msgstr ""
+#: src/components/account/account-history.tsx
+msgid "entries"
+msgstr ""
+
+#: src/components/account/account-positions.tsx
+#: src/components/account/account-positions.tsx
#: src/components/trade/mobile/mobile-positions-tab.tsx
#: src/components/trade/positions/positions-tab.tsx
msgid "Entry"
@@ -848,6 +900,7 @@ msgstr "Error al habilitar trading"
msgid "Failed to load balances"
msgstr ""
+#: src/components/account/account-balances.tsx
#: src/components/trade/mobile/mobile-balances-tab.tsx
#: src/components/trade/positions/balances-tab.tsx
msgid "Failed to load balances."
@@ -872,6 +925,7 @@ msgstr "Error al cargar libro de órdenes."
msgid "Failed to load order history."
msgstr ""
+#: src/components/account/account-positions.tsx
#: src/components/trade/mobile/mobile-positions-tab.tsx
#: src/components/trade/positions/positions-tab.tsx
msgid "Failed to load positions."
@@ -898,10 +952,16 @@ msgstr "Error al cargar operaciones."
msgid "Failed to reverse position"
msgstr ""
-#: src/components/trade/order-entry/order-entry-panel.tsx
-#~ msgid "Failed to switch margin mode"
-#~ msgstr ""
+#: src/components/account/account-leverage-settings.tsx
+msgid "Failed to switch margin mode"
+msgstr ""
+
+#: src/components/account/account-leverage-settings.tsx
+msgid "Failed to update leverage"
+msgstr ""
+#: src/components/account/account-history.tsx
+#: src/components/account/account-history.tsx
#: src/components/trade/mobile/mobile-history-tab.tsx
#: src/components/trade/positions/history-tab.tsx
msgid "Fee"
@@ -923,9 +983,10 @@ msgstr "Comisión"
#~ msgid "Fetching quote..."
#~ msgstr ""
+#. placeholder {0}: formatPrice(markPx, { szDecimals: market?.szDecimals })
#: src/components/trade/mobile/mobile-trade-view.tsx
-#~ msgid "Fill limit price with mark price {0}"
-#~ msgstr ""
+msgid "Fill limit price with mark price {0}"
+msgstr ""
#: src/components/trade/tradebox/bridge-tab.tsx
#: src/components/trade/tradebox/bridge-tab.tsx
@@ -958,6 +1019,7 @@ msgstr ""
#~ msgid "Full Position"
#~ msgstr ""
+#: src/components/account/account-history.tsx
#: src/components/trade/chart/token-selector-columns.ts
#: src/components/trade/chart/token-selector.tsx
#: src/components/trade/mobile/mobile-positions-tab.tsx
@@ -1003,14 +1065,17 @@ msgstr ""
msgid "Go to trading terminal"
msgstr "Ir al terminal de trading"
+#: src/components/account/account-balances.tsx
#: src/components/trade/mobile/mobile-balances-tab.tsx
#: src/components/trade/positions/balances-tab.tsx
msgid "Hide small"
msgstr ""
-#: src/components/trade/tradebox/account-panel.tsx
-#~ msgid "In Orders"
-#~ msgstr ""
+#: src/components/account/account-balances.tsx
+#: src/components/account/account-balances.tsx
+#: src/components/account/account-page.tsx
+msgid "In Orders"
+msgstr ""
#: src/components/trade/positions/balances-tab.tsx
#~ msgid "In Use"
@@ -1059,6 +1124,10 @@ msgstr ""
msgid "Invalid Ethereum address"
msgstr ""
+#: src/components/account/account-leverage-settings.tsx
+#: src/components/account/account-leverage-settings.tsx
+#: src/components/account/account-positions.tsx
+#: src/components/account/account-positions.tsx
#: src/components/trade/positions/positions-tab.tsx
#: src/components/trade/tradebox/margin-mode-modal.tsx
#: src/components/trade/tradebox/margin-mode-modal.tsx
@@ -1066,6 +1135,10 @@ msgstr ""
msgid "Isolated"
msgstr "Aislado"
+#: src/components/account/account-leverage-settings.tsx
+msgid "Isolated → Cross"
+msgstr ""
+
#: src/components/trade/footer/footer-bar.tsx
#~ msgid "Latency:"
#~ msgstr "Latencia:"
@@ -1079,12 +1152,27 @@ msgstr "Clasificación"
msgid "Learn more"
msgstr ""
+#: src/components/account/account-history.tsx
+msgid "Ledger"
+msgstr ""
+
+#: src/components/account/account-leverage-settings.tsx
+#: src/components/account/account-positions.tsx
+#: src/components/account/account-positions.tsx
#: src/components/trade/tradebox/leverage-control.tsx
#: src/components/trade/tradebox/leverage-control.tsx
#: src/components/trade/tradebox/margin-mode-modal.tsx
msgid "Leverage"
msgstr ""
+#: src/components/account/account-leverage-settings.tsx
+msgid "Leverage Settings"
+msgstr ""
+
+#: src/components/account/account-leverage-settings.tsx
+msgid "Leverage updated to {pendingLeverage}× for {coin}"
+msgstr ""
+
#: src/components/trade/components/global-settings-dialog.tsx
#~ msgid "Light"
#~ msgstr ""
@@ -1126,10 +1214,16 @@ msgstr "Precio límite"
msgid "Liq"
msgstr "Liq"
+#: src/components/account/account-positions.tsx
+#: src/components/account/account-positions.tsx
+msgid "Liq Price"
+msgstr ""
+
#: src/components/trade/tradebox/order-summary.tsx
msgid "Liq. Price"
msgstr "Precio liq."
+#: src/components/account/account-history.tsx
#: src/components/trade/mobile/mobile-history-tab.tsx
#: src/components/trade/positions/history-tab.tsx
msgid "Liquidated"
@@ -1184,6 +1278,8 @@ msgstr "Cargando billetera..."
msgid "Loading..."
msgstr "Cargando..."
+#: src/components/account/account-positions.tsx
+#: src/components/account/account-positions.tsx
#: src/components/trade/mobile/mobile-positions-tab.tsx
#: src/components/trade/positions/position-tpsl-modal.tsx
msgid "Long"
@@ -1202,6 +1298,8 @@ msgstr ""
#~ msgid "Manage your risk on individual positions by restricting the amount of margin allocated to each. If the margin ratio of an isolated position reaches 100%, the position will be liquidated. Margin can be added or removed to individual positions in this mode."
#~ msgstr ""
+#: src/components/account/account-positions.tsx
+#: src/components/account/account-positions.tsx
#: src/components/trade/mobile/mobile-positions-tab.tsx
#: src/components/trade/positions/positions-tab.tsx
msgid "Margin"
@@ -1219,22 +1317,29 @@ msgstr ""
msgid "Margin mode"
msgstr ""
-#: src/components/trade/tradebox/margin-mode-dialog.tsx
-#~ msgid "Margin Mode"
-#~ msgstr ""
+#: src/components/account/account-leverage-settings.tsx
+msgid "Margin Mode"
+msgstr ""
-#: src/components/trade/tradebox/account-panel.tsx
-#~ msgid "Margin Ratio"
-#~ msgstr "Ratio de margen"
+#. placeholder {0}: newMode === "cross" ? t`Cross` : t`Isolated`
+#: src/components/account/account-leverage-settings.tsx
+msgid "Margin mode switched to {0} for {coin}"
+msgstr ""
+
+#: src/components/account/account-page.tsx
+msgid "Margin Ratio"
+msgstr "Ratio de margen"
#: src/components/trade/tradebox/order-summary.tsx
msgid "Margin Req."
msgstr "Margen req."
-#: src/components/trade/tradebox/account-panel.tsx
-#~ msgid "Margin Used"
-#~ msgstr "Margen usado"
+#: src/components/account/account-page.tsx
+msgid "Margin Used"
+msgstr "Margen usado"
+#: src/components/account/account-positions.tsx
+#: src/components/account/account-positions.tsx
#: src/components/trade/mobile/mobile-positions-tab.tsx
#: src/components/trade/positions/positions-tab.tsx
msgid "Mark"
@@ -1442,16 +1547,25 @@ msgstr ""
msgid "No balances found. Deposit funds to start trading."
msgstr "No se encontraron saldos. Deposita fondos para comenzar a operar."
+#: src/components/account/account-pnl-chart.tsx
+#~ msgid "No data available"
+#~ msgstr ""
+
#: src/components/trade/mobile/mobile-history-tab.tsx
#: src/components/trade/positions/history-tab.tsx
msgid "No fills found."
msgstr "No se encontraron ejecuciones."
+#: src/components/account/account-history.tsx
#: src/components/trade/mobile/mobile-funding-tab.tsx
#: src/components/trade/positions/funding-tab.tsx
msgid "No funding payments found."
msgstr "No se encontraron pagos de financiamiento."
+#: src/components/account/account-history.tsx
+msgid "No ledger activity found."
+msgstr ""
+
#: src/lib/errors/definitions/market.ts
msgid "No mark price"
msgstr "Sin precio marca"
@@ -1469,6 +1583,15 @@ msgstr "No se encontraron mercados."
msgid "No open orders."
msgstr "Sin órdenes abiertas."
+#: src/components/account/account-positions.tsx
+msgid "No open positions."
+msgstr ""
+
+#: src/components/account/account-leverage-settings.tsx
+msgid "No open positions. Leverage settings appear here when you have active positions."
+msgstr ""
+
+#: src/components/account/account-history.tsx
#: src/components/trade/mobile/mobile-orders-history-tab.tsx
#: src/components/trade/positions/orders-history-tab.tsx
msgid "No order history found."
@@ -1482,6 +1605,10 @@ msgstr ""
msgid "No route available. Try a different amount or asset."
msgstr ""
+#: src/components/account/account-balances.tsx
+msgid "No spot balances."
+msgstr ""
+
#: src/components/trade/components/token-selector-dropdown.tsx
#~ msgid "No tokens available"
#~ msgstr ""
@@ -1490,6 +1617,10 @@ msgstr ""
msgid "No tokens with value found across supported chains"
msgstr ""
+#: src/components/account/account-history.tsx
+msgid "No trades found."
+msgstr ""
+
#: src/components/trade/order-entry/swap-asset-modal.tsx
#~ msgid "No trading pair available for {fromToken}/{toToken}"
#~ msgstr ""
@@ -1567,6 +1698,10 @@ msgstr "Interés abierto"
msgid "Open Orders"
msgstr "Órdenes abiertas"
+#: src/components/account/account-positions.tsx
+msgid "Open Positions"
+msgstr ""
+
#: src/components/trade/positions/positions-tab.tsx
#~ msgid "Open positions count"
#~ msgstr ""
@@ -1609,13 +1744,14 @@ msgstr ""
msgid "Order Value"
msgstr "Valor orden"
+#: src/components/account/account-history.tsx
#: src/components/trade/positions/orders-history-tab.tsx
msgid "orders"
msgstr ""
-#: src/components/trade/positions/orders-history-tab.tsx
-#~ msgid "Orders"
-#~ msgstr ""
+#: src/components/account/account-history.tsx
+msgid "Orders"
+msgstr ""
#: src/components/trade/tradebox/advanced-order-dropdown.tsx
#: src/components/trade/tradebox/advanced-order-dropdown.tsx
@@ -1639,10 +1775,15 @@ msgstr "Página no encontrada"
#~ msgid "pagination"
#~ msgstr "paginación"
+#: src/components/account/account-history.tsx
#: src/components/trade/positions/funding-tab.tsx
msgid "Payment"
msgstr "Pago"
+#: src/components/account/account-history.tsx
+msgid "payments"
+msgstr ""
+
#: src/components/trade/tradebox/order-toast.tsx
msgid "pending"
msgstr "pendiente"
@@ -1658,11 +1799,17 @@ msgstr "pendiente"
msgid "Perp"
msgstr ""
+#: src/components/account/account-history.tsx
+msgid "Perp → Spot"
+msgstr ""
+
#: src/components/trade/mobile/mobile-balances-tab.tsx
#: src/components/trade/positions/balances-tab.tsx
msgid "Perpetuals"
msgstr ""
+#: src/components/account/account-page.tsx
+#: src/components/account/account-page.tsx
#: src/components/trade/tradebox/account-panel.tsx
msgid "Perps"
msgstr "Perpetuos"
@@ -1692,6 +1839,8 @@ msgstr ""
msgid "Please enter an address"
msgstr ""
+#: src/components/account/account-history.tsx
+#: src/components/account/account-positions.tsx
#: src/components/trade/positions/balances-tab.tsx
#: src/components/trade/positions/history-tab.tsx
#: src/components/trade/positions/positions-tab.tsx
@@ -1707,6 +1856,11 @@ msgstr "PNL"
msgid "Portfolio"
msgstr "Portafolio"
+#: src/components/account/account-pnl-chart.tsx
+msgid "Portfolio PNL"
+msgstr ""
+
+#: src/components/account/account-history.tsx
#: src/components/trade/mobile/mobile-funding-tab.tsx
#: src/components/trade/positions/funding-tab.tsx
#: src/components/trade/tradebox/trade-form-fields.tsx
@@ -1742,6 +1896,8 @@ msgstr ""
#~ msgid "Previous"
#~ msgstr "Anterior"
+#: src/components/account/account-history.tsx
+#: src/components/account/account-history.tsx
#: src/components/trade/chart/token-selector-columns.ts
#: src/components/trade/chart/token-selector.tsx
#: src/components/trade/mobile/mobile-history-tab.tsx
@@ -1790,6 +1946,7 @@ msgstr ""
msgid "Randomize timing"
msgstr ""
+#: src/components/account/account-history.tsx
#: src/components/trade/components/spot-swap-modal.tsx
#: src/components/trade/mobile/mobile-funding-tab.tsx
#: src/components/trade/positions/funding-tab.tsx
@@ -1948,6 +2105,7 @@ msgstr "Vender"
#~ msgid "Sell Short"
#~ msgstr "Vender corto"
+#: src/components/account/account-page.tsx
#: src/components/trade/mobile/mobile-balances-tab.tsx
#: src/components/trade/positions/balances-tab.tsx
#: src/components/trade/positions/send-modal.tsx
@@ -2003,6 +2161,8 @@ msgstr ""
msgid "Settings"
msgstr "Configuración"
+#: src/components/account/account-positions.tsx
+#: src/components/account/account-positions.tsx
#: src/components/trade/mobile/mobile-positions-tab.tsx
#: src/components/trade/positions/position-tpsl-modal.tsx
msgid "Short"
@@ -2048,9 +2208,9 @@ msgstr ""
#~ msgid "Show Values in USD"
#~ msgstr "Mostrar valores en USD"
-#: src/components/trade/positions/position-tpsl-modal.tsx
-#~ msgid "Side"
-#~ msgstr ""
+#: src/components/account/account-history.tsx
+msgid "Side"
+msgstr ""
#: src/components/ui/sidebar.tsx
#~ msgid "Sidebar"
@@ -2068,6 +2228,10 @@ msgstr "Firmante no listo"
#~ msgid "Signing..."
#~ msgstr "Firmando..."
+#: src/components/account/account-history.tsx
+#: src/components/account/account-history.tsx
+#: src/components/account/account-positions.tsx
+#: src/components/account/account-positions.tsx
#: src/components/trade/mobile/mobile-history-tab.tsx
#: src/components/trade/mobile/mobile-orders-history-tab.tsx
#: src/components/trade/mobile/mobile-orders-tab.tsx
@@ -2153,6 +2317,8 @@ msgstr ""
#~ msgid "spot"
#~ msgstr "spot"
+#: src/components/account/account-page.tsx
+#: src/components/account/account-page.tsx
#: src/components/trade/header/top-nav.tsx
#: src/components/trade/mobile/mobile-balances-tab.tsx
#: src/components/trade/mobile/mobile-nav-drawer.tsx
@@ -2163,10 +2329,18 @@ msgstr ""
msgid "Spot"
msgstr "Spot"
+#: src/components/account/account-history.tsx
+msgid "Spot → Perp"
+msgstr ""
+
#: src/components/trade/positions/send-modal.tsx
msgid "Spot Account"
msgstr ""
+#: src/components/account/account-balances.tsx
+msgid "Spot Balances"
+msgstr ""
+
#: src/components/pages/builder-page.tsx
#~ msgid "Spot: Max 1% (100 basis points)"
#~ msgstr ""
@@ -2192,6 +2366,7 @@ msgstr ""
#~ msgid "Start Price (USDC)"
#~ msgstr ""
+#: src/components/account/account-history.tsx
#: src/components/trade/positions/orders-history-tab.tsx
msgid "Status"
msgstr "Estado"
@@ -2363,6 +2538,10 @@ msgstr "La página que buscas no existe."
msgid "TIF"
msgstr ""
+#: src/components/account/account-history.tsx
+#: src/components/account/account-history.tsx
+#: src/components/account/account-history.tsx
+#: src/components/account/account-history.tsx
#: src/components/trade/mobile/mobile-funding-tab.tsx
#: src/components/trade/orderbook/trades-panel.tsx
#: src/components/trade/positions/funding-tab.tsx
@@ -2405,16 +2584,26 @@ msgstr ""
msgid "Toggle size mode"
msgstr "Cambiar modo de tamaño"
+#: src/components/account/account-balances.tsx
+msgid "Token"
+msgstr ""
+
#: src/components/trade/market-overview.tsx
msgid "TOKEN"
msgstr ""
+#: src/components/account/account-balances.tsx
+#: src/components/account/account-balances.tsx
#: src/components/trade/mobile/mobile-balances-tab.tsx
#: src/components/trade/orderbook/orderbook-panel.tsx
#: src/components/trade/positions/balances-tab.tsx
msgid "Total"
msgstr "Total"
+#: src/components/account/account-page.tsx
+msgid "Total Equity"
+msgstr ""
+
#: src/components/trade/positions/twap-tab.tsx
#~ msgid "Total Size"
#~ msgstr "Tamaño total"
@@ -2423,9 +2612,9 @@ msgstr "Total"
msgid "Total time"
msgstr ""
-#: src/components/trade/tradebox/account-panel.tsx
-#~ msgid "Total Value"
-#~ msgstr ""
+#: src/components/account/account-page.tsx
+msgid "Total Value"
+msgstr ""
#: src/components/trade/positions/orders-tab.tsx
#~ msgid "TP"
@@ -2476,10 +2665,12 @@ msgstr "Historial de operaciones"
msgid "Trade via {0} spot market"
msgstr ""
+#: src/components/account/account-history.tsx
#: src/components/trade/positions/history-tab.tsx
msgid "trades"
msgstr ""
+#: src/components/account/account-history.tsx
#: src/components/trade/orderbook/orderbook-panel.tsx
msgid "Trades"
msgstr "Operaciones"
@@ -2496,6 +2687,7 @@ msgstr ""
msgid "Transaction was rejected"
msgstr ""
+#: src/components/account/account-page.tsx
#: src/components/trade/positions/transfer-modal.tsx
#: src/components/trade/tradebox/deposit-modal.tsx
#: src/components/trade/tradebox/deposit-modal.tsx
@@ -2550,6 +2742,8 @@ msgstr ""
msgid "TWAP Orders"
msgstr "Órdenes TWAP"
+#: src/components/account/account-history.tsx
+#: src/components/account/account-history.tsx
#: src/components/trade/mobile/mobile-orders-history-tab.tsx
#: src/components/trade/positions/history-tab.tsx
#: src/components/trade/positions/orders-history-tab.tsx
@@ -2579,6 +2773,8 @@ msgstr "Símbolo desconocido: {symbolName}"
msgid "Unrealized P&L"
msgstr ""
+#: src/components/account/account-page.tsx
+#: src/components/account/account-page.tsx
#: src/components/trade/tradebox/account-panel.tsx
msgid "Unrealized PNL"
msgstr "PNL no realizado"
@@ -2588,6 +2784,7 @@ msgstr "PNL no realizado"
msgid "Unsupported resolution: {0}"
msgstr "Resolución no soportada: {0}"
+#: src/components/account/account-leverage-settings.tsx
#: src/components/trade/tradebox/leverage-control.tsx
#: src/components/trade/tradebox/margin-mode-modal.tsx
msgid "Update failed"
@@ -2604,6 +2801,7 @@ msgstr ""
msgid "Updated live"
msgstr "Actualizado en vivo"
+#: src/components/account/account-balances.tsx
#: src/components/trade/positions/balances-tab.tsx
msgid "USD Value"
msgstr "Valor en USD"
@@ -2680,6 +2878,7 @@ msgstr "Billetera no conectada"
msgid "will arrive in ~5 min"
msgstr ""
+#: src/components/account/account-page.tsx
#: src/components/trade/tradebox/account-panel.tsx
#: src/components/trade/tradebox/account-panel.tsx
#: src/components/trade/tradebox/deposit-modal.tsx
@@ -2689,6 +2888,10 @@ msgstr ""
msgid "Withdraw"
msgstr "Retirar"
+#: src/components/account/account-page.tsx
+msgid "Withdrawable"
+msgstr ""
+
#: src/components/trade/tradebox/deposit-modal.tsx
msgid "Withdrawal failed"
msgstr ""
diff --git a/apps/terminal/src/locales/fr/messages.js b/apps/terminal/src/locales/fr/messages.js
index 0a685cc1..c07db76d 100644
--- a/apps/terminal/src/locales/fr/messages.js
+++ b/apps/terminal/src/locales/fr/messages.js
@@ -1,5 +1,5 @@
/*eslint-disable*/ module.exports = {
messages: JSON.parse(
- '{"++OGth":["Deposit successful"],"+1S7b1":["Portefeuille non connecté"],"+6YAwo":["selected"],"+8WrGc":["Aucun portefeuille trouvé"],"+F8cLG":["Affiche la barre latérale mobile."],"+JE0m7":["Échec du chargement des positions."],"+K0AvT":["Déconnecter"],"+N2Rqk":["Aucune position active."],"+ONfBR":["PRICE"],"+ZV3i5":["Échec du chargement des ordres ouverts."],"+b7T3G":["Updated"],"+hA/UM":["Ordres ouverts"],"+nuEh/":["Estimated time"],"+w/hP1":["Afficher les exécutions sur le graphique"],"+xnyQO":["Entrez la taille"],"+z3YcL":["Position actions"],"+zy2Nq":["Type"],"/2hibY":["Annuler la sélection"],"/AsMcZ":["Enabling..."],"/IX/7x":["Other"],"/PvdTS":["Gas (",["0"],")"],"/TT0Oq":["ORACLE"],"/cF7Rs":["Volume"],"/gY2VH":["Filtrer par ",["0"]],"/jQctM":["To"],"/kXBrK":["Total time"],"/mfICu":["Fees"],"/tPR7R":["Builder Fee"],"0+Iw6C":["Duration (Minutes)"],"0+X+sh":["Spot Account"],"0LZtsz":["Take Market"],"0Mx4+k":["No trading pair available for ",["fromTokenDisplay"],"/",["toTokenDisplay"]],"0P2gFy":["La page que vous recherchez n\'existe pas."],"0QDjxt":["Balance:"],"0RrIzN":["Sélectionner le jeton"],"0Xlr0L":["Minimum deposit is ",["0"]," USDC"],"0exG4Q":["Financement"],"0z59Ep":["vente"],"1BkDWk":["Acheter long"],"1QfxQT":["Fermer"],"1UzENP":["No"],"1ZMjyh":["The builder at ",["0"],"...",["1"]," can now charge up to ",["maxFeeRate"],"% fee on orders placed on your behalf."],"1h+RBg":["Orders"],"1njn7W":["Light"],"29VNqC":["Unknown error"],"2Ea5Vz":["Historique des transactions"],"2FYpfJ":["Plus"],"2M2s7z":["Activer le trading"],"2PsTzL":["terminé"],"2tQrK2":["Passer à Arbitrum"],"3/vMct":["A crypto wallet lets you store and manage your digital assets securely."],"30ZPad":["Positions actives"],"3CHbH/":["SL Price"],"3DtJpz":["Stop Limit"],"3IkQgP":["Secure & Private"],"3Siwmw":["Plus d\'options"],"3UZudY":["Stop trigger must be below mark"],"3fPjUY":["Pro"],"3oHIhx":["TP must be above entry"],"4+HkLv":["Show Values in Quote Asset"],"40lLFI":["Aller à la page suivante"],"42w2ly":["OI"],"46Sm8O":["Gas :"],"4HtGBb":["MAX"],"4J2s8f":["Annulation..."],"4Kyst7":["Agent mode: Orders signed automatically (fast)"],"4NuBK4":["En attente des transactions..."],"4Vzb+4":["Fermeture..."],"54QqdM":["Signature..."],"5FsTU5":["Client du portefeuille non prêt"],"5Omwef":["Scale level below min notional"],"5joj8M":["Transaction breakdown"],"5oE2C+":["Trié par ",["0"]],"5u8fWJ":["Back to asset selection"],"5xKxZd":["TP trigger price"],"5zbbOn":["Invalid amount"],"60m4P5":["24H VOL"],"621rYf":["Paiement"],"63wHTy":["Edit TP/SL"],"69b7aE":["Open command menu"],"6Aih4U":["Offline"],"6gRgw8":["Retry"],"6jVqpA":["Échec du chargement de l\'historique des transactions."],"6poLt9":["Basculer la barre latérale"],"6vyJOd":["Deposit from any chain to your Hyperliquid account"],"6zAIUU":["Cannot switch to Isolated mode with an open position. Close your position first."],"72c5Qo":["Total"],"77Rx22":["Réduire le panneau du compte"],"7L01XJ":["Actions"],"7Lv7j5":["Margin Mode"],"7VpPHA":["Confirm"],"7l15X4":["échoué"],"88cUW+":["You receive"],"8F1i42":["Page non trouvée"],"8Fu1E7":["Basculer le mode de taille"],"8Itoo3":["Unrealized P&L"],"8LkAxv":["SL must be below entry"],"8SNccp":["Switch to ",["displayName"]," market, short position"],"8gcijf":["Insufficient <0/> balance"],"8hvfaA":["Position closed"],"8yhvii":["Mid"],"997z0L":["Spot: Max 1% (100 basis points)"],"9ACh/c":["Pas de prix mark"],"9SBcQj":["All cross positions share the same cross margin as collateral. In the event of liquidation, your cross margin balance and any remaining open positions may be forfeited."],"9lH5ev":["Chargement des ordres ouverts..."],"9mRTyg":["Bloc :"],"9qnvU0":["Switch to ",["displayName"]," market"],"9ykF9H":["Hide small"],"9zb2WA":["Connecting"],"A+q/Is":["marchés"],"A1taO8":["Search"],"AArF6S":["Move USDC between your Perp and Spot accounts."],"AEGM8s":["Failed to copy"],"AErIoZ":["Manage your risk on individual positions by restricting the amount of margin allocated to each. If the margin ratio of an isolated position reaches 100%, the position will be liquidated. Margin can be added or removed to individual positions in this mode."],"AGWjPT":["Définir ",["p"],"%"],"AUYALh":["Bientôt disponible"],"AUahCv":["Insufficient funds for gas"],"AeXO77":["Compte"],"B5AKvo":["Mark"],"BOppjS":["Pas de marché"],"BSj/hz":["Ajouter des fonds"],"BvlAGq":["PNL non réalisé"],"BxBZCk":["Each position uses only its allocated margin. If the margin ratio reaches 100%, the position is liquidated. Margin can be added or removed individually."],"C2TJN3":["Chargement des ordres TWAP..."],"CF1zwJ":["Échec du chargement de l\'historique de financement."],"CK1KXz":["Max"],"CMHmbm":["Glissement"],"CP3D8G":["Progression"],"CW11B+":["Minimum"],"CfRvLF":["Swap failed"],"CgqzuN":["Croisé"],"Cj2Gtd":["Taille"],"Cjh38d":["New to wallets?"],"Ck1xL4":["You send"],"Co8gGw":["No active TWAP orders."],"CtByM7":["Connecter le portefeuille"],"CzeOTH":["Wallet (",["0"],")"],"D243f/":["Install a wallet extension to continue"],"D6X5UU":["Market Close"],"DBVcOk":["More intervals"],"DHhJ7s":["Précédent"],"DPfwMq":["Done"],"DWs3bP":["Mark:"],"DXxfpS":["Sélectionner l\'agrégation du carnet d\'ordres"],"DZo9LT":["Mock Wallet (Testing)"],"DabQ8P":["Ordres TWAP"],"E8sxZm":["Afficher les positions sur le graphique"],"EE/1QC":["Format for numbers and dates"],"ETkk6Z":["TOKEN"],"Enslfm":["Destination"],"F6pfE9":["Actif"],"FF5wYg":["Sélectionner tous les ordres"],"FKY8dA":["Est. P&L at Limit"],"FLNk0d":["Min order $",["ORDER_MIN_NOTIONAL_USD"]],"FLkCnQ":["You can revoke permissions at any time by registering a new approval with 0% fee rate. Builder codes are processed entirely onchain as part of the fee logic."],"FS+bo3":["Impossible de fermer la position."],"Fdp03t":["on"],"FmemI7":["FUNDING"],"FqmhBo":["No balance on Hyperliquid. Deposit first."],"FxVG/l":["Copied to clipboard"],"G3oEYi":["Sélectionner l\'ordre"],"G6etJA":["Chargement des soldes..."],"GINUX/":["Only you control your funds. No email or password required."],"GLWV4x":["Builder must have at least 100 USDC in perps account value"],"GX8GKD":["Assets"],"GbNWWs":["Slippage tolerance"],"H2Sfhg":["Trigger"],"HJlY85":["Pas de solde"],"HZN+sw":["Trading"],"HZdgTJ":["Select signing mode"],"HfT9T6":["No route available. Try a different amount or asset."],"Hp1l6f":["Current"],"I8LlJA":["TradingView"],"ICCWOn":["Impossible de créer le portefeuille"],"IJfJAB":["Margin mode"],"IJndUb":["Connect your wallet to register a builder code"],"IV3hWp":["Enter trigger price"],"IZL9b6":["Effet de levier croisé"],"IcSLiu":["Oracle"],"Ieh2cV":["Développer le panneau du compte"],"IoAuJG":["Sending..."],"IwI0rY":["Wrong network"],"IyNxxU":["perp"],"J24FyN":["Bridge"],"J28zul":["Connexion..."],"JHxGP5":["Trader"],"JVvYNb":["Deposit complete"],"JXzPJX":["SL"],"JfWXib":["Track on LI.FI Explorer"],"JlFcis":["Send"],"Ju4B2M":["Sélectionner le levier"],"JuyzMZ":["Maximum slippage tolerance for market orders"],"KTNWsg":["Withdrawal failed"],"KYAjf3":["Isolé"],"KZHfkR":["Déposer des fonds"],"KaqqlB":["Déposer sur Hyperliquid"],"Ke6k18":["Leverage"],"KeDrPl":["Minimum deposit is 5 USDC"],"KnTbj2":["Afficher les ordres sur le graphique"],"Kp3IPD":["No response from exchange"],"KsqhWn":["Staking"],"KxF048":["Personnalisez votre expérience de trading."],"Kz1TxG":["ouvert"],"L+qiq+":["Marché"],"L4jnDP":["Exécuté"],"LEbOpR":["More details"],"LHfqhz":["New deposit"],"LMMGPr":["Submitting..."],"Le70b5":["Plus de pages"],"LhMjLm":["Heure"],"LlsvFY":["Reduce"],"Lx+htK":["Swap submitted"],"Lz5J1x":["Sort by ",["sortLabel"]],"M0biAV":["Preparing your quote..."],"M9fkA0":["Liquidated"],"MLQamJ":["Connectez votre portefeuille pour voir l\'historique des transactions."],"MSSmsu":["To Perp"],"MTq3hP":["24h vol"],"Mim7/r":["Insufficient ",["fromTokenDisplay"]," balance"],"MpLcsV":["Loading balances across all chains..."],"MqA4qt":["Portefeuille"],"MyytBE":["Send tokens to another account on the Hyperliquid L1."],"N40H+G":["All"],"NIDWjN":["SL must be above entry"],"NJNMJX":["TWAP"],"NNJKWa":["Connect your wallet to withdraw funds"],"NQtgSJ":["Failed to register builder code"],"NpuiU+":["Perpétuels"],"NsJrqM":["Marché non prêt"],"ODVKKZ":["Entrez le prix limite"],"OQGH4C":["limite réd. seul."],"OR475H":["Network"],"OSnZvX":["Change leverage"],"OYsSpP":["Failed to reverse position"],"OZtEcz":["API"],"Oe3M3Y":["Switch to Arbitrum to deposit USDC to Hyperliquid"],"Oid00w":["Enter price range"],"OsyKSt":["Retirer"],"Otdc/Y":["Connectez votre portefeuille pour voir les positions."],"OxPEUg":["En cours d\'utilisation"],"PJEzIS":["Bridge to Hyperliquid"],"PLUB/s":["Frais"],"PNsB0A":["Fetching quote..."],"PTna/x":["Intérêt ouvert"],"PTyoXs":["Set SL to ",["p"],"%"],"PWRc/M":["Open positions count"],"PZBWpL":["Passer en mode clair"],"PaQ3df":["Enable"],"PcmIvv":["pbs"],"PeO4lq":["Requirements:"],"PelVTv":["Register Builder Code"],"PiH3UR":["Copied!"],"Pl9jiz":["Show Orders"],"QD2PKQ":["End Price"],"QHcLEN":["Connecté"],"QjUEvK":["Tout annuler"],"R68yLX":["Définir TP/SL"],"RRXpo1":["Vente"],"RaWC6b":["Size exceeds position"],"Rb1yph":["Prix liq."],"RnpwtT":["TWAP minutes must be ",["TWAP_MINUTES_MIN"],"-",["TWAP_MINUTES_MAX"]],"RoE+o+":["Réduction uniquement"],"S33tz3":["Non connecté"],"S48xcO":["en attente"],"S9zH+G":["This action must be signed by your main wallet (not an agent/API wallet). The builder must have at least 100 USDC in perps account value."],"SEDVHU":["Chargement des positions..."],"SEoDwA":["Take Limit"],"SJrFO1":["Position close actions"],"SVHeJc":["Direct mode: Sign each order with wallet"],"SWH2Eh":["Time in Force"],"SsGsC0":["Annuler les ordres sélectionnés"],"Svkela":["Aller à la page précédente"],"T/pF0Z":["Retirer des favoris"],"TDa39c":["Prix 24h"],"THTG58":["Select asset to bridge"],"THmCgW":["Select market"],"TK3J5O":["Send Tokens"],"TK9uys":["Sélectionner le marché ",["coin"]],"TLa4Oo":["Connectez un portefeuille pour gérer les positions."],"TNtZN2":["TP"],"TQ/QV5":["No trading pair available for ",["fromToken"],"/",["toToken"]],"TT0aVH":["Order submitted"],"TbjyhA":["Documentation"],"Tm8JF7":["Connect your wallet to bridge funds"],"Tuc34V":["Confirm Bridge"],"Tz0i8g":["Paramètres"],"U3As+R":["Take Profit"],"U86eEA":["No user address"],"URvngU":["Est. time"],"UXtGFD":["Full Position"],"UwG7db":["What is a wallet?"],"V0ubMJ":["Prise de profit / Stop Loss"],"V3XYw0":["P&L"],"V6ETmV":["To Spot"],"VAZUpd":["Ordre échoué"],"VIwCaD":["Entrée"],"VMLGYS":["Switch to Mainnet"],"VU5rsP":["Number Format"],"VXCk+w":["Chargement des marchés..."],"VYFX4v":["Perpetuals"],"VcaZ5z":["Aucun marché trouvé."],"VgTxu0":["Signataire non prêt"],"VmhkuH":["Account and wallet"],"W1k7eB":["24h"],"W75iLe":["Connectez votre portefeuille pour voir les soldes."],"W9Fxbx":["SL trigger price"],"WISj7i":["Place Limit Close"],"WNMYIN":["annulé"],"WajXzx":["Est. P&L"],"WhSRZw":["This row answers: “What is the selected market doing right now?” — mark price, 24h move, oracle, volume, open interest, and funding. Pick a layout that balances scan speed, density, and calm."],"Wqz0SO":["Low Balance"],"XCIAdj":["RO"],"XFp9Bf":["Scale levels must be ",["SCALE_LEVELS_MIN"],"-",["SCALE_LEVELS_MAX"]],"XYLcNv":["Support"],"XbxYxh":["Price grouping"],"Y1W9ip":["Capitaux propres"],"Y9gMWT":["Échec du chargement du carnet d\'ordres."],"YZLEvW":["Processing deposit"],"YnKdJE":["Marge utilisée"],"YxaAON":["Écart"],"Z3FXyt":["Chargement..."],"ZB/Jm6":["Margin & leverage"],"ZDBdfg":["Enter TP or SL price"],"ZFtwlj":["Transactions"],"ZHJZmo":["Amount (USDC)"],"ZYnwzF":["Disconnected"],"ZmGjjl":["Your bridge is still processing. Funds are safe."],"a/MzGi":["sent to Hyperliquid"],"a7u1N9":["Prix"],"a9q6hE":["waiting"],"aAIQg2":["Appearance"],"adcjkX":["Limit close order placed"],"axyo2z":["Connectez un portefeuille pour gérer les ordres."],"b7Wduj":["achat"],"bMJMhJ":["Erreur WebSocket"],"bSCsJh":["TP/SL"],"bUUVED":["Actif"],"bVPv2S":["Mise à jour en direct"],"bW1xET":["Stop trigger must be above mark"],"bifv6N":["Scale"],"bm80CF":["Connectez votre portefeuille pour voir les ordres TWAP."],"c+VX3P":["Custom TP percentage"],"c+tzs5":["Sign in wallet..."],"c2npeq":["Custom SL percentage"],"cJzJWa":["Transfer failed"],"cXvnJ8":["Glissement des ordres au marché"],"csDS2L":["Disponible"],"cwQAhE":["Failed to switch margin mode"],"d+F6q9":["Created"],"dEgA5A":["Annuler"],"dQGImW":["Soldes du compte"],"daWrYT":["Agent verification failed"],"dcKNhk":["Taking longer than expected"],"dfIw2n":["Valeur en USD"],"dkzoLd":["Chargement de l\'historique de financement..."],"doRJE6":["Set TP/SL for ",["0"]],"drvdT3":["Add TP/SL"],"e/cvV1":["Verifying..."],"e/vgsz":["Total Value"],"e0bpdM":["Symbole inconnu : ",["symbolName"]],"e2oWGN":["No tokens with value found across supported chains"],"eXs0Bt":["Rechercher des marchés..."],"ebwNSs":["Remove ",["displayName"]," from favorites"],"eiZzfX":["Builder codes allow DeFi builders to receive a fee on fills they send on behalf of users. They are set per-order for maximal flexibility."],"ejVYRQ":["From"],"es+Zrf":["Transferring..."],"fBckrr":["Résolution non prise en charge : ",["0"]],"fEC2uI":["Transférez des USDC vers votre compte Hyperliquid pour commencer à trader."],"fOG42Y":["Connect your wallet to start trading on Hyperliquid"],"fVmG6b":["Failed to load balances"],"fYSYwH":["Aucun ordre ouvert."],"fYUNRJ":["Direct"],"fhqG7u":["Connected: ",["0"],"...",["1"]],"fqDzSu":["Taux"],"fsBGk0":["Solde"],"g5PJI8":["OPEN INT"],"gIpxlQ":["Minimum withdrawal is $",["MIN_WITHDRAW_USD"]],"gL/sdV":["Popular"],"gMHkDJ":["Échec du chargement des soldes."],"gVLSxk":["Transaction was rejected"],"ga6DLx":["Your bridge is still processing. Funds are safe — LI.FI routes are always recoverable."],"gbNGPv":["Risk/Reward"],"gsL/Ic":["All cross positions share the same cross margin as collateral. In the event of liquidation, your cross margin balance and any remaining open positions under assets in this mode may be forfeited."],"h+3Zi0":["Chargement du portefeuille..."],"h0gbH9":["Transférez des USDC depuis Arbitrum ou d\'autres chaînes vers votre compte Hyperliquid."],"h3yIJ7":["Other Options"],"h4z/Mq":["Builder Fee Approval"],"hBm2XN":["Trier par ",["0"]],"hJet42":["Aucun paiement de financement trouvé."],"hXzOVo":["Suivant"],"hehnjM":["Amount"],"hgpMHD":["Taille totale"],"hhyc5L":["Glissement maximum autorisé pour les ordres au marché."],"htJlxw":["Trier par ",["headerLabel"]],"i+4Fbp":["Deposit failed"],"i6t9oo":["Échec du chargement de l\'historique TWAP."],"i71+SY":["Position reversed"],"iDNBZe":["Notifications"],"iE2I5G":["Enabling"],"iEQQyu":["Agent"],"iFlxcb":["Sélectionner les marchés favoris"],"iGma9e":["Update failed"],"iH8pgl":["Back"],"iKex+G":["Limit Price (USDC)"],"iSLIjg":["Connect"],"iaX5Av":["Échec du chargement des transactions."],"iflFdl":["Place ",["0"]," Order"],"ifzbyQ":["USDC"],"ipnMKT":[["p"],"%"],"iu7tUI":["Fil d\'Ariane"],"j085nT":["Valeur de l\'ordre"],"jH4vGi":["Net received"],"jJCREz":["Connectez votre portefeuille pour voir les paiements de financement."],"jL9aa6":["Swap direction"],"jX19nk":["Connectez votre portefeuille pour voir les ordres ouverts."],"ja6RDy":["Vendre short"],"jgWsKr":["No trading pair available for <0/>/<1/>"],"jj+8Tx":["Approve a builder to charge fees on orders placed on your behalf. Builder codes allow DeFi applications to receive a portion of trading fees."],"jjXeQg":["No tokens available"],"k1ifdL":["Processing..."],"kM5ZE+":["Confirm in wallet"],"kVjBmF":["Prix limite"],"kWXidS":["Fermer la position"],"kj3M8S":["Déposer"],"l0Fmrm":["Langue d\'affichage"],"l4NGKt":["Aucune exécution trouvée."],"l75CjT":["Yes"],"lB46ke":["MARQUE"],"lD8YU8":["Perps Account"],"lHY6Dg":["spot"],"lOEm/1":["Order filled"],"lUDY9v":["Cancel All"],"lVDmF0":["Trade ClockCounterClockwise"],"lZZl3m":["Stop Loss"],"laDnrx":["Aucun ordre TWAP trouvé."],"lg7+vk":["Side"],"lkcAoj":["Margin"],"llUlxR":["PNL"],"llckC0":["Changement..."],"lm6AkD":["TP Price"],"lobQ3s":["Frais est."],"lvC44O":["Max Fee Rate (%)"],"m+2g06":["will arrive in ~3 min"],"m16xKo":["Add"],"m1eb26":["End Price (USDC)"],"m6RmA/":["Insufficient ",["0"]," balance"],"mCk5iK":["Send failed"],"mE/G/f":["Invalid Ethereum address"],"mSpJjq":["Transfer USDC"],"mcOcEg":["Market stats row — layout options"],"mlQXdF":["Trigger Price"],"mnFamZ":["% exécuté"],"n/qDNz":["Passer en mode sombre"],"nJBD8K":["Métadonnées du marché indisponibles."],"nJTjIr":["Swapping..."],"nQrkW7":["Max 0.1% (10 bps) for perps, 1% (100 bps) for spot. Enter as decimal (e.g., 0.01 for 1 basis point)."],"nVMDTs":["TP must be below entry"],"nWIodQ":["Take profit trigger must be below mark"],"nbrdjK":["In Orders"],"njn4bC":["Confirm transaction in your wallet"],"nuBbBr":["Graphique"],"nuqpbC":["Fee Limits:"],"nwcAtu":["Latence :"],"nwtY4N":["Une erreur s\'est produite"],"o+CS/D":["Failed to load order history."],"o636h+":["Stop Market"],"o7Xo9X":["24H"],"o8uQyS":["Transactions récentes"],"oJv+QI":["Randomize timing"],"oW1G8i":["Your funds were successfully deposited."],"ocovOd":["Prix moy."],"odEUjn":["Advanced order types"],"okV5rM":["Failed to close position"],"ol8emB":["Connect your wallet to view order history."],"olEUh2":["Successful"],"orI3hB":["pagination"],"orv4UV":["Set TP to ",["p"],"%"],"otaTjg":["Achat"],"ovBPCi":["Default"],"p/78dY":["Position"],"p0ngfp":["File d\'ordres"],"p6NueD":["NOUVEAU"],"pBsoKL":["Ajouter aux favoris"],"pHVQlG":["Annuler tous les ordres"],"pI2rip":["Insufficient balance (includes $",["WITHDRAWAL_FEE_USD"]," fee)"],"pIwpkw":["Aller au terminal de trading"],"pWF6+F":["Show Executions"],"pY5TE9":["Could not fetch your token balances"],"perfgr":["Funding History"],"pvnfJD":["Dark"],"qCdZab":["Switch to ",["displayName"]," market, long position"],"qJb6G2":["Try Again"],"qRhSY/":["Ordre min. 10 $"],"qX/0av":["Select how margin is allocated for your positions"],"qaeo2F":["Ratio de marge"],"qfS/h8":[["formatted"]," USDC deposited to Hyperliquid"],"qiOIiY":["Acheter"],"qlRrjA":["Set to ",["p"],"%"],"qn4nUK":["Builder Address"],"qnKMyZ":["Paiements de financement"],"quX3ha":["Register Another"],"r+w5Bx":["No balances found"],"r22IQ2":["Time / Total"],"rLi46F":["Must be signed by main wallet (not agent/API wallet)"],"rPNGe1":["Take profit trigger must be above mark"],"rPX0Ef":["Minimum withdrawal is $",["0"]],"rfbg3y":["Switch to ",["0"]," market"],"rm3fFf":["Connectez le portefeuille pour voir le compte"],"ruL48O":["Number of Orders"],"ryxkVx":["Afficher les valeurs en USD"],"s/ereB":["actif"],"sLpZwu":["Annuler l\'ordre TWAP"],"sO+nPg":["Marge req."],"sO0DWk":["Switch between mainnet and testnet. Page will reload."],"sQWzwD":["View on explorer"],"sYnC5v":["Select ",["displayName"]," market"],"shmNel":["Entry Price"],"stec1a":["Impossible d\'annuler les ordres."],"szH29R":["Aucun solde trouvé. Déposez des fonds pour commencer à trader."],"t+B4rK":["24h Change"],"t+R8+P":["Execution"],"t5EZAB":["Chargement de l\'historique des transactions..."],"tHPbHS":["Classement"],"tMX8XH":["Select tokens to swap"],"tVJk4q":["Annuler l\'ordre"],"tZ9ftZ":["Spot"],"tnJl4V":["Withdrawal submitted"],"u4LEQ2":["You are on Testnet"],"uAQUqI":["Statut"],"uEDo87":["About Builder Codes"],"uWi2Q+":["Barre latérale"],"uZi2t8":["Confirmation screen coming in next slice"],"ufWF2Y":["Coffres"],"ugB2se":["No order history found."],"uoD7vB":["Fee rate must be between 0.001% and 1%"],"v/76pL":["Carnet d\'ordres"],"vH2C/2":["Swap"],"vI9OLW":["Bridge failed"],"vIWDJQ":[["totalSeconds"]," seconds"],"vT/Pj1":["VOL"],"vXIe7J":["Language"],"vXWzNt":["Échec de l\'activation du trading"],"vZW+PE":["Your transaction is being processed"],"vcHBQG":["Show Positions"],"vpjkXb":["Limit Close"],"vrnnn9":["Processing"],"vtJ2yO":["Explorer"],"vyMDXl":["Afficher les lignes de balayage"],"w+oJCW":["will arrive in ~5 min"],"w3hmRj":["En attente du carnet d\'ordres..."],"wDbqhD":["Reverse"],"wDy6uq":["Loading order history..."],"wMHvYH":["Valeur"],"wZVzVU":["Bridge complete"],"wdxz7K":["Source"],"wezJ3v":["Mark Price"],"wq30T4":["Liq."],"wvgF6w":["Order History"],"x+7jw2":["Dépasse la taille max"],"xGVfLh":["Continue"],"xI4H1r":["Switch to ",["displayCoin"]," market"],"xNB0TS":["Vendre"],"xTSCVP":["Builder code registered successfully!"],"xWnh+P":["Start Price (USDC)"],"y62Dys":["Network fee"],"yQE2r9":["Chargement"],"yRkqG9":["Limite"],"yT7sOL":["Trade via ",["0"]," spot market"],"yVfwJk":["Start and end must differ"],"ydOXwr":["Perp"],"ye6Vnv":["Available:"],"ygCKqB":["Stop"],"ygkMcg":["limite"],"yxnt3y":["Fill status"],"yz7wBu":["Fermer"],"zEGs+1":["Builders"],"zKCXG+":["Trigger Price (USDC)"],"zKJcRr":["Perps: Max 0.1% (10 basis points)"],"zPGNJm":["Transfer"],"zXagFp":["Copier l\'adresse"],"zZmf1N":["Exécuté"],"zdcGo/":["Bridging in progress"],"zjwWvI":["Start Price"],"znqB4T":["Insufficient balance"],"zwWKhA":["Learn more"]}',
+ '{"++OGth":["Deposit successful"],"+1S7b1":["Portefeuille non connecté"],"+6YAwo":["selected"],"+8WrGc":["Aucun portefeuille trouvé"],"+F8cLG":["Affiche la barre latérale mobile."],"+JE0m7":["Échec du chargement des positions."],"+K0AvT":["Déconnecter"],"+N2Rqk":["Aucune position active."],"+N7uug":["1 year"],"+ONfBR":["PRICE"],"+ZV3i5":["Échec du chargement des ordres ouverts."],"+b7T3G":["Updated"],"+hA/UM":["Ordres ouverts"],"+nuEh/":["Estimated time"],"+w/hP1":["Afficher les exécutions sur le graphique"],"+xnyQO":["Entrez la taille"],"+z3YcL":["Position actions"],"+zy2Nq":["Type"],"/2hibY":["Annuler la sélection"],"/AsMcZ":["Enabling..."],"/G76GM":["Your current open position on this market"],"/IX/7x":["Other"],"/PvdTS":["Gas (",["0"],")"],"/TT0Oq":["ORACLE"],"/cF7Rs":["Volume"],"/gY2VH":["Filtrer par ",["0"]],"/jQctM":["To"],"/kXBrK":["Total time"],"/mfICu":["Fees"],"/tPR7R":["Builder Fee"],"0+Iw6C":["Duration (Minutes)"],"0+X+sh":["Spot Account"],"0LZtsz":["Take Market"],"0Mx4+k":["No trading pair available for ",["fromTokenDisplay"],"/",["toTokenDisplay"]],"0P2gFy":["La page que vous recherchez n\'existe pas."],"0QDjxt":["Balance:"],"0RrIzN":["Sélectionner le jeton"],"0Xlr0L":["Minimum deposit is ",["0"]," USDC"],"0cIV8s":["Open Positions"],"0exG4Q":["Financement"],"0z59Ep":["vente"],"1BkDWk":["Acheter long"],"1PJ7wL":["Confirm Close"],"1QfxQT":["Fermer"],"1UzENP":["No"],"1ZMjyh":["The builder at ",["0"],"...",["1"]," can now charge up to ",["maxFeeRate"],"% fee on orders placed on your behalf."],"1h+RBg":["Orders"],"1njn7W":["Light"],"29VNqC":["Unknown error"],"2Ea5Vz":["Historique des transactions"],"2FYpfJ":["Plus"],"2M2s7z":["Activer le trading"],"2OWSzg":["Account Equity"],"2PsTzL":["terminé"],"2tQrK2":["Passer à Arbitrum"],"3/vMct":["A crypto wallet lets you store and manage your digital assets securely."],"30ZPad":["Positions actives"],"3CHbH/":["SL Price"],"3DtJpz":["Stop Limit"],"3IkQgP":["Secure & Private"],"3Siwmw":["Plus d\'options"],"3UZudY":["Stop trigger must be below mark"],"3fPjUY":["Pro"],"3oHIhx":["TP must be above entry"],"3q1W5Q":["Isolated → Cross"],"4+HkLv":["Show Values in Quote Asset"],"40lLFI":["Aller à la page suivante"],"42w2ly":["OI"],"46Sm8O":["Gas :"],"4HtGBb":["MAX"],"4J2s8f":["Annulation..."],"4Kyst7":["Agent mode: Orders signed automatically (fast)"],"4NuBK4":["En attente des transactions..."],"4Vzb+4":["Fermeture..."],"4avvba":["No trades found."],"54QqdM":["Signature..."],"5FsTU5":["Client du portefeuille non prêt"],"5Omwef":["Scale level below min notional"],"5joj8M":["Transaction breakdown"],"5oE2C+":["Trié par ",["0"]],"5u8fWJ":["Back to asset selection"],"5xKxZd":["TP trigger price"],"5zbbOn":["Invalid amount"],"60m4P5":["24H VOL"],"621rYf":["Paiement"],"63wHTy":["Edit TP/SL"],"69b7aE":["Open command menu"],"6Aih4U":["Offline"],"6fpdpR":["Show fewer wallets"],"6gRgw8":["Retry"],"6jVqpA":["Échec du chargement de l\'historique des transactions."],"6poLt9":["Basculer la barre latérale"],"6vyJOd":["Deposit from any chain to your Hyperliquid account"],"6zAIUU":["Cannot switch to Isolated mode with an open position. Close your position first."],"72c5Qo":["Total"],"77Rx22":["Réduire le panneau du compte"],"7L01XJ":["Actions"],"7Lv7j5":["Margin Mode"],"7VpPHA":["Confirm"],"7l15X4":["échoué"],"88cUW+":["You receive"],"8F1i42":["Page non trouvée"],"8Fu1E7":["Basculer le mode de taille"],"8Itoo3":["Unrealized P&L"],"8LkAxv":["SL must be below entry"],"8SNccp":["Switch to ",["displayName"]," market, short position"],"8WrNUb":["TIF"],"8gcijf":["Insufficient <0/> balance"],"8hvfaA":["Position closed"],"8yhvii":["Mid"],"997z0L":["Spot: Max 1% (100 basis points)"],"9ACh/c":["Pas de prix mark"],"9SBcQj":["All cross positions share the same cross margin as collateral. In the event of liquidation, your cross margin balance and any remaining open positions may be forfeited."],"9lH5ev":["Chargement des ordres ouverts..."],"9mRTyg":["Bloc :"],"9qnvU0":["Switch to ",["displayName"]," market"],"9ykF9H":["Hide small"],"9zb2WA":["Connecting"],"A+q/Is":["marchés"],"A1taO8":["Search"],"AArF6S":["Move USDC between your Perp and Spot accounts."],"AEGM8s":["Failed to copy"],"AErIoZ":["Manage your risk on individual positions by restricting the amount of margin allocated to each. If the margin ratio of an isolated position reaches 100%, the position will be liquidated. Margin can be added or removed to individual positions in this mode."],"AGWjPT":["Définir ",["p"],"%"],"AUYALh":["Bientôt disponible"],"AUahCv":["Insufficient funds for gas"],"AeXO77":["Compte"],"B5AKvo":["Mark"],"BOppjS":["Pas de marché"],"BSj/hz":["Ajouter des fonds"],"BvlAGq":["PNL non réalisé"],"BxBZCk":["Each position uses only its allocated margin. If the margin ratio reaches 100%, the position is liquidated. Margin can be added or removed individually."],"C2TJN3":["Chargement des ordres TWAP..."],"C8kdVg":["Fill limit price with mark price ",["0"]],"CF1zwJ":["Échec du chargement de l\'historique de financement."],"CK1KXz":["Max"],"CMHmbm":["Glissement"],"CP3D8G":["Progression"],"CW11B+":["Minimum"],"CfRvLF":["Swap failed"],"CgqzuN":["Croisé"],"Cj2Gtd":["Taille"],"CjCD8F":[["0"]," more wallets"],"Cjh38d":["New to wallets?"],"Ck1xL4":["You send"],"Co8gGw":["No active TWAP orders."],"CtByM7":["Connecter le portefeuille"],"CzeOTH":["Wallet (",["0"],")"],"D243f/":["Install a wallet extension to continue"],"D6X5UU":["Market Close"],"DBVcOk":["More intervals"],"DHhJ7s":["Précédent"],"DPfwMq":["Done"],"DWs3bP":["Mark:"],"DXxfpS":["Sélectionner l\'agrégation du carnet d\'ordres"],"DZo9LT":["Mock Wallet (Testing)"],"DabQ8P":["Ordres TWAP"],"DiL7DR":["Perp → Spot"],"Do4l1I":["Edit leverage"],"DzHUbu":["Copy address"],"E8sxZm":["Afficher les positions sur le graphique"],"EE/1QC":["Format for numbers and dates"],"ETkk6Z":["TOKEN"],"Enslfm":["Destination"],"F6pfE9":["Actif"],"FF5wYg":["Sélectionner tous les ordres"],"FKY8dA":["Est. P&L at Limit"],"FLNk0d":["Min order $",["ORDER_MIN_NOTIONAL_USD"]],"FLkCnQ":["You can revoke permissions at any time by registering a new approval with 0% fee rate. Builder codes are processed entirely onchain as part of the fee logic."],"FS+bo3":["Impossible de fermer la position."],"Fdp03t":["on"],"FeRMvR":["Margin · Iso"],"FmemI7":["FUNDING"],"FqmhBo":["No balance on Hyperliquid. Deposit first."],"FxVG/l":["Copied to clipboard"],"G3oEYi":["Sélectionner l\'ordre"],"G6etJA":["Chargement des soldes..."],"GINUX/":["Only you control your funds. No email or password required."],"GLWV4x":["Builder must have at least 100 USDC in perps account value"],"GX8GKD":["Assets"],"GbNWWs":["Slippage tolerance"],"H2Sfhg":["Trigger"],"HJlY85":["Pas de solde"],"HZN+sw":["Trading"],"HZdgTJ":["Select signing mode"],"HfT9T6":["No route available. Try a different amount or asset."],"Hp1l6f":["Current"],"I8LlJA":["TradingView"],"ICCWOn":["Impossible de créer le portefeuille"],"IHIyQG":["positions"],"IJfJAB":["Margin mode"],"IJndUb":["Connect your wallet to register a builder code"],"IV3hWp":["Enter trigger price"],"IZL9b6":["Effet de levier croisé"],"IcSLiu":["Oracle"],"Ieh2cV":["Développer le panneau du compte"],"IoAuJG":["Sending..."],"IwI0rY":["Wrong network"],"IyNxxU":["perp"],"J24FyN":["Bridge"],"J28zul":["Connexion..."],"JHxGP5":["Trader"],"JVvYNb":["Deposit complete"],"JXzPJX":["SL"],"JbH+Me":["Leverage Settings"],"Jc94Bq":["No open positions."],"JfWXib":["Track on LI.FI Explorer"],"JlFcis":["Send"],"Ju4B2M":["Sélectionner le levier"],"JuyzMZ":["Maximum slippage tolerance for market orders"],"KTNWsg":["Withdrawal failed"],"KYAjf3":["Isolé"],"KZHfkR":["Déposer des fonds"],"KaqqlB":["Déposer sur Hyperliquid"],"Ke6k18":["Leverage"],"KeDrPl":["Minimum deposit is 5 USDC"],"KnTbj2":["Afficher les ordres sur le graphique"],"Kp3IPD":["No response from exchange"],"KpAolD":["Failed to update leverage"],"KsqhWn":["Staking"],"KxF048":["Personnalisez votre expérience de trading."],"Kz1TxG":["ouvert"],"L+qiq+":["Marché"],"L4jnDP":["Exécuté"],"LEbOpR":["More details"],"LGuqeh":["Please enter an address"],"LHfqhz":["New deposit"],"LMMGPr":["Submitting..."],"Le70b5":["Plus de pages"],"LhMjLm":["Heure"],"LlsvFY":["Reduce"],"Lx+htK":["Swap submitted"],"Lz5J1x":["Sort by ",["sortLabel"]],"M0biAV":["Preparing your quote..."],"M9fkA0":["Liquidated"],"MLQamJ":["Connectez votre portefeuille pour voir l\'historique des transactions."],"MSSmsu":["To Perp"],"MTq3hP":["24h vol"],"Mim7/r":["Insufficient ",["fromTokenDisplay"]," balance"],"MpLcsV":["Loading balances across all chains..."],"MqA4qt":["Portefeuille"],"MyytBE":["Send tokens to another account on the Hyperliquid L1."],"N40H+G":["All"],"NIDWjN":["SL must be above entry"],"NJNMJX":["TWAP"],"NNJKWa":["Connect your wallet to withdraw funds"],"NNtdiI":["Resets in"],"NQtgSJ":["Failed to register builder code"],"NpuiU+":["Perpétuels"],"NsJrqM":["Marché non prêt"],"O5ycjq":["trades"],"ODVKKZ":["Entrez le prix limite"],"OQGH4C":["limite réd. seul."],"OR475H":["Network"],"OSnZvX":["Change leverage"],"OYsSpP":["Failed to reverse position"],"OZtEcz":["API"],"Oe3M3Y":["Switch to Arbitrum to deposit USDC to Hyperliquid"],"Oid00w":["Enter price range"],"OsyKSt":["Retirer"],"Otdc/Y":["Connectez votre portefeuille pour voir les positions."],"OxPEUg":["En cours d\'utilisation"],"P9cEa2":["30 days"],"PJEzIS":["Bridge to Hyperliquid"],"PLUB/s":["Frais"],"PNsB0A":["Fetching quote..."],"PTna/x":["Intérêt ouvert"],"PTyoXs":["Set SL to ",["p"],"%"],"PWRc/M":["Open positions count"],"PWk+Et":["No spot balances."],"PXH7+k":["Cross → Isolated"],"PZBWpL":["Passer en mode clair"],"PaQ3df":["Enable"],"PcmIvv":["pbs"],"PeO4lq":["Requirements:"],"PelVTv":["Register Builder Code"],"PiH3UR":["Copied!"],"Pl9jiz":["Show Orders"],"Q9fVmw":["Go to Trade"],"QD2PKQ":["End Price"],"QHcLEN":["Connecté"],"QjUEvK":["Tout annuler"],"QlN9wA":["Destination address"],"R68yLX":["Définir TP/SL"],"RRXpo1":["Vente"],"RaWC6b":["Size exceeds position"],"Rb1yph":["Prix liq."],"RnpwtT":["TWAP minutes must be ",["TWAP_MINUTES_MIN"],"-",["TWAP_MINUTES_MAX"]],"RoE+o+":["Réduction uniquement"],"RwFtJj":["Cross Margin Ratio"],"S33tz3":["Non connecté"],"S48xcO":["en attente"],"S9zH+G":["This action must be signed by your main wallet (not an agent/API wallet). The builder must have at least 100 USDC in perps account value."],"SEDVHU":["Chargement des positions..."],"SEoDwA":["Take Limit"],"SHk3ns":["Balance available to trade"],"SJrFO1":["Position close actions"],"SVHeJc":["Direct mode: Sign each order with wallet"],"SWH2Eh":["Time in Force"],"SsGsC0":["Annuler les ordres sélectionnés"],"Svkela":["Aller à la page précédente"],"T/pF0Z":["Retirer des favoris"],"TDa39c":["Prix 24h"],"THTG58":["Select asset to bridge"],"THfjt2":["Cross Account Leverage"],"THmCgW":["Select market"],"TK3J5O":["Send Tokens"],"TK9uys":["Sélectionner le marché ",["coin"]],"TLa4Oo":["Connectez un portefeuille pour gérer les positions."],"TNawll":["Disconnect wallet"],"TNtZN2":["TP"],"TP9/K5":["Token"],"TQ/QV5":["No trading pair available for ",["fromToken"],"/",["toToken"]],"TT0aVH":["Order submitted"],"TbjyhA":["Documentation"],"Tm8JF7":["Connect your wallet to bridge funds"],"Tuc34V":["Confirm Bridge"],"Tz0i8g":["Paramètres"],"U3As+R":["Take Profit"],"U86eEA":["No user address"],"URmyfc":["Details"],"URvngU":["Est. time"],"UXtGFD":["Full Position"],"UwG7db":["What is a wallet?"],"V0ubMJ":["Prise de profit / Stop Loss"],"V3XYw0":["P&L"],"V5khLm":["orders"],"V6ETmV":["To Spot"],"VAZUpd":["Ordre échoué"],"VIwCaD":["Entrée"],"VMLGYS":["Switch to Mainnet"],"VU5rsP":["Number Format"],"VXCk+w":["Chargement des marchés..."],"VYFX4v":["Perpetuals"],"VcaZ5z":["Aucun marché trouvé."],"VgTxu0":["Signataire non prêt"],"VmhkuH":["Account and wallet"],"W1k7eB":["24h"],"W75iLe":["Connectez votre portefeuille pour voir les soldes."],"W9Fxbx":["SL trigger price"],"WISj7i":["Place Limit Close"],"WNMYIN":["annulé"],"WRelac":["Cannot switch to isolated mode with an open position"],"WajXzx":["Est. P&L"],"Wqz0SO":["Low Balance"],"XCIAdj":["RO"],"XFp9Bf":["Scale levels must be ",["SCALE_LEVELS_MIN"],"-",["SCALE_LEVELS_MAX"]],"XTwHmT":["Spot Balances"],"XYLcNv":["Support"],"XbxYxh":["Price grouping"],"Y1W9ip":["Capitaux propres"],"Y9gMWT":["Échec du chargement du carnet d\'ordres."],"YZLEvW":["Processing deposit"],"Yf9lFX":["Ledger"],"YnKdJE":["Marge utilisée"],"YxaAON":["Écart"],"Z3FXyt":["Chargement..."],"ZB/Jm6":["Margin & leverage"],"ZDBdfg":["Enter TP or SL price"],"ZFtwlj":["Transactions"],"ZHJZmo":["Amount (USDC)"],"ZYnwzF":["Disconnected"],"ZmGjjl":["Your bridge is still processing. Funds are safe."],"a/MzGi":["sent to Hyperliquid"],"a7u1N9":["Prix"],"a9q6hE":["waiting"],"aAIQg2":["Appearance"],"aVwGl4":["Portfolio PNL"],"adcjkX":["Limit close order placed"],"amRC+z":["Connect your wallet to view your account overview, positions, and history."],"axyo2z":["Connectez un portefeuille pour gérer les ordres."],"b7Wduj":["achat"],"bMJMhJ":["Erreur WebSocket"],"bSCsJh":["TP/SL"],"bUUVED":["Actif"],"bVPv2S":["Mise à jour en direct"],"bW1xET":["Stop trigger must be above mark"],"bifv6N":["Scale"],"bm80CF":["Connectez votre portefeuille pour voir les ordres TWAP."],"c+VX3P":["Custom TP percentage"],"c+tzs5":["Sign in wallet..."],"c2npeq":["Custom SL percentage"],"cJzJWa":["Transfer failed"],"cXvnJ8":["Glissement des ordres au marché"],"csDS2L":["Disponible"],"cwQAhE":["Failed to switch margin mode"],"d+F6q9":["Created"],"dEgA5A":["Annuler"],"dQGImW":["Soldes du compte"],"daWrYT":["Agent verification failed"],"dcKNhk":["Taking longer than expected"],"dfIw2n":["Valeur en USD"],"dkzoLd":["Chargement de l\'historique de financement..."],"doRJE6":["Set TP/SL for ",["0"]],"drvdT3":["Add TP/SL"],"e/cvV1":["Verifying..."],"e/vgsz":["Total Value"],"e0bpdM":["Symbole inconnu : ",["symbolName"]],"e2oWGN":["No tokens with value found across supported chains"],"eXs0Bt":["Rechercher des marchés..."],"ebwNSs":["Remove ",["displayName"]," from favorites"],"eiZzfX":["Builder codes allow DeFi builders to receive a fee on fills they send on behalf of users. They are set per-order for maximal flexibility."],"ejVYRQ":["From"],"es+Zrf":["Transferring..."],"fBckrr":["Résolution non prise en charge : ",["0"]],"fEC2uI":["Transférez des USDC vers votre compte Hyperliquid pour commencer à trader."],"fOG42Y":["Connect your wallet to start trading on Hyperliquid"],"fVmG6b":["Failed to load balances"],"fYSYwH":["Aucun ordre ouvert."],"fYUNRJ":["Direct"],"fhqG7u":["Connected: ",["0"],"...",["1"]],"fqDzSu":["Taux"],"fsBGk0":["Solde"],"g5PJI8":["OPEN INT"],"g5Xz8D":["Cross Margin"],"gIpxlQ":["Minimum withdrawal is $",["MIN_WITHDRAW_USD"]],"gL/sdV":["Popular"],"gMHkDJ":["Échec du chargement des soldes."],"gVLSxk":["Transaction was rejected"],"ga6DLx":["Your bridge is still processing. Funds are safe — LI.FI routes are always recoverable."],"gbNGPv":["Risk/Reward"],"gsL/Ic":["All cross positions share the same cross margin as collateral. In the event of liquidation, your cross margin balance and any remaining open positions under assets in this mode may be forfeited."],"h+3Zi0":["Chargement du portefeuille..."],"h0gbH9":["Transférez des USDC depuis Arbitrum ou d\'autres chaînes vers votre compte Hyperliquid."],"h3yIJ7":["Other Options"],"h4z/Mq":["Builder Fee Approval"],"hBm2XN":["Trier par ",["0"]],"hJet42":["Aucun paiement de financement trouvé."],"hXzOVo":["Suivant"],"hehnjM":["Amount"],"hgpMHD":["Taille totale"],"hhyc5L":["Glissement maximum autorisé pour les ordres au marché."],"htJlxw":["Trier par ",["headerLabel"]],"i+4Fbp":["Deposit failed"],"i6t9oo":["Échec du chargement de l\'historique TWAP."],"i71+SY":["Position reversed"],"iDNBZe":["Notifications"],"iE2I5G":["Enabling"],"iEQQyu":["Agent"],"iFlxcb":["Sélectionner les marchés favoris"],"iGma9e":["Update failed"],"iH8pgl":["Back"],"iKex+G":["Limit Price (USDC)"],"iSLIjg":["Connect"],"iaX5Av":["Échec du chargement des transactions."],"iflFdl":["Place ",["0"]," Order"],"ifzbyQ":["USDC"],"ipnMKT":[["p"],"%"],"iu7tUI":["Fil d\'Ariane"],"j085nT":["Valeur de l\'ordre"],"jH4vGi":["Net received"],"jJCREz":["Connectez votre portefeuille pour voir les paiements de financement."],"jL9aa6":["Swap direction"],"jX19nk":["Connectez votre portefeuille pour voir les ordres ouverts."],"ja6RDy":["Vendre short"],"jgWsKr":["No trading pair available for <0/>/<1/>"],"jj+8Tx":["Approve a builder to charge fees on orders placed on your behalf. Builder codes allow DeFi applications to receive a portion of trading fees."],"jjXeQg":["No tokens available"],"k1ifdL":["Processing..."],"kM5ZE+":["Confirm in wallet"],"kVjBmF":["Prix limite"],"kWXidS":["Fermer la position"],"kj3M8S":["Déposer"],"l0Fmrm":["Langue d\'affichage"],"l4NGKt":["Aucune exécution trouvée."],"l75CjT":["Yes"],"lB46ke":["MARQUE"],"lD8YU8":["Perps Account"],"lGBGsP":["Failed to connect with custom address"],"lHY6Dg":["spot"],"lOEm/1":["Order filled"],"lUDY9v":["Cancel All"],"lVDmF0":["Trade ClockCounterClockwise"],"lZZl3m":["Stop Loss"],"laDnrx":["Aucun ordre TWAP trouvé."],"lg7+vk":["Side"],"lkcAoj":["Margin"],"llUlxR":["PNL"],"llckC0":["Changement..."],"lm6AkD":["TP Price"],"lobQ3s":["Frais est."],"lvC44O":["Max Fee Rate (%)"],"m+2g06":["will arrive in ~3 min"],"m16xKo":["Add"],"m1eb26":["End Price (USDC)"],"m6RmA/":["Insufficient ",["0"]," balance"],"mCk5iK":["Send failed"],"mE/G/f":["Invalid Ethereum address"],"mSpJjq":["Transfer USDC"],"mTfEdq":["Perps Overview"],"mVfuH4":["Spot → Perp"],"mlQXdF":["Trigger Price"],"mnFamZ":["% exécuté"],"n/qDNz":["Passer en mode sombre"],"nJBD8K":["Métadonnées du marché indisponibles."],"nJTjIr":["Swapping..."],"nQrkW7":["Max 0.1% (10 bps) for perps, 1% (100 bps) for spot. Enter as decimal (e.g., 0.01 for 1 basis point)."],"nVMDTs":["TP must be below entry"],"nVrjlH":["Withdrawable"],"nWIodQ":["Take profit trigger must be below mark"],"nbrdjK":["In Orders"],"njn4bC":["Confirm transaction in your wallet"],"nuBbBr":["Graphique"],"nuqpbC":["Fee Limits:"],"nwcAtu":["Latence :"],"nwtY4N":["Une erreur s\'est produite"],"o+CS/D":["Failed to load order history."],"o21Y+P":["entries"],"o636h+":["Stop Market"],"o7Xo9X":["24H"],"o8uQyS":["Transactions récentes"],"oJv+QI":["Randomize timing"],"oW1G8i":["Your funds were successfully deposited."],"ocovOd":["Prix moy."],"odEUjn":["Advanced order types"],"okV5rM":["Failed to close position"],"ol8emB":["Connect your wallet to view order history."],"olEUh2":["Successful"],"orI3hB":["pagination"],"orv4UV":["Set TP to ",["p"],"%"],"otaTjg":["Achat"],"ovBPCi":["Default"],"p/78dY":["Position"],"p0ngfp":["File d\'ordres"],"p6NueD":["NOUVEAU"],"pBsoKL":["Ajouter aux favoris"],"pHVQlG":["Annuler tous les ordres"],"pI2rip":["Insufficient balance (includes $",["WITHDRAWAL_FEE_USD"]," fee)"],"pIwpkw":["Aller au terminal de trading"],"pUEa02":["Margin mode switched to ",["0"]," for ",["coin"]],"pWF6+F":["Show Executions"],"pY5TE9":["Could not fetch your token balances"],"perfgr":["Funding History"],"pvnfJD":["Dark"],"qCdZab":["Switch to ",["displayName"]," market, long position"],"qJb6G2":["Try Again"],"qRhSY/":["Ordre min. 10 $"],"qX/0av":["Select how margin is allocated for your positions"],"qaeo2F":["Ratio de marge"],"qfS/h8":[["formatted"]," USDC deposited to Hyperliquid"],"qiOIiY":["Acheter"],"qlRrjA":["Set to ",["p"],"%"],"qn4nUK":["Builder Address"],"qnKMyZ":["Paiements de financement"],"quX3ha":["Register Another"],"r+w5Bx":["No balances found"],"r22IQ2":["Time / Total"],"rJe6vw":["7 days"],"rLi46F":["Must be signed by main wallet (not agent/API wallet)"],"rPNGe1":["Take profit trigger must be above mark"],"rPX0Ef":["Minimum withdrawal is $",["0"]],"rfbg3y":["Switch to ",["0"]," market"],"rm3fFf":["Connectez le portefeuille pour voir le compte"],"ruL48O":["Number of Orders"],"ryxkVx":["Afficher les valeurs en USD"],"s/ereB":["actif"],"sFSDo6":["No open positions. Leverage settings appear here when you have active positions."],"sLpZwu":["Annuler l\'ordre TWAP"],"sO+nPg":["Marge req."],"sO0DWk":["Switch between mainnet and testnet. Page will reload."],"sQWzwD":["View on explorer"],"sYnC5v":["Select ",["displayName"]," market"],"scwWyY":["No ledger activity found."],"shmNel":["Entry Price"],"stec1a":["Impossible d\'annuler les ordres."],"szH29R":["Aucun solde trouvé. Déposez des fonds pour commencer à trader."],"t+B4rK":["24h Change"],"t+CM0Z":["Leverage updated to ",["pendingLeverage"],"× for ",["coin"]],"t+Jqww":["Flip transfer direction"],"t+R8+P":["Execution"],"t5EZAB":["Chargement de l\'historique des transactions..."],"tHPbHS":["Classement"],"tMFDem":["No data available"],"tMX8XH":["Select tokens to swap"],"tVJk4q":["Annuler l\'ordre"],"tWiEVe":["Liq Price"],"tZ9ftZ":["Spot"],"tnJl4V":["Withdrawal submitted"],"tp8zc8":["Custom wallet address"],"u4LEQ2":["You are on Testnet"],"uAQUqI":["Statut"],"uBhZmI":["payments"],"uEDo87":["About Builder Codes"],"uWi2Q+":["Barre latérale"],"uZi2t8":["Confirmation screen coming in next slice"],"ufWF2Y":["Coffres"],"ugB2se":["No order history found."],"uoD7vB":["Fee rate must be between 0.001% and 1%"],"uqe4In":["Total Equity"],"v/76pL":["Carnet d\'ordres"],"vH2C/2":["Swap"],"vI9OLW":["Bridge failed"],"vIWDJQ":[["totalSeconds"]," seconds"],"vT/Pj1":["VOL"],"vXIe7J":["Language"],"vXWzNt":["Échec de l\'activation du trading"],"vZW+PE":["Your transaction is being processed"],"vcHBQG":["Show Positions"],"vpjkXb":["Limit Close"],"vrnnn9":["Processing"],"vtJ2yO":["Explorer"],"vyMDXl":["Afficher les lignes de balayage"],"w+oJCW":["will arrive in ~5 min"],"w3hmRj":["En attente du carnet d\'ordres..."],"wDbqhD":["Reverse"],"wDy6uq":["Loading order history..."],"wMHvYH":["Valeur"],"wZVzVU":["Bridge complete"],"wdxz7K":["Source"],"wezJ3v":["Mark Price"],"wq30T4":["Liq."],"wvgF6w":["Order History"],"x+7jw2":["Dépasse la taille max"],"xGVfLh":["Continue"],"xI4H1r":["Switch to ",["displayCoin"]," market"],"xNB0TS":["Vendre"],"xTSCVP":["Builder code registered successfully!"],"xWnh+P":["Start Price (USDC)"],"xgSeuS":["Account Value"],"y/TXy2":["Maintenance Margin"],"y62Dys":["Network fee"],"yQE2r9":["Chargement"],"yRkqG9":["Limite"],"yT7sOL":["Trade via ",["0"]," spot market"],"yVfwJk":["Start and end must differ"],"ydOXwr":["Perp"],"ye6Vnv":["Available:"],"ygCKqB":["Stop"],"ygkMcg":["limite"],"yxnt3y":["Fill status"],"yz7wBu":["Fermer"],"zEGs+1":["Builders"],"zG6eEO":["Connect your wallet to view your account, positions, and start trading."],"zKCXG+":["Trigger Price (USDC)"],"zKJcRr":["Perps: Max 0.1% (10 basis points)"],"zPGNJm":["Transfer"],"zXagFp":["Copier l\'adresse"],"zZmf1N":["Exécuté"],"zdcGo/":["Bridging in progress"],"zjwWvI":["Start Price"],"znqB4T":["Insufficient balance"],"zwWKhA":["Learn more"]}',
),
};
diff --git a/apps/terminal/src/locales/fr/messages.po b/apps/terminal/src/locales/fr/messages.po
index 2ceb1151..7b80a93e 100644
--- a/apps/terminal/src/locales/fr/messages.po
+++ b/apps/terminal/src/locales/fr/messages.po
@@ -80,6 +80,8 @@ msgstr ""
#~ msgid "About Builder Codes"
#~ msgstr ""
+#: src/components/account/account-page.tsx
+#: src/components/trade/header/top-nav.tsx
#: src/components/trade/tradebox/account-panel.tsx
msgid "Account"
msgstr "Compte"
@@ -96,6 +98,10 @@ msgstr "Soldes du compte"
msgid "Account Equity"
msgstr ""
+#: src/components/account/account-pnl-chart.tsx
+#~ msgid "Account Value"
+#~ msgstr ""
+
#: src/components/trade/positions/balances-tab.tsx
#: src/components/trade/positions/orders-tab.tsx
#: src/components/trade/positions/positions-tab.tsx
@@ -160,6 +166,7 @@ msgstr ""
#~ msgid "All cross positions share the same cross margin as collateral. In the event of liquidation, your cross margin balance and any remaining open positions under assets in this mode may be forfeited."
#~ msgstr ""
+#: src/components/account/account-history.tsx
#: src/components/trade/positions/send-modal.tsx
#: src/components/trade/positions/transfer-modal.tsx
#: src/components/trade/tradebox/deposit-modal.tsx
@@ -183,6 +190,10 @@ msgstr ""
#~ msgid "Approve a builder to charge fees on orders placed on your behalf. Builder codes allow DeFi applications to receive a portion of trading fees."
#~ msgstr ""
+#: src/components/account/account-history.tsx
+#: src/components/account/account-history.tsx
+#: src/components/account/account-history.tsx
+#: src/components/account/account-positions.tsx
#: src/components/trade/positions/balances-tab.tsx
#: src/components/trade/positions/funding-tab.tsx
#: src/components/trade/positions/history-tab.tsx
@@ -193,10 +204,14 @@ msgstr ""
msgid "Asset"
msgstr "Actif"
-#: src/components/trade/tradebox/account-panel.tsx
-#~ msgid "Assets"
-#~ msgstr ""
+#: src/components/account/account-page.tsx
+msgid "Assets"
+msgstr ""
+#: src/components/account/account-balances.tsx
+#: src/components/account/account-balances.tsx
+#: src/components/account/account-page.tsx
+#: src/components/account/account-page.tsx
#: src/components/trade/mobile/mobile-balances-tab.tsx
#: src/components/trade/positions/balances-tab.tsx
#: src/components/trade/tradebox/trade-form-fields.tsx
@@ -225,6 +240,7 @@ msgstr ""
#~ msgid "Back to asset selection"
#~ msgstr ""
+#: src/components/account/account-page.tsx
#: src/components/trade/tradebox/account-panel.tsx
msgid "Balance"
msgstr "Solde"
@@ -249,6 +265,7 @@ msgstr ""
#~ msgid "Breadcrumb"
#~ msgstr "Fil d'Ariane"
+#: src/components/account/account-page.tsx
#: src/components/trade/mobile/mobile-account-view.tsx
#: src/components/trade/tradebox/account-panel.tsx
#: src/components/trade/tradebox/account-panel.tsx
@@ -370,6 +387,10 @@ msgstr "Annulation..."
#~ msgid "cancelled"
#~ msgstr "annulé"
+#: src/components/account/account-leverage-settings.tsx
+msgid "Cannot switch to isolated mode with an open position"
+msgstr ""
+
#: src/components/trade/tradebox/margin-mode-modal.tsx
msgid "Cannot switch to Isolated mode with an open position. Close your position first."
msgstr ""
@@ -403,14 +424,15 @@ msgstr "Fermeture..."
#~ msgid "Collapse account panel"
#~ msgstr "Réduire le panneau du compte"
-#: src/components/trade/order-entry/order-entry-panel.tsx
-#~ msgid "Coming soon"
-#~ msgstr "Bientôt disponible"
+#: src/components/account/account-pnl-chart.tsx
+msgid "Coming soon"
+msgstr "Bientôt disponible"
#: src/components/trade/positions/twap-tab.tsx
#~ msgid "completed"
#~ msgstr "terminé"
+#: src/components/account/account-leverage-settings.tsx
#: src/components/trade/positions/position-tpsl-modal.tsx
#: src/components/trade/tradebox/bridge-tab.tsx
#: src/components/trade/tradebox/leverage-control.tsx
@@ -451,6 +473,8 @@ msgstr ""
#~ msgid "Connect a wallet to manage positions."
#~ msgstr "Connectez un portefeuille pour gérer les positions."
+#: src/components/account/account-page.tsx
+#: src/components/account/account-page.tsx
#: src/components/trade/components/wallet-modal.tsx
#: src/components/trade/header/user-menu.tsx
#: src/components/trade/mobile/mobile-account-view.tsx
@@ -511,6 +535,10 @@ msgstr "Connectez votre portefeuille pour voir l'historique des transactions."
msgid "Connect your wallet to view TWAP orders."
msgstr "Connectez votre portefeuille pour voir les ordres TWAP."
+#: src/components/account/account-page.tsx
+msgid "Connect your wallet to view your account overview, positions, and history."
+msgstr ""
+
#: src/components/trade/mobile/mobile-account-view.tsx
msgid "Connect your wallet to view your account, positions, and start trading."
msgstr ""
@@ -567,6 +595,10 @@ msgstr ""
msgid "Created"
msgstr ""
+#: src/components/account/account-leverage-settings.tsx
+#: src/components/account/account-leverage-settings.tsx
+#: src/components/account/account-positions.tsx
+#: src/components/account/account-positions.tsx
#: src/components/trade/positions/positions-tab.tsx
#: src/components/trade/tradebox/margin-mode-modal.tsx
#: src/components/trade/tradebox/margin-mode-modal.tsx
@@ -574,13 +606,17 @@ msgstr ""
msgid "Cross"
msgstr "Croisé"
+#: src/components/account/account-leverage-settings.tsx
+msgid "Cross → Isolated"
+msgstr ""
+
#: src/components/trade/tradebox/account-panel.tsx
msgid "Cross Account Leverage"
msgstr ""
-#: src/components/trade/tradebox/account-panel.tsx
-#~ msgid "Cross Leverage"
-#~ msgstr "Effet de levier croisé"
+#: src/components/account/account-page.tsx
+msgid "Cross Leverage"
+msgstr "Effet de levier croisé"
#: src/components/trade/mobile/mobile-account-view.tsx
msgid "Cross Margin"
@@ -618,6 +654,7 @@ msgstr ""
msgid "Default"
msgstr ""
+#: src/components/account/account-page.tsx
#: src/components/trade/header/top-nav.tsx
#: src/components/trade/mobile/mobile-nav-drawer.tsx
#: src/components/trade/tradebox/account-panel.tsx
@@ -666,6 +703,10 @@ msgstr ""
msgid "Destination address"
msgstr ""
+#: src/components/account/account-history.tsx
+msgid "Details"
+msgstr ""
+
#: src/components/trade/order-entry/order-entry-panel.tsx
#~ msgid "Direct"
#~ msgstr ""
@@ -715,6 +756,11 @@ msgstr ""
msgid "Each position uses only its allocated margin. If the margin ratio reaches 100%, the position is liquidated. Margin can be added or removed individually."
msgstr ""
+#: src/components/account/account-leverage-settings.tsx
+#: src/components/account/account-leverage-settings.tsx
+msgid "Edit leverage"
+msgstr ""
+
#: src/components/trade/positions/positions-tab.tsx
msgid "Edit TP/SL"
msgstr ""
@@ -765,6 +811,12 @@ msgstr ""
msgid "Enter trigger price"
msgstr ""
+#: src/components/account/account-history.tsx
+msgid "entries"
+msgstr ""
+
+#: src/components/account/account-positions.tsx
+#: src/components/account/account-positions.tsx
#: src/components/trade/mobile/mobile-positions-tab.tsx
#: src/components/trade/positions/positions-tab.tsx
msgid "Entry"
@@ -848,6 +900,7 @@ msgstr "Échec de l'activation du trading"
msgid "Failed to load balances"
msgstr ""
+#: src/components/account/account-balances.tsx
#: src/components/trade/mobile/mobile-balances-tab.tsx
#: src/components/trade/positions/balances-tab.tsx
msgid "Failed to load balances."
@@ -872,6 +925,7 @@ msgstr "Échec du chargement du carnet d'ordres."
msgid "Failed to load order history."
msgstr ""
+#: src/components/account/account-positions.tsx
#: src/components/trade/mobile/mobile-positions-tab.tsx
#: src/components/trade/positions/positions-tab.tsx
msgid "Failed to load positions."
@@ -898,10 +952,16 @@ msgstr "Échec du chargement des transactions."
msgid "Failed to reverse position"
msgstr ""
-#: src/components/trade/order-entry/order-entry-panel.tsx
-#~ msgid "Failed to switch margin mode"
-#~ msgstr ""
+#: src/components/account/account-leverage-settings.tsx
+msgid "Failed to switch margin mode"
+msgstr ""
+
+#: src/components/account/account-leverage-settings.tsx
+msgid "Failed to update leverage"
+msgstr ""
+#: src/components/account/account-history.tsx
+#: src/components/account/account-history.tsx
#: src/components/trade/mobile/mobile-history-tab.tsx
#: src/components/trade/positions/history-tab.tsx
msgid "Fee"
@@ -923,9 +983,10 @@ msgstr "Frais"
#~ msgid "Fetching quote..."
#~ msgstr ""
+#. placeholder {0}: formatPrice(markPx, { szDecimals: market?.szDecimals })
#: src/components/trade/mobile/mobile-trade-view.tsx
-#~ msgid "Fill limit price with mark price {0}"
-#~ msgstr ""
+msgid "Fill limit price with mark price {0}"
+msgstr ""
#: src/components/trade/tradebox/bridge-tab.tsx
#: src/components/trade/tradebox/bridge-tab.tsx
@@ -958,6 +1019,7 @@ msgstr ""
#~ msgid "Full Position"
#~ msgstr ""
+#: src/components/account/account-history.tsx
#: src/components/trade/chart/token-selector-columns.ts
#: src/components/trade/chart/token-selector.tsx
#: src/components/trade/mobile/mobile-positions-tab.tsx
@@ -1003,14 +1065,17 @@ msgstr ""
msgid "Go to trading terminal"
msgstr "Aller au terminal de trading"
+#: src/components/account/account-balances.tsx
#: src/components/trade/mobile/mobile-balances-tab.tsx
#: src/components/trade/positions/balances-tab.tsx
msgid "Hide small"
msgstr ""
-#: src/components/trade/tradebox/account-panel.tsx
-#~ msgid "In Orders"
-#~ msgstr ""
+#: src/components/account/account-balances.tsx
+#: src/components/account/account-balances.tsx
+#: src/components/account/account-page.tsx
+msgid "In Orders"
+msgstr ""
#: src/components/trade/positions/balances-tab.tsx
#~ msgid "In Use"
@@ -1059,6 +1124,10 @@ msgstr ""
msgid "Invalid Ethereum address"
msgstr ""
+#: src/components/account/account-leverage-settings.tsx
+#: src/components/account/account-leverage-settings.tsx
+#: src/components/account/account-positions.tsx
+#: src/components/account/account-positions.tsx
#: src/components/trade/positions/positions-tab.tsx
#: src/components/trade/tradebox/margin-mode-modal.tsx
#: src/components/trade/tradebox/margin-mode-modal.tsx
@@ -1066,6 +1135,10 @@ msgstr ""
msgid "Isolated"
msgstr "Isolé"
+#: src/components/account/account-leverage-settings.tsx
+msgid "Isolated → Cross"
+msgstr ""
+
#: src/components/trade/footer/footer-bar.tsx
#~ msgid "Latency:"
#~ msgstr "Latence :"
@@ -1079,12 +1152,27 @@ msgstr "Classement"
msgid "Learn more"
msgstr ""
+#: src/components/account/account-history.tsx
+msgid "Ledger"
+msgstr ""
+
+#: src/components/account/account-leverage-settings.tsx
+#: src/components/account/account-positions.tsx
+#: src/components/account/account-positions.tsx
#: src/components/trade/tradebox/leverage-control.tsx
#: src/components/trade/tradebox/leverage-control.tsx
#: src/components/trade/tradebox/margin-mode-modal.tsx
msgid "Leverage"
msgstr ""
+#: src/components/account/account-leverage-settings.tsx
+msgid "Leverage Settings"
+msgstr ""
+
+#: src/components/account/account-leverage-settings.tsx
+msgid "Leverage updated to {pendingLeverage}× for {coin}"
+msgstr ""
+
#: src/components/trade/components/global-settings-dialog.tsx
#~ msgid "Light"
#~ msgstr ""
@@ -1126,10 +1214,16 @@ msgstr "Prix limite"
msgid "Liq"
msgstr "Liq."
+#: src/components/account/account-positions.tsx
+#: src/components/account/account-positions.tsx
+msgid "Liq Price"
+msgstr ""
+
#: src/components/trade/tradebox/order-summary.tsx
msgid "Liq. Price"
msgstr "Prix liq."
+#: src/components/account/account-history.tsx
#: src/components/trade/mobile/mobile-history-tab.tsx
#: src/components/trade/positions/history-tab.tsx
msgid "Liquidated"
@@ -1184,6 +1278,8 @@ msgstr "Chargement du portefeuille..."
msgid "Loading..."
msgstr "Chargement..."
+#: src/components/account/account-positions.tsx
+#: src/components/account/account-positions.tsx
#: src/components/trade/mobile/mobile-positions-tab.tsx
#: src/components/trade/positions/position-tpsl-modal.tsx
msgid "Long"
@@ -1202,6 +1298,8 @@ msgstr ""
#~ msgid "Manage your risk on individual positions by restricting the amount of margin allocated to each. If the margin ratio of an isolated position reaches 100%, the position will be liquidated. Margin can be added or removed to individual positions in this mode."
#~ msgstr ""
+#: src/components/account/account-positions.tsx
+#: src/components/account/account-positions.tsx
#: src/components/trade/mobile/mobile-positions-tab.tsx
#: src/components/trade/positions/positions-tab.tsx
msgid "Margin"
@@ -1219,22 +1317,29 @@ msgstr ""
msgid "Margin mode"
msgstr ""
-#: src/components/trade/tradebox/margin-mode-dialog.tsx
-#~ msgid "Margin Mode"
-#~ msgstr ""
+#: src/components/account/account-leverage-settings.tsx
+msgid "Margin Mode"
+msgstr ""
-#: src/components/trade/tradebox/account-panel.tsx
-#~ msgid "Margin Ratio"
-#~ msgstr "Ratio de marge"
+#. placeholder {0}: newMode === "cross" ? t`Cross` : t`Isolated`
+#: src/components/account/account-leverage-settings.tsx
+msgid "Margin mode switched to {0} for {coin}"
+msgstr ""
+
+#: src/components/account/account-page.tsx
+msgid "Margin Ratio"
+msgstr "Ratio de marge"
#: src/components/trade/tradebox/order-summary.tsx
msgid "Margin Req."
msgstr "Marge req."
-#: src/components/trade/tradebox/account-panel.tsx
-#~ msgid "Margin Used"
-#~ msgstr "Marge utilisée"
+#: src/components/account/account-page.tsx
+msgid "Margin Used"
+msgstr "Marge utilisée"
+#: src/components/account/account-positions.tsx
+#: src/components/account/account-positions.tsx
#: src/components/trade/mobile/mobile-positions-tab.tsx
#: src/components/trade/positions/positions-tab.tsx
msgid "Mark"
@@ -1442,16 +1547,25 @@ msgstr ""
msgid "No balances found. Deposit funds to start trading."
msgstr "Aucun solde trouvé. Déposez des fonds pour commencer à trader."
+#: src/components/account/account-pnl-chart.tsx
+#~ msgid "No data available"
+#~ msgstr ""
+
#: src/components/trade/mobile/mobile-history-tab.tsx
#: src/components/trade/positions/history-tab.tsx
msgid "No fills found."
msgstr "Aucune exécution trouvée."
+#: src/components/account/account-history.tsx
#: src/components/trade/mobile/mobile-funding-tab.tsx
#: src/components/trade/positions/funding-tab.tsx
msgid "No funding payments found."
msgstr "Aucun paiement de financement trouvé."
+#: src/components/account/account-history.tsx
+msgid "No ledger activity found."
+msgstr ""
+
#: src/lib/errors/definitions/market.ts
msgid "No mark price"
msgstr "Pas de prix mark"
@@ -1469,6 +1583,15 @@ msgstr "Aucun marché trouvé."
msgid "No open orders."
msgstr "Aucun ordre ouvert."
+#: src/components/account/account-positions.tsx
+msgid "No open positions."
+msgstr ""
+
+#: src/components/account/account-leverage-settings.tsx
+msgid "No open positions. Leverage settings appear here when you have active positions."
+msgstr ""
+
+#: src/components/account/account-history.tsx
#: src/components/trade/mobile/mobile-orders-history-tab.tsx
#: src/components/trade/positions/orders-history-tab.tsx
msgid "No order history found."
@@ -1482,6 +1605,10 @@ msgstr ""
msgid "No route available. Try a different amount or asset."
msgstr ""
+#: src/components/account/account-balances.tsx
+msgid "No spot balances."
+msgstr ""
+
#: src/components/trade/components/token-selector-dropdown.tsx
#~ msgid "No tokens available"
#~ msgstr ""
@@ -1490,6 +1617,10 @@ msgstr ""
msgid "No tokens with value found across supported chains"
msgstr ""
+#: src/components/account/account-history.tsx
+msgid "No trades found."
+msgstr ""
+
#: src/components/trade/order-entry/swap-asset-modal.tsx
#~ msgid "No trading pair available for {fromToken}/{toToken}"
#~ msgstr ""
@@ -1567,6 +1698,10 @@ msgstr "Intérêt ouvert"
msgid "Open Orders"
msgstr "Ordres ouverts"
+#: src/components/account/account-positions.tsx
+msgid "Open Positions"
+msgstr ""
+
#: src/components/trade/positions/positions-tab.tsx
#~ msgid "Open positions count"
#~ msgstr ""
@@ -1609,13 +1744,14 @@ msgstr ""
msgid "Order Value"
msgstr "Valeur de l'ordre"
+#: src/components/account/account-history.tsx
#: src/components/trade/positions/orders-history-tab.tsx
msgid "orders"
msgstr ""
-#: src/components/trade/positions/orders-history-tab.tsx
-#~ msgid "Orders"
-#~ msgstr ""
+#: src/components/account/account-history.tsx
+msgid "Orders"
+msgstr ""
#: src/components/trade/tradebox/advanced-order-dropdown.tsx
#: src/components/trade/tradebox/advanced-order-dropdown.tsx
@@ -1639,10 +1775,15 @@ msgstr "Page non trouvée"
#~ msgid "pagination"
#~ msgstr "pagination"
+#: src/components/account/account-history.tsx
#: src/components/trade/positions/funding-tab.tsx
msgid "Payment"
msgstr "Paiement"
+#: src/components/account/account-history.tsx
+msgid "payments"
+msgstr ""
+
#: src/components/trade/tradebox/order-toast.tsx
msgid "pending"
msgstr "en attente"
@@ -1658,11 +1799,17 @@ msgstr "en attente"
msgid "Perp"
msgstr ""
+#: src/components/account/account-history.tsx
+msgid "Perp → Spot"
+msgstr ""
+
#: src/components/trade/mobile/mobile-balances-tab.tsx
#: src/components/trade/positions/balances-tab.tsx
msgid "Perpetuals"
msgstr ""
+#: src/components/account/account-page.tsx
+#: src/components/account/account-page.tsx
#: src/components/trade/tradebox/account-panel.tsx
msgid "Perps"
msgstr "Perpétuels"
@@ -1692,6 +1839,8 @@ msgstr ""
msgid "Please enter an address"
msgstr ""
+#: src/components/account/account-history.tsx
+#: src/components/account/account-positions.tsx
#: src/components/trade/positions/balances-tab.tsx
#: src/components/trade/positions/history-tab.tsx
#: src/components/trade/positions/positions-tab.tsx
@@ -1707,6 +1856,11 @@ msgstr "PNL"
msgid "Portfolio"
msgstr "Portefeuille"
+#: src/components/account/account-pnl-chart.tsx
+msgid "Portfolio PNL"
+msgstr ""
+
+#: src/components/account/account-history.tsx
#: src/components/trade/mobile/mobile-funding-tab.tsx
#: src/components/trade/positions/funding-tab.tsx
#: src/components/trade/tradebox/trade-form-fields.tsx
@@ -1742,6 +1896,8 @@ msgstr ""
#~ msgid "Previous"
#~ msgstr "Précédent"
+#: src/components/account/account-history.tsx
+#: src/components/account/account-history.tsx
#: src/components/trade/chart/token-selector-columns.ts
#: src/components/trade/chart/token-selector.tsx
#: src/components/trade/mobile/mobile-history-tab.tsx
@@ -1790,6 +1946,7 @@ msgstr ""
msgid "Randomize timing"
msgstr ""
+#: src/components/account/account-history.tsx
#: src/components/trade/components/spot-swap-modal.tsx
#: src/components/trade/mobile/mobile-funding-tab.tsx
#: src/components/trade/positions/funding-tab.tsx
@@ -1948,6 +2105,7 @@ msgstr "Vendre"
#~ msgid "Sell Short"
#~ msgstr "Vendre short"
+#: src/components/account/account-page.tsx
#: src/components/trade/mobile/mobile-balances-tab.tsx
#: src/components/trade/positions/balances-tab.tsx
#: src/components/trade/positions/send-modal.tsx
@@ -2003,6 +2161,8 @@ msgstr ""
msgid "Settings"
msgstr "Paramètres"
+#: src/components/account/account-positions.tsx
+#: src/components/account/account-positions.tsx
#: src/components/trade/mobile/mobile-positions-tab.tsx
#: src/components/trade/positions/position-tpsl-modal.tsx
msgid "Short"
@@ -2048,9 +2208,9 @@ msgstr ""
#~ msgid "Show Values in USD"
#~ msgstr "Afficher les valeurs en USD"
-#: src/components/trade/positions/position-tpsl-modal.tsx
-#~ msgid "Side"
-#~ msgstr ""
+#: src/components/account/account-history.tsx
+msgid "Side"
+msgstr ""
#: src/components/ui/sidebar.tsx
#~ msgid "Sidebar"
@@ -2068,6 +2228,10 @@ msgstr "Signataire non prêt"
#~ msgid "Signing..."
#~ msgstr "Signature..."
+#: src/components/account/account-history.tsx
+#: src/components/account/account-history.tsx
+#: src/components/account/account-positions.tsx
+#: src/components/account/account-positions.tsx
#: src/components/trade/mobile/mobile-history-tab.tsx
#: src/components/trade/mobile/mobile-orders-history-tab.tsx
#: src/components/trade/mobile/mobile-orders-tab.tsx
@@ -2153,6 +2317,8 @@ msgstr ""
#~ msgid "spot"
#~ msgstr "spot"
+#: src/components/account/account-page.tsx
+#: src/components/account/account-page.tsx
#: src/components/trade/header/top-nav.tsx
#: src/components/trade/mobile/mobile-balances-tab.tsx
#: src/components/trade/mobile/mobile-nav-drawer.tsx
@@ -2163,10 +2329,18 @@ msgstr ""
msgid "Spot"
msgstr "Spot"
+#: src/components/account/account-history.tsx
+msgid "Spot → Perp"
+msgstr ""
+
#: src/components/trade/positions/send-modal.tsx
msgid "Spot Account"
msgstr ""
+#: src/components/account/account-balances.tsx
+msgid "Spot Balances"
+msgstr ""
+
#: src/components/pages/builder-page.tsx
#~ msgid "Spot: Max 1% (100 basis points)"
#~ msgstr ""
@@ -2192,6 +2366,7 @@ msgstr ""
#~ msgid "Start Price (USDC)"
#~ msgstr ""
+#: src/components/account/account-history.tsx
#: src/components/trade/positions/orders-history-tab.tsx
msgid "Status"
msgstr "Statut"
@@ -2363,6 +2538,10 @@ msgstr "La page que vous recherchez n'existe pas."
msgid "TIF"
msgstr ""
+#: src/components/account/account-history.tsx
+#: src/components/account/account-history.tsx
+#: src/components/account/account-history.tsx
+#: src/components/account/account-history.tsx
#: src/components/trade/mobile/mobile-funding-tab.tsx
#: src/components/trade/orderbook/trades-panel.tsx
#: src/components/trade/positions/funding-tab.tsx
@@ -2405,16 +2584,26 @@ msgstr ""
msgid "Toggle size mode"
msgstr "Basculer le mode de taille"
+#: src/components/account/account-balances.tsx
+msgid "Token"
+msgstr ""
+
#: src/components/trade/market-overview.tsx
msgid "TOKEN"
msgstr ""
+#: src/components/account/account-balances.tsx
+#: src/components/account/account-balances.tsx
#: src/components/trade/mobile/mobile-balances-tab.tsx
#: src/components/trade/orderbook/orderbook-panel.tsx
#: src/components/trade/positions/balances-tab.tsx
msgid "Total"
msgstr "Total"
+#: src/components/account/account-page.tsx
+msgid "Total Equity"
+msgstr ""
+
#: src/components/trade/positions/twap-tab.tsx
#~ msgid "Total Size"
#~ msgstr "Taille totale"
@@ -2423,9 +2612,9 @@ msgstr "Total"
msgid "Total time"
msgstr ""
-#: src/components/trade/tradebox/account-panel.tsx
-#~ msgid "Total Value"
-#~ msgstr ""
+#: src/components/account/account-page.tsx
+msgid "Total Value"
+msgstr ""
#: src/components/trade/positions/orders-tab.tsx
#~ msgid "TP"
@@ -2476,10 +2665,12 @@ msgstr "Historique des transactions"
msgid "Trade via {0} spot market"
msgstr ""
+#: src/components/account/account-history.tsx
#: src/components/trade/positions/history-tab.tsx
msgid "trades"
msgstr ""
+#: src/components/account/account-history.tsx
#: src/components/trade/orderbook/orderbook-panel.tsx
msgid "Trades"
msgstr "Transactions"
@@ -2496,6 +2687,7 @@ msgstr ""
msgid "Transaction was rejected"
msgstr ""
+#: src/components/account/account-page.tsx
#: src/components/trade/positions/transfer-modal.tsx
#: src/components/trade/tradebox/deposit-modal.tsx
#: src/components/trade/tradebox/deposit-modal.tsx
@@ -2550,6 +2742,8 @@ msgstr ""
msgid "TWAP Orders"
msgstr "Ordres TWAP"
+#: src/components/account/account-history.tsx
+#: src/components/account/account-history.tsx
#: src/components/trade/mobile/mobile-orders-history-tab.tsx
#: src/components/trade/positions/history-tab.tsx
#: src/components/trade/positions/orders-history-tab.tsx
@@ -2579,6 +2773,8 @@ msgstr "Symbole inconnu : {symbolName}"
msgid "Unrealized P&L"
msgstr ""
+#: src/components/account/account-page.tsx
+#: src/components/account/account-page.tsx
#: src/components/trade/tradebox/account-panel.tsx
msgid "Unrealized PNL"
msgstr "PNL non réalisé"
@@ -2588,6 +2784,7 @@ msgstr "PNL non réalisé"
msgid "Unsupported resolution: {0}"
msgstr "Résolution non prise en charge : {0}"
+#: src/components/account/account-leverage-settings.tsx
#: src/components/trade/tradebox/leverage-control.tsx
#: src/components/trade/tradebox/margin-mode-modal.tsx
msgid "Update failed"
@@ -2604,6 +2801,7 @@ msgstr ""
msgid "Updated live"
msgstr "Mise à jour en direct"
+#: src/components/account/account-balances.tsx
#: src/components/trade/positions/balances-tab.tsx
msgid "USD Value"
msgstr "Valeur en USD"
@@ -2680,6 +2878,7 @@ msgstr "Portefeuille non connecté"
msgid "will arrive in ~5 min"
msgstr ""
+#: src/components/account/account-page.tsx
#: src/components/trade/tradebox/account-panel.tsx
#: src/components/trade/tradebox/account-panel.tsx
#: src/components/trade/tradebox/deposit-modal.tsx
@@ -2689,6 +2888,10 @@ msgstr ""
msgid "Withdraw"
msgstr "Retirer"
+#: src/components/account/account-page.tsx
+msgid "Withdrawable"
+msgstr ""
+
#: src/components/trade/tradebox/deposit-modal.tsx
msgid "Withdrawal failed"
msgstr ""
diff --git a/apps/terminal/src/locales/hi/messages.js b/apps/terminal/src/locales/hi/messages.js
index e50207a9..aea1b796 100644
--- a/apps/terminal/src/locales/hi/messages.js
+++ b/apps/terminal/src/locales/hi/messages.js
@@ -1,5 +1,5 @@
/*eslint-disable*/ module.exports = {
messages: JSON.parse(
- '{"++OGth":["Deposit successful"],"+1S7b1":["वॉलेट कनेक्ट नहीं है"],"+6YAwo":["selected"],"+8WrGc":["कोई वॉलेट नहीं मिला"],"+F8cLG":["मोबाइल साइडबार दिखाता है।"],"+JE0m7":["पोजीशन लोड करने में विफल।"],"+K0AvT":["डिस्कनेक्ट करें"],"+N2Rqk":["कोई सक्रिय पोजीशन नहीं।"],"+ONfBR":["PRICE"],"+ZV3i5":["खुले ऑर्डर लोड करने में विफल।"],"+b7T3G":["Updated"],"+hA/UM":["खुले ऑर्डर"],"+nuEh/":["Estimated time"],"+w/hP1":["चार्ट पर निष्पादन दिखाएं"],"+xnyQO":["साइज दर्ज करें"],"+z3YcL":["Position actions"],"+zy2Nq":["प्रकार"],"/2hibY":["चयनित रद्द करें"],"/AsMcZ":["Enabling..."],"/IX/7x":["Other"],"/PvdTS":["Gas (",["0"],")"],"/TT0Oq":["ऑरेकल"],"/cF7Rs":["वॉल्यूम"],"/gY2VH":[["0"]," से फ़िल्टर करें"],"/jQctM":["To"],"/kXBrK":["Total time"],"/mfICu":["Fees"],"/tPR7R":["Builder Fee"],"0+Iw6C":["Duration (Minutes)"],"0+X+sh":["Spot Account"],"0LZtsz":["Take Market"],"0Mx4+k":["No trading pair available for ",["fromTokenDisplay"],"/",["toTokenDisplay"]],"0P2gFy":["आप जो पृष्ठ ढूंढ रहे हैं वह मौजूद नहीं है।"],"0QDjxt":["Balance:"],"0RrIzN":["टोकन चुनें"],"0Xlr0L":["Minimum deposit is ",["0"]," USDC"],"0exG4Q":["फंडिंग"],"0z59Ep":["बेचें"],"1BkDWk":["लॉन्ग खरीदें"],"1QfxQT":["खारिज करें"],"1UzENP":["No"],"1ZMjyh":["The builder at ",["0"],"...",["1"]," can now charge up to ",["maxFeeRate"],"% fee on orders placed on your behalf."],"1h+RBg":["Orders"],"1njn7W":["Light"],"29VNqC":["Unknown error"],"2Ea5Vz":["ट्रेड इतिहास"],"2FYpfJ":["और"],"2M2s7z":["ट्रेडिंग सक्षम करें"],"2PsTzL":["पूर्ण"],"2tQrK2":["Arbitrum पर स्विच करें"],"3/vMct":["A crypto wallet lets you store and manage your digital assets securely."],"30ZPad":["सक्रिय पोजीशन"],"3CHbH/":["SL Price"],"3DtJpz":["Stop Limit"],"3IkQgP":["Secure & Private"],"3Siwmw":["और विकल्प"],"3UZudY":["Stop trigger must be below mark"],"3fPjUY":["Pro"],"3oHIhx":["TP must be above entry"],"4+HkLv":["Show Values in Quote Asset"],"40lLFI":["अगले पृष्ठ पर जाएं"],"42w2ly":["OI"],"46Sm8O":["गैस:"],"4HtGBb":["MAX"],"4J2s8f":["रद्द हो रहा है..."],"4Kyst7":["Agent mode: Orders signed automatically (fast)"],"4NuBK4":["ट्रेड की प्रतीक्षा..."],"4Vzb+4":["बंद हो रहा है..."],"54QqdM":["साइन हो रहा है..."],"5FsTU5":["वॉलेट क्लाइंट तैयार नहीं है"],"5Omwef":["Scale level below min notional"],"5joj8M":["Transaction breakdown"],"5oE2C+":[["0"]," से क्रमबद्ध"],"5u8fWJ":["Back to asset selection"],"5xKxZd":["TP trigger price"],"5zbbOn":["Invalid amount"],"60m4P5":["24H VOL"],"621rYf":["भुगतान"],"63wHTy":["Edit TP/SL"],"69b7aE":["Open command menu"],"6Aih4U":["Offline"],"6gRgw8":["Retry"],"6jVqpA":["ट्रेड इतिहास लोड करने में विफल।"],"6poLt9":["साइडबार टॉगल करें"],"6vyJOd":["Deposit from any chain to your Hyperliquid account"],"6zAIUU":["Cannot switch to Isolated mode with an open position. Close your position first."],"72c5Qo":["कुल"],"77Rx22":["खाता पैनल छोटा करें"],"7L01XJ":["कार्रवाई"],"7Lv7j5":["Margin Mode"],"7VpPHA":["Confirm"],"7l15X4":["विफल"],"88cUW+":["You receive"],"8F1i42":["पृष्ठ नहीं मिला"],"8Fu1E7":["साइज मोड टॉगल करें"],"8Itoo3":["Unrealized P&L"],"8LkAxv":["SL must be below entry"],"8SNccp":["Switch to ",["displayName"]," market, short position"],"8gcijf":["Insufficient <0/> balance"],"8hvfaA":["Position closed"],"8yhvii":["Mid"],"997z0L":["Spot: Max 1% (100 basis points)"],"9ACh/c":["कोई मार्क प्राइस नहीं"],"9SBcQj":["All cross positions share the same cross margin as collateral. In the event of liquidation, your cross margin balance and any remaining open positions may be forfeited."],"9lH5ev":["खुले ऑर्डर लोड हो रहे हैं..."],"9mRTyg":["ब्लॉक:"],"9qnvU0":["Switch to ",["displayName"]," market"],"9ykF9H":["Hide small"],"9zb2WA":["Connecting"],"A+q/Is":["बाज़ार"],"A1taO8":["Search"],"AArF6S":["Move USDC between your Perp and Spot accounts."],"AEGM8s":["Failed to copy"],"AErIoZ":["Manage your risk on individual positions by restricting the amount of margin allocated to each. If the margin ratio of an isolated position reaches 100%, the position will be liquidated. Margin can be added or removed to individual positions in this mode."],"AGWjPT":[["p"],"% सेट करें"],"AUYALh":["जल्द आ रहा है"],"AUahCv":["Insufficient funds for gas"],"AeXO77":["खाता"],"B5AKvo":["मार्क"],"BOppjS":["कोई मार्केट नहीं"],"BSj/hz":["धन जोड़ें"],"BvlAGq":["अवास्तविक PNL"],"BxBZCk":["Each position uses only its allocated margin. If the margin ratio reaches 100%, the position is liquidated. Margin can be added or removed individually."],"C2TJN3":["TWAP ऑर्डर लोड हो रहे हैं..."],"CF1zwJ":["फंडिंग इतिहास लोड करने में विफल।"],"CK1KXz":["अधिकतम"],"CMHmbm":["स्लिपेज"],"CP3D8G":["प्रगति"],"CW11B+":["Minimum"],"CfRvLF":["Swap failed"],"CgqzuN":["क्रॉस"],"Cj2Gtd":["आकार"],"Cjh38d":["New to wallets?"],"Ck1xL4":["You send"],"Co8gGw":["No active TWAP orders."],"CtByM7":["वॉलेट कनेक्ट करें"],"CzeOTH":["Wallet (",["0"],")"],"D243f/":["Install a wallet extension to continue"],"D6X5UU":["Market Close"],"DBVcOk":["More intervals"],"DHhJ7s":["पिछला"],"DPfwMq":["Done"],"DWs3bP":["Mark:"],"DXxfpS":["ऑर्डर बुक एग्रीगेशन चुनें"],"DZo9LT":["Mock Wallet (Testing)"],"DabQ8P":["TWAP ऑर्डर"],"E8sxZm":["चार्ट पर पोजीशन दिखाएं"],"EE/1QC":["Format for numbers and dates"],"ETkk6Z":["TOKEN"],"Enslfm":["Destination"],"F6pfE9":["सक्रिय"],"FF5wYg":["सभी ऑर्डर चुनें"],"FKY8dA":["Est. P&L at Limit"],"FLNk0d":["Min order $",["ORDER_MIN_NOTIONAL_USD"]],"FLkCnQ":["You can revoke permissions at any time by registering a new approval with 0% fee rate. Builder codes are processed entirely onchain as part of the fee logic."],"FS+bo3":["पोजीशन बंद करने में असमर्थ।"],"Fdp03t":["on"],"FmemI7":["FUNDING"],"FqmhBo":["No balance on Hyperliquid. Deposit first."],"FxVG/l":["Copied to clipboard"],"G3oEYi":["ऑर्डर चुनें"],"G6etJA":["शेष लोड हो रहा है..."],"GINUX/":["Only you control your funds. No email or password required."],"GLWV4x":["Builder must have at least 100 USDC in perps account value"],"GX8GKD":["Assets"],"GbNWWs":["Slippage tolerance"],"H2Sfhg":["Trigger"],"HJlY85":["कोई बैलेंस नहीं"],"HZN+sw":["Trading"],"HZdgTJ":["Select signing mode"],"HfT9T6":["No route available. Try a different amount or asset."],"Hp1l6f":["Current"],"I8LlJA":["TradingView"],"ICCWOn":["वॉलेट नहीं बना सका"],"IJfJAB":["Margin mode"],"IJndUb":["Connect your wallet to register a builder code"],"IV3hWp":["Enter trigger price"],"IZL9b6":["क्रॉस लीवरेज"],"IcSLiu":["Oracle"],"Ieh2cV":["खाता पैनल विस्तृत करें"],"IoAuJG":["Sending..."],"IwI0rY":["Wrong network"],"IyNxxU":["परप"],"J24FyN":["Bridge"],"J28zul":["कनेक्ट हो रहा है..."],"JHxGP5":["ट्रेड"],"JVvYNb":["Deposit complete"],"JXzPJX":["SL"],"JfWXib":["Track on LI.FI Explorer"],"JlFcis":["Send"],"Ju4B2M":["लीवरेज चुनें"],"JuyzMZ":["Maximum slippage tolerance for market orders"],"KTNWsg":["Withdrawal failed"],"KYAjf3":["आइसोलेटेड"],"KZHfkR":["धन जमा करें"],"KaqqlB":["Hyperliquid पर जमा करें"],"Ke6k18":["Leverage"],"KeDrPl":["Minimum deposit is 5 USDC"],"KnTbj2":["चार्ट पर ऑर्डर दिखाएं"],"Kp3IPD":["No response from exchange"],"KsqhWn":["स्टेकिंग"],"KxF048":["अपने ट्रेडिंग अनुभव को अनुकूलित करें।"],"Kz1TxG":["खुला"],"L+qiq+":["बाज़ार"],"L4jnDP":["निष्पादित"],"LEbOpR":["More details"],"LHfqhz":["New deposit"],"LMMGPr":["Submitting..."],"Le70b5":["और पृष्ठ"],"LhMjLm":["समय"],"LlsvFY":["Reduce"],"Lx+htK":["Swap submitted"],"Lz5J1x":["Sort by ",["sortLabel"]],"M0biAV":["Preparing your quote..."],"M9fkA0":["Liquidated"],"MLQamJ":["ट्रेड इतिहास देखने के लिए अपना वॉलेट कनेक्ट करें।"],"MSSmsu":["To Perp"],"MTq3hP":["24h vol"],"Mim7/r":["Insufficient ",["fromTokenDisplay"]," balance"],"MpLcsV":["Loading balances across all chains..."],"MqA4qt":["पोर्टफोलियो"],"MyytBE":["Send tokens to another account on the Hyperliquid L1."],"N40H+G":["All"],"NIDWjN":["SL must be above entry"],"NJNMJX":["TWAP"],"NNJKWa":["Connect your wallet to withdraw funds"],"NQtgSJ":["Failed to register builder code"],"NpuiU+":["परप्स"],"NsJrqM":["मार्केट तैयार नहीं"],"ODVKKZ":["लिमिट प्राइस दर्ज करें"],"OQGH4C":["लिमिट आरओ"],"OR475H":["Network"],"OSnZvX":["Change leverage"],"OYsSpP":["Failed to reverse position"],"OZtEcz":["API"],"Oe3M3Y":["Switch to Arbitrum to deposit USDC to Hyperliquid"],"Oid00w":["Enter price range"],"OsyKSt":["निकासी"],"Otdc/Y":["पोजीशन देखने के लिए अपना वॉलेट कनेक्ट करें।"],"OxPEUg":["उपयोग में"],"PJEzIS":["Bridge to Hyperliquid"],"PLUB/s":["शुल्क"],"PNsB0A":["Fetching quote..."],"PTna/x":["ओपन इंटरेस्ट"],"PTyoXs":["Set SL to ",["p"],"%"],"PWRc/M":["Open positions count"],"PZBWpL":["लाइट मोड में बदलें"],"PaQ3df":["Enable"],"PcmIvv":["बीपीएस"],"PeO4lq":["Requirements:"],"PelVTv":["Register Builder Code"],"PiH3UR":["Copied!"],"Pl9jiz":["Show Orders"],"QD2PKQ":["End Price"],"QHcLEN":["कनेक्टेड"],"QjUEvK":["सभी रद्द करें"],"R68yLX":["TP/SL सेट करें"],"RRXpo1":["शॉर्ट"],"RaWC6b":["Size exceeds position"],"Rb1yph":["लिक्विडेशन प्राइस"],"RnpwtT":["TWAP minutes must be ",["TWAP_MINUTES_MIN"],"-",["TWAP_MINUTES_MAX"]],"RoE+o+":["केवल कम करें"],"S33tz3":["कनेक्टेड नहीं"],"S48xcO":["लंबित"],"S9zH+G":["This action must be signed by your main wallet (not an agent/API wallet). The builder must have at least 100 USDC in perps account value."],"SEDVHU":["पोजीशन लोड हो रहे हैं..."],"SEoDwA":["Take Limit"],"SJrFO1":["Position close actions"],"SVHeJc":["Direct mode: Sign each order with wallet"],"SWH2Eh":["Time in Force"],"SsGsC0":["चयनित ऑर्डर रद्द करें"],"Svkela":["पिछले पृष्ठ पर जाएं"],"T/pF0Z":["पसंदीदा से हटाएं"],"TDa39c":["24घंटे मूल्य"],"THTG58":["Select asset to bridge"],"THmCgW":["Select market"],"TK3J5O":["Send Tokens"],"TK9uys":[["coin"]," बाज़ार चुनें"],"TLa4Oo":["पोजीशन प्रबंधित करने के लिए वॉलेट कनेक्ट करें।"],"TNtZN2":["TP"],"TQ/QV5":["No trading pair available for ",["fromToken"],"/",["toToken"]],"TT0aVH":["Order submitted"],"TbjyhA":["दस्तावेज़"],"Tm8JF7":["Connect your wallet to bridge funds"],"Tuc34V":["Confirm Bridge"],"Tz0i8g":["सेटिंग्स"],"U3As+R":["Take Profit"],"U86eEA":["No user address"],"URvngU":["Est. time"],"UXtGFD":["Full Position"],"UwG7db":["What is a wallet?"],"V0ubMJ":["प्रॉफिट लें / स्टॉप लॉस"],"V3XYw0":["P&L"],"V6ETmV":["To Spot"],"VAZUpd":["ऑर्डर विफल"],"VIwCaD":["प्रवेश"],"VMLGYS":["Switch to Mainnet"],"VU5rsP":["Number Format"],"VXCk+w":["बाज़ार लोड हो रहे हैं..."],"VYFX4v":["Perpetuals"],"VcaZ5z":["कोई बाज़ार नहीं मिला।"],"VgTxu0":["साइनर तैयार नहीं"],"VmhkuH":["Account and wallet"],"W1k7eB":["24h"],"W75iLe":["शेष देखने के लिए अपना वॉलेट कनेक्ट करें।"],"W9Fxbx":["SL trigger price"],"WISj7i":["Place Limit Close"],"WNMYIN":["रद्द"],"WajXzx":["Est. P&L"],"WhSRZw":["This row answers: “What is the selected market doing right now?” — mark price, 24h move, oracle, volume, open interest, and funding. Pick a layout that balances scan speed, density, and calm."],"Wqz0SO":["Low Balance"],"XCIAdj":["RO"],"XFp9Bf":["Scale levels must be ",["SCALE_LEVELS_MIN"],"-",["SCALE_LEVELS_MAX"]],"XYLcNv":["सहायता"],"XbxYxh":["Price grouping"],"Y1W9ip":["इक्विटी"],"Y9gMWT":["ऑर्डर बुक लोड करने में विफल।"],"YZLEvW":["Processing deposit"],"YnKdJE":["उपयोग किया गया मार्जिन"],"YxaAON":["स्प्रेड"],"Z3FXyt":["लोड हो रहा है..."],"ZB/Jm6":["Margin & leverage"],"ZDBdfg":["Enter TP or SL price"],"ZFtwlj":["ट्रेड्स"],"ZHJZmo":["Amount (USDC)"],"ZYnwzF":["Disconnected"],"ZmGjjl":["Your bridge is still processing. Funds are safe."],"a/MzGi":["sent to Hyperliquid"],"a7u1N9":["मूल्य"],"a9q6hE":["waiting"],"aAIQg2":["Appearance"],"adcjkX":["Limit close order placed"],"axyo2z":["ऑर्डर प्रबंधित करने के लिए वॉलेट कनेक्ट करें।"],"b7Wduj":["खरीदें"],"bMJMhJ":["WebSocket त्रुटि"],"bSCsJh":["TP/SL"],"bUUVED":["संपत्ति"],"bVPv2S":["लाइव अपडेट"],"bW1xET":["Stop trigger must be above mark"],"bifv6N":["Scale"],"bm80CF":["TWAP ऑर्डर देखने के लिए अपना वॉलेट कनेक्ट करें।"],"c+VX3P":["Custom TP percentage"],"c+tzs5":["Sign in wallet..."],"c2npeq":["Custom SL percentage"],"cJzJWa":["Transfer failed"],"cXvnJ8":["मार्केट ऑर्डर स्लिपेज"],"csDS2L":["उपलब्ध"],"cwQAhE":["Failed to switch margin mode"],"d+F6q9":["Created"],"dEgA5A":["रद्द करें"],"dQGImW":["खाता शेष"],"daWrYT":["Agent verification failed"],"dcKNhk":["Taking longer than expected"],"dfIw2n":["USD मूल्य"],"dkzoLd":["फंडिंग इतिहास लोड हो रहा है..."],"doRJE6":["Set TP/SL for ",["0"]],"drvdT3":["Add TP/SL"],"e/cvV1":["Verifying..."],"e/vgsz":["Total Value"],"e0bpdM":["अज्ञात प्रतीक: ",["symbolName"]],"e2oWGN":["No tokens with value found across supported chains"],"eXs0Bt":["बाज़ार खोजें..."],"ebwNSs":["Remove ",["displayName"]," from favorites"],"eiZzfX":["Builder codes allow DeFi builders to receive a fee on fills they send on behalf of users. They are set per-order for maximal flexibility."],"ejVYRQ":["From"],"es+Zrf":["Transferring..."],"fBckrr":["असमर्थित रेजोल्यूशन: ",["0"]],"fEC2uI":["ट्रेडिंग शुरू करने के लिए अपने Hyperliquid खाते में USDC ट्रांसफर करें।"],"fOG42Y":["Connect your wallet to start trading on Hyperliquid"],"fVmG6b":["Failed to load balances"],"fYSYwH":["कोई खुला ऑर्डर नहीं।"],"fYUNRJ":["Direct"],"fhqG7u":["Connected: ",["0"],"...",["1"]],"fqDzSu":["दर"],"fsBGk0":["शेष"],"g5PJI8":["OPEN INT"],"gIpxlQ":["Minimum withdrawal is $",["MIN_WITHDRAW_USD"]],"gL/sdV":["Popular"],"gMHkDJ":["शेष लोड करने में विफल।"],"gVLSxk":["Transaction was rejected"],"ga6DLx":["Your bridge is still processing. Funds are safe — LI.FI routes are always recoverable."],"gbNGPv":["Risk/Reward"],"gsL/Ic":["All cross positions share the same cross margin as collateral. In the event of liquidation, your cross margin balance and any remaining open positions under assets in this mode may be forfeited."],"h+3Zi0":["वॉलेट लोड हो रहा है..."],"h0gbH9":["Arbitrum या अन्य चेन से अपने Hyperliquid खाते में USDC ब्रिज करें।"],"h3yIJ7":["Other Options"],"h4z/Mq":["Builder Fee Approval"],"hBm2XN":[["0"]," से क्रमबद्ध करें"],"hJet42":["कोई फंडिंग भुगतान नहीं मिला।"],"hXzOVo":["अगला"],"hehnjM":["Amount"],"hgpMHD":["कुल आकार"],"hhyc5L":["मार्केट ऑर्डर के लिए अधिकतम स्लिपेज।"],"htJlxw":[["headerLabel"]," से क्रमबद्ध करें"],"i+4Fbp":["Deposit failed"],"i6t9oo":["TWAP इतिहास लोड करने में विफल।"],"i71+SY":["Position reversed"],"iDNBZe":["सूचनाएं"],"iE2I5G":["Enabling"],"iEQQyu":["Agent"],"iFlxcb":["पसंदीदा बाज़ार चुनें"],"iGma9e":["Update failed"],"iH8pgl":["Back"],"iKex+G":["Limit Price (USDC)"],"iSLIjg":["Connect"],"iaX5Av":["ट्रेड लोड करने में विफल।"],"iflFdl":["Place ",["0"]," Order"],"ifzbyQ":["USDC"],"ipnMKT":[["p"],"%"],"iu7tUI":["ब्रेडक्रम्ब"],"j085nT":["ऑर्डर वैल्यू"],"jH4vGi":["Net received"],"jJCREz":["फंडिंग भुगतान देखने के लिए अपना वॉलेट कनेक्ट करें।"],"jL9aa6":["Swap direction"],"jX19nk":["खुले ऑर्डर देखने के लिए अपना वॉलेट कनेक्ट करें।"],"ja6RDy":["शॉर्ट बेचें"],"jgWsKr":["No trading pair available for <0/>/<1/>"],"jj+8Tx":["Approve a builder to charge fees on orders placed on your behalf. Builder codes allow DeFi applications to receive a portion of trading fees."],"jjXeQg":["No tokens available"],"k1ifdL":["Processing..."],"kM5ZE+":["Confirm in wallet"],"kVjBmF":["लिमिट प्राइस"],"kWXidS":["पोजीशन बंद करें"],"kj3M8S":["जमा करें"],"l0Fmrm":["प्रदर्शन भाषा"],"l4NGKt":["कोई निष्पादन नहीं मिला।"],"l75CjT":["Yes"],"lB46ke":["मार्क"],"lD8YU8":["Perps Account"],"lHY6Dg":["स्पॉट"],"lOEm/1":["Order filled"],"lUDY9v":["Cancel All"],"lVDmF0":["Trade ClockCounterClockwise"],"lZZl3m":["Stop Loss"],"laDnrx":["कोई TWAP ऑर्डर नहीं मिला।"],"lg7+vk":["Side"],"lkcAoj":["Margin"],"llUlxR":["PNL"],"llckC0":["स्विच हो रहा है..."],"lm6AkD":["TP Price"],"lobQ3s":["अनु. शुल्क"],"lvC44O":["Max Fee Rate (%)"],"m+2g06":["will arrive in ~3 min"],"m16xKo":["Add"],"m1eb26":["End Price (USDC)"],"m6RmA/":["Insufficient ",["0"]," balance"],"mCk5iK":["Send failed"],"mE/G/f":["Invalid Ethereum address"],"mSpJjq":["Transfer USDC"],"mcOcEg":["Market stats row — layout options"],"mlQXdF":["Trigger Price"],"mnFamZ":["% पूर्ण"],"n/qDNz":["डार्क मोड में बदलें"],"nJBD8K":["बाज़ार मेटाडेटा उपलब्ध नहीं है।"],"nJTjIr":["Swapping..."],"nQrkW7":["Max 0.1% (10 bps) for perps, 1% (100 bps) for spot. Enter as decimal (e.g., 0.01 for 1 basis point)."],"nVMDTs":["TP must be below entry"],"nWIodQ":["Take profit trigger must be below mark"],"nbrdjK":["In Orders"],"njn4bC":["Confirm transaction in your wallet"],"nuBbBr":["चार्ट"],"nuqpbC":["Fee Limits:"],"nwcAtu":["लेटेंसी:"],"nwtY4N":["कुछ गलत हो गया"],"o+CS/D":["Failed to load order history."],"o636h+":["Stop Market"],"o7Xo9X":["24H"],"o8uQyS":["हाल के ट्रेड"],"oJv+QI":["Randomize timing"],"oW1G8i":["Your funds were successfully deposited."],"ocovOd":["औसत मूल्य"],"odEUjn":["Advanced order types"],"okV5rM":["Failed to close position"],"ol8emB":["Connect your wallet to view order history."],"olEUh2":["Successful"],"orI3hB":["पृष्ठांकन"],"orv4UV":["Set TP to ",["p"],"%"],"otaTjg":["लॉन्ग"],"ovBPCi":["Default"],"p/78dY":["पोजीशन"],"p0ngfp":["ऑर्डर कतार"],"p6NueD":["नया"],"pBsoKL":["पसंदीदा में जोड़ें"],"pHVQlG":["सभी ऑर्डर रद्द करें"],"pI2rip":["Insufficient balance (includes $",["WITHDRAWAL_FEE_USD"]," fee)"],"pIwpkw":["ट्रेडिंग टर्मिनल पर जाएं"],"pWF6+F":["Show Executions"],"pY5TE9":["Could not fetch your token balances"],"perfgr":["Funding History"],"pvnfJD":["Dark"],"qCdZab":["Switch to ",["displayName"]," market, long position"],"qJb6G2":["Try Again"],"qRhSY/":["न्यूनतम ऑर्डर $10"],"qX/0av":["Select how margin is allocated for your positions"],"qaeo2F":["मार्जिन अनुपात"],"qfS/h8":[["formatted"]," USDC deposited to Hyperliquid"],"qiOIiY":["खरीदें"],"qlRrjA":["Set to ",["p"],"%"],"qn4nUK":["Builder Address"],"qnKMyZ":["फंडिंग भुगतान"],"quX3ha":["Register Another"],"r+w5Bx":["No balances found"],"r22IQ2":["Time / Total"],"rLi46F":["Must be signed by main wallet (not agent/API wallet)"],"rPNGe1":["Take profit trigger must be above mark"],"rPX0Ef":["Minimum withdrawal is $",["0"]],"rfbg3y":["Switch to ",["0"]," market"],"rm3fFf":["खाता देखने के लिए वॉलेट कनेक्ट करें"],"ruL48O":["Number of Orders"],"ryxkVx":["USD में मान दिखाएं"],"s/ereB":["सक्रिय"],"sLpZwu":["TWAP ऑर्डर रद्द करें"],"sO+nPg":["मार्जिन आवश्यक"],"sO0DWk":["Switch between mainnet and testnet. Page will reload."],"sQWzwD":["View on explorer"],"sYnC5v":["Select ",["displayName"]," market"],"shmNel":["Entry Price"],"stec1a":["ऑर्डर रद्द करने में असमर्थ।"],"szH29R":["कोई शेष नहीं मिला। ट्रेडिंग शुरू करने के लिए धन जमा करें।"],"t+B4rK":["24h Change"],"t+R8+P":["Execution"],"t5EZAB":["ट्रेड इतिहास लोड हो रहा है..."],"tHPbHS":["लीडरबोर्ड"],"tMX8XH":["Select tokens to swap"],"tVJk4q":["ऑर्डर रद्द करें"],"tZ9ftZ":["स्पॉट"],"tnJl4V":["Withdrawal submitted"],"u4LEQ2":["You are on Testnet"],"uAQUqI":["स्थिति"],"uEDo87":["About Builder Codes"],"uWi2Q+":["साइडबार"],"uZi2t8":["Confirmation screen coming in next slice"],"ufWF2Y":["वॉल्ट"],"ugB2se":["No order history found."],"uoD7vB":["Fee rate must be between 0.001% and 1%"],"v/76pL":["ऑर्डर बुक"],"vH2C/2":["Swap"],"vI9OLW":["Bridge failed"],"vIWDJQ":[["totalSeconds"]," seconds"],"vT/Pj1":["वॉल्यूम"],"vXIe7J":["Language"],"vXWzNt":["ट्रेडिंग सक्षम करने में विफल"],"vZW+PE":["Your transaction is being processed"],"vcHBQG":["Show Positions"],"vpjkXb":["Limit Close"],"vrnnn9":["Processing"],"vtJ2yO":["Explorer"],"vyMDXl":["स्कैनलाइन दिखाएं"],"w+oJCW":["will arrive in ~5 min"],"w3hmRj":["ऑर्डर बुक की प्रतीक्षा..."],"wDbqhD":["Reverse"],"wDy6uq":["Loading order history..."],"wMHvYH":["वैल्यू"],"wZVzVU":["Bridge complete"],"wdxz7K":["Source"],"wezJ3v":["Mark Price"],"wq30T4":["लिक्विडेशन"],"wvgF6w":["Order History"],"x+7jw2":["अधिकतम साइज से अधिक"],"xGVfLh":["Continue"],"xI4H1r":["Switch to ",["displayCoin"]," market"],"xNB0TS":["बेचें"],"xTSCVP":["Builder code registered successfully!"],"xWnh+P":["Start Price (USDC)"],"y62Dys":["Network fee"],"yQE2r9":["लोड हो रहा है"],"yRkqG9":["लिमिट"],"yT7sOL":["Trade via ",["0"]," spot market"],"yVfwJk":["Start and end must differ"],"ydOXwr":["Perp"],"ye6Vnv":["Available:"],"ygCKqB":["स्टॉप"],"ygkMcg":["लिमिट"],"yxnt3y":["Fill status"],"yz7wBu":["बंद करें"],"zEGs+1":["Builders"],"zKCXG+":["Trigger Price (USDC)"],"zKJcRr":["Perps: Max 0.1% (10 basis points)"],"zPGNJm":["Transfer"],"zXagFp":["पता कॉपी करें"],"zZmf1N":["पूर्ण"],"zdcGo/":["Bridging in progress"],"zjwWvI":["Start Price"],"znqB4T":["Insufficient balance"],"zwWKhA":["Learn more"]}',
+ '{"++OGth":["Deposit successful"],"+1S7b1":["वॉलेट कनेक्ट नहीं है"],"+6YAwo":["selected"],"+8WrGc":["कोई वॉलेट नहीं मिला"],"+F8cLG":["मोबाइल साइडबार दिखाता है।"],"+JE0m7":["पोजीशन लोड करने में विफल।"],"+K0AvT":["डिस्कनेक्ट करें"],"+N2Rqk":["कोई सक्रिय पोजीशन नहीं।"],"+N7uug":["1 year"],"+ONfBR":["PRICE"],"+ZV3i5":["खुले ऑर्डर लोड करने में विफल।"],"+b7T3G":["Updated"],"+hA/UM":["खुले ऑर्डर"],"+nuEh/":["Estimated time"],"+w/hP1":["चार्ट पर निष्पादन दिखाएं"],"+xnyQO":["साइज दर्ज करें"],"+z3YcL":["Position actions"],"+zy2Nq":["प्रकार"],"/2hibY":["चयनित रद्द करें"],"/AsMcZ":["Enabling..."],"/G76GM":["Your current open position on this market"],"/IX/7x":["Other"],"/PvdTS":["Gas (",["0"],")"],"/TT0Oq":["ऑरेकल"],"/cF7Rs":["वॉल्यूम"],"/gY2VH":[["0"]," से फ़िल्टर करें"],"/jQctM":["To"],"/kXBrK":["Total time"],"/mfICu":["Fees"],"/tPR7R":["Builder Fee"],"0+Iw6C":["Duration (Minutes)"],"0+X+sh":["Spot Account"],"0LZtsz":["Take Market"],"0Mx4+k":["No trading pair available for ",["fromTokenDisplay"],"/",["toTokenDisplay"]],"0P2gFy":["आप जो पृष्ठ ढूंढ रहे हैं वह मौजूद नहीं है।"],"0QDjxt":["Balance:"],"0RrIzN":["टोकन चुनें"],"0Xlr0L":["Minimum deposit is ",["0"]," USDC"],"0cIV8s":["Open Positions"],"0exG4Q":["फंडिंग"],"0z59Ep":["बेचें"],"1BkDWk":["लॉन्ग खरीदें"],"1PJ7wL":["Confirm Close"],"1QfxQT":["खारिज करें"],"1UzENP":["No"],"1ZMjyh":["The builder at ",["0"],"...",["1"]," can now charge up to ",["maxFeeRate"],"% fee on orders placed on your behalf."],"1h+RBg":["Orders"],"1njn7W":["Light"],"29VNqC":["Unknown error"],"2Ea5Vz":["ट्रेड इतिहास"],"2FYpfJ":["और"],"2M2s7z":["ट्रेडिंग सक्षम करें"],"2OWSzg":["Account Equity"],"2PsTzL":["पूर्ण"],"2tQrK2":["Arbitrum पर स्विच करें"],"3/vMct":["A crypto wallet lets you store and manage your digital assets securely."],"30ZPad":["सक्रिय पोजीशन"],"3CHbH/":["SL Price"],"3DtJpz":["Stop Limit"],"3IkQgP":["Secure & Private"],"3Siwmw":["और विकल्प"],"3UZudY":["Stop trigger must be below mark"],"3fPjUY":["Pro"],"3oHIhx":["TP must be above entry"],"3q1W5Q":["Isolated → Cross"],"4+HkLv":["Show Values in Quote Asset"],"40lLFI":["अगले पृष्ठ पर जाएं"],"42w2ly":["OI"],"46Sm8O":["गैस:"],"4HtGBb":["MAX"],"4J2s8f":["रद्द हो रहा है..."],"4Kyst7":["Agent mode: Orders signed automatically (fast)"],"4NuBK4":["ट्रेड की प्रतीक्षा..."],"4Vzb+4":["बंद हो रहा है..."],"4avvba":["No trades found."],"54QqdM":["साइन हो रहा है..."],"5FsTU5":["वॉलेट क्लाइंट तैयार नहीं है"],"5Omwef":["Scale level below min notional"],"5joj8M":["Transaction breakdown"],"5oE2C+":[["0"]," से क्रमबद्ध"],"5u8fWJ":["Back to asset selection"],"5xKxZd":["TP trigger price"],"5zbbOn":["Invalid amount"],"60m4P5":["24H VOL"],"621rYf":["भुगतान"],"63wHTy":["Edit TP/SL"],"69b7aE":["Open command menu"],"6Aih4U":["Offline"],"6fpdpR":["Show fewer wallets"],"6gRgw8":["Retry"],"6jVqpA":["ट्रेड इतिहास लोड करने में विफल।"],"6poLt9":["साइडबार टॉगल करें"],"6vyJOd":["Deposit from any chain to your Hyperliquid account"],"6zAIUU":["Cannot switch to Isolated mode with an open position. Close your position first."],"72c5Qo":["कुल"],"77Rx22":["खाता पैनल छोटा करें"],"7L01XJ":["कार्रवाई"],"7Lv7j5":["Margin Mode"],"7VpPHA":["Confirm"],"7l15X4":["विफल"],"88cUW+":["You receive"],"8F1i42":["पृष्ठ नहीं मिला"],"8Fu1E7":["साइज मोड टॉगल करें"],"8Itoo3":["Unrealized P&L"],"8LkAxv":["SL must be below entry"],"8SNccp":["Switch to ",["displayName"]," market, short position"],"8WrNUb":["TIF"],"8gcijf":["Insufficient <0/> balance"],"8hvfaA":["Position closed"],"8yhvii":["Mid"],"997z0L":["Spot: Max 1% (100 basis points)"],"9ACh/c":["कोई मार्क प्राइस नहीं"],"9SBcQj":["All cross positions share the same cross margin as collateral. In the event of liquidation, your cross margin balance and any remaining open positions may be forfeited."],"9lH5ev":["खुले ऑर्डर लोड हो रहे हैं..."],"9mRTyg":["ब्लॉक:"],"9qnvU0":["Switch to ",["displayName"]," market"],"9ykF9H":["Hide small"],"9zb2WA":["Connecting"],"A+q/Is":["बाज़ार"],"A1taO8":["Search"],"AArF6S":["Move USDC between your Perp and Spot accounts."],"AEGM8s":["Failed to copy"],"AErIoZ":["Manage your risk on individual positions by restricting the amount of margin allocated to each. If the margin ratio of an isolated position reaches 100%, the position will be liquidated. Margin can be added or removed to individual positions in this mode."],"AGWjPT":[["p"],"% सेट करें"],"AUYALh":["जल्द आ रहा है"],"AUahCv":["Insufficient funds for gas"],"AeXO77":["खाता"],"B5AKvo":["मार्क"],"BOppjS":["कोई मार्केट नहीं"],"BSj/hz":["धन जोड़ें"],"BvlAGq":["अवास्तविक PNL"],"BxBZCk":["Each position uses only its allocated margin. If the margin ratio reaches 100%, the position is liquidated. Margin can be added or removed individually."],"C2TJN3":["TWAP ऑर्डर लोड हो रहे हैं..."],"C8kdVg":["Fill limit price with mark price ",["0"]],"CF1zwJ":["फंडिंग इतिहास लोड करने में विफल।"],"CK1KXz":["अधिकतम"],"CMHmbm":["स्लिपेज"],"CP3D8G":["प्रगति"],"CW11B+":["Minimum"],"CfRvLF":["Swap failed"],"CgqzuN":["क्रॉस"],"Cj2Gtd":["आकार"],"CjCD8F":[["0"]," more wallets"],"Cjh38d":["New to wallets?"],"Ck1xL4":["You send"],"Co8gGw":["No active TWAP orders."],"CtByM7":["वॉलेट कनेक्ट करें"],"CzeOTH":["Wallet (",["0"],")"],"D243f/":["Install a wallet extension to continue"],"D6X5UU":["Market Close"],"DBVcOk":["More intervals"],"DHhJ7s":["पिछला"],"DPfwMq":["Done"],"DWs3bP":["Mark:"],"DXxfpS":["ऑर्डर बुक एग्रीगेशन चुनें"],"DZo9LT":["Mock Wallet (Testing)"],"DabQ8P":["TWAP ऑर्डर"],"DiL7DR":["Perp → Spot"],"Do4l1I":["Edit leverage"],"DzHUbu":["Copy address"],"E8sxZm":["चार्ट पर पोजीशन दिखाएं"],"EE/1QC":["Format for numbers and dates"],"ETkk6Z":["TOKEN"],"Enslfm":["Destination"],"F6pfE9":["सक्रिय"],"FF5wYg":["सभी ऑर्डर चुनें"],"FKY8dA":["Est. P&L at Limit"],"FLNk0d":["Min order $",["ORDER_MIN_NOTIONAL_USD"]],"FLkCnQ":["You can revoke permissions at any time by registering a new approval with 0% fee rate. Builder codes are processed entirely onchain as part of the fee logic."],"FS+bo3":["पोजीशन बंद करने में असमर्थ।"],"Fdp03t":["on"],"FeRMvR":["Margin · Iso"],"FmemI7":["FUNDING"],"FqmhBo":["No balance on Hyperliquid. Deposit first."],"FxVG/l":["Copied to clipboard"],"G3oEYi":["ऑर्डर चुनें"],"G6etJA":["शेष लोड हो रहा है..."],"GINUX/":["Only you control your funds. No email or password required."],"GLWV4x":["Builder must have at least 100 USDC in perps account value"],"GX8GKD":["Assets"],"GbNWWs":["Slippage tolerance"],"H2Sfhg":["Trigger"],"HJlY85":["कोई बैलेंस नहीं"],"HZN+sw":["Trading"],"HZdgTJ":["Select signing mode"],"HfT9T6":["No route available. Try a different amount or asset."],"Hp1l6f":["Current"],"I8LlJA":["TradingView"],"ICCWOn":["वॉलेट नहीं बना सका"],"IHIyQG":["positions"],"IJfJAB":["Margin mode"],"IJndUb":["Connect your wallet to register a builder code"],"IV3hWp":["Enter trigger price"],"IZL9b6":["क्रॉस लीवरेज"],"IcSLiu":["Oracle"],"Ieh2cV":["खाता पैनल विस्तृत करें"],"IoAuJG":["Sending..."],"IwI0rY":["Wrong network"],"IyNxxU":["परप"],"J24FyN":["Bridge"],"J28zul":["कनेक्ट हो रहा है..."],"JHxGP5":["ट्रेड"],"JVvYNb":["Deposit complete"],"JXzPJX":["SL"],"JbH+Me":["Leverage Settings"],"Jc94Bq":["No open positions."],"JfWXib":["Track on LI.FI Explorer"],"JlFcis":["Send"],"Ju4B2M":["लीवरेज चुनें"],"JuyzMZ":["Maximum slippage tolerance for market orders"],"KTNWsg":["Withdrawal failed"],"KYAjf3":["आइसोलेटेड"],"KZHfkR":["धन जमा करें"],"KaqqlB":["Hyperliquid पर जमा करें"],"Ke6k18":["Leverage"],"KeDrPl":["Minimum deposit is 5 USDC"],"KnTbj2":["चार्ट पर ऑर्डर दिखाएं"],"Kp3IPD":["No response from exchange"],"KpAolD":["Failed to update leverage"],"KsqhWn":["स्टेकिंग"],"KxF048":["अपने ट्रेडिंग अनुभव को अनुकूलित करें।"],"Kz1TxG":["खुला"],"L+qiq+":["बाज़ार"],"L4jnDP":["निष्पादित"],"LEbOpR":["More details"],"LGuqeh":["Please enter an address"],"LHfqhz":["New deposit"],"LMMGPr":["Submitting..."],"Le70b5":["और पृष्ठ"],"LhMjLm":["समय"],"LlsvFY":["Reduce"],"Lx+htK":["Swap submitted"],"Lz5J1x":["Sort by ",["sortLabel"]],"M0biAV":["Preparing your quote..."],"M9fkA0":["Liquidated"],"MLQamJ":["ट्रेड इतिहास देखने के लिए अपना वॉलेट कनेक्ट करें।"],"MSSmsu":["To Perp"],"MTq3hP":["24h vol"],"Mim7/r":["Insufficient ",["fromTokenDisplay"]," balance"],"MpLcsV":["Loading balances across all chains..."],"MqA4qt":["पोर्टफोलियो"],"MyytBE":["Send tokens to another account on the Hyperliquid L1."],"N40H+G":["All"],"NIDWjN":["SL must be above entry"],"NJNMJX":["TWAP"],"NNJKWa":["Connect your wallet to withdraw funds"],"NNtdiI":["Resets in"],"NQtgSJ":["Failed to register builder code"],"NpuiU+":["परप्स"],"NsJrqM":["मार्केट तैयार नहीं"],"O5ycjq":["trades"],"ODVKKZ":["लिमिट प्राइस दर्ज करें"],"OQGH4C":["लिमिट आरओ"],"OR475H":["Network"],"OSnZvX":["Change leverage"],"OYsSpP":["Failed to reverse position"],"OZtEcz":["API"],"Oe3M3Y":["Switch to Arbitrum to deposit USDC to Hyperliquid"],"Oid00w":["Enter price range"],"OsyKSt":["निकासी"],"Otdc/Y":["पोजीशन देखने के लिए अपना वॉलेट कनेक्ट करें।"],"OxPEUg":["उपयोग में"],"P9cEa2":["30 days"],"PJEzIS":["Bridge to Hyperliquid"],"PLUB/s":["शुल्क"],"PNsB0A":["Fetching quote..."],"PTna/x":["ओपन इंटरेस्ट"],"PTyoXs":["Set SL to ",["p"],"%"],"PWRc/M":["Open positions count"],"PWk+Et":["No spot balances."],"PXH7+k":["Cross → Isolated"],"PZBWpL":["लाइट मोड में बदलें"],"PaQ3df":["Enable"],"PcmIvv":["बीपीएस"],"PeO4lq":["Requirements:"],"PelVTv":["Register Builder Code"],"PiH3UR":["Copied!"],"Pl9jiz":["Show Orders"],"Q9fVmw":["Go to Trade"],"QD2PKQ":["End Price"],"QHcLEN":["कनेक्टेड"],"QjUEvK":["सभी रद्द करें"],"QlN9wA":["Destination address"],"R68yLX":["TP/SL सेट करें"],"RRXpo1":["शॉर्ट"],"RaWC6b":["Size exceeds position"],"Rb1yph":["लिक्विडेशन प्राइस"],"RnpwtT":["TWAP minutes must be ",["TWAP_MINUTES_MIN"],"-",["TWAP_MINUTES_MAX"]],"RoE+o+":["केवल कम करें"],"RwFtJj":["Cross Margin Ratio"],"S33tz3":["कनेक्टेड नहीं"],"S48xcO":["लंबित"],"S9zH+G":["This action must be signed by your main wallet (not an agent/API wallet). The builder must have at least 100 USDC in perps account value."],"SEDVHU":["पोजीशन लोड हो रहे हैं..."],"SEoDwA":["Take Limit"],"SHk3ns":["Balance available to trade"],"SJrFO1":["Position close actions"],"SVHeJc":["Direct mode: Sign each order with wallet"],"SWH2Eh":["Time in Force"],"SsGsC0":["चयनित ऑर्डर रद्द करें"],"Svkela":["पिछले पृष्ठ पर जाएं"],"T/pF0Z":["पसंदीदा से हटाएं"],"TDa39c":["24घंटे मूल्य"],"THTG58":["Select asset to bridge"],"THfjt2":["Cross Account Leverage"],"THmCgW":["Select market"],"TK3J5O":["Send Tokens"],"TK9uys":[["coin"]," बाज़ार चुनें"],"TLa4Oo":["पोजीशन प्रबंधित करने के लिए वॉलेट कनेक्ट करें।"],"TNawll":["Disconnect wallet"],"TNtZN2":["TP"],"TP9/K5":["Token"],"TQ/QV5":["No trading pair available for ",["fromToken"],"/",["toToken"]],"TT0aVH":["Order submitted"],"TbjyhA":["दस्तावेज़"],"Tm8JF7":["Connect your wallet to bridge funds"],"Tuc34V":["Confirm Bridge"],"Tz0i8g":["सेटिंग्स"],"U3As+R":["Take Profit"],"U86eEA":["No user address"],"URmyfc":["Details"],"URvngU":["Est. time"],"UXtGFD":["Full Position"],"UwG7db":["What is a wallet?"],"V0ubMJ":["प्रॉफिट लें / स्टॉप लॉस"],"V3XYw0":["P&L"],"V5khLm":["orders"],"V6ETmV":["To Spot"],"VAZUpd":["ऑर्डर विफल"],"VIwCaD":["प्रवेश"],"VMLGYS":["Switch to Mainnet"],"VU5rsP":["Number Format"],"VXCk+w":["बाज़ार लोड हो रहे हैं..."],"VYFX4v":["Perpetuals"],"VcaZ5z":["कोई बाज़ार नहीं मिला।"],"VgTxu0":["साइनर तैयार नहीं"],"VmhkuH":["Account and wallet"],"W1k7eB":["24h"],"W75iLe":["शेष देखने के लिए अपना वॉलेट कनेक्ट करें।"],"W9Fxbx":["SL trigger price"],"WISj7i":["Place Limit Close"],"WNMYIN":["रद्द"],"WRelac":["Cannot switch to isolated mode with an open position"],"WajXzx":["Est. P&L"],"Wqz0SO":["Low Balance"],"XCIAdj":["RO"],"XFp9Bf":["Scale levels must be ",["SCALE_LEVELS_MIN"],"-",["SCALE_LEVELS_MAX"]],"XTwHmT":["Spot Balances"],"XYLcNv":["सहायता"],"XbxYxh":["Price grouping"],"Y1W9ip":["इक्विटी"],"Y9gMWT":["ऑर्डर बुक लोड करने में विफल।"],"YZLEvW":["Processing deposit"],"Yf9lFX":["Ledger"],"YnKdJE":["उपयोग किया गया मार्जिन"],"YxaAON":["स्प्रेड"],"Z3FXyt":["लोड हो रहा है..."],"ZB/Jm6":["Margin & leverage"],"ZDBdfg":["Enter TP or SL price"],"ZFtwlj":["ट्रेड्स"],"ZHJZmo":["Amount (USDC)"],"ZYnwzF":["Disconnected"],"ZmGjjl":["Your bridge is still processing. Funds are safe."],"a/MzGi":["sent to Hyperliquid"],"a7u1N9":["मूल्य"],"a9q6hE":["waiting"],"aAIQg2":["Appearance"],"aVwGl4":["Portfolio PNL"],"adcjkX":["Limit close order placed"],"amRC+z":["Connect your wallet to view your account overview, positions, and history."],"axyo2z":["ऑर्डर प्रबंधित करने के लिए वॉलेट कनेक्ट करें।"],"b7Wduj":["खरीदें"],"bMJMhJ":["WebSocket त्रुटि"],"bSCsJh":["TP/SL"],"bUUVED":["संपत्ति"],"bVPv2S":["लाइव अपडेट"],"bW1xET":["Stop trigger must be above mark"],"bifv6N":["Scale"],"bm80CF":["TWAP ऑर्डर देखने के लिए अपना वॉलेट कनेक्ट करें।"],"c+VX3P":["Custom TP percentage"],"c+tzs5":["Sign in wallet..."],"c2npeq":["Custom SL percentage"],"cJzJWa":["Transfer failed"],"cXvnJ8":["मार्केट ऑर्डर स्लिपेज"],"csDS2L":["उपलब्ध"],"cwQAhE":["Failed to switch margin mode"],"d+F6q9":["Created"],"dEgA5A":["रद्द करें"],"dQGImW":["खाता शेष"],"daWrYT":["Agent verification failed"],"dcKNhk":["Taking longer than expected"],"dfIw2n":["USD मूल्य"],"dkzoLd":["फंडिंग इतिहास लोड हो रहा है..."],"doRJE6":["Set TP/SL for ",["0"]],"drvdT3":["Add TP/SL"],"e/cvV1":["Verifying..."],"e/vgsz":["Total Value"],"e0bpdM":["अज्ञात प्रतीक: ",["symbolName"]],"e2oWGN":["No tokens with value found across supported chains"],"eXs0Bt":["बाज़ार खोजें..."],"ebwNSs":["Remove ",["displayName"]," from favorites"],"eiZzfX":["Builder codes allow DeFi builders to receive a fee on fills they send on behalf of users. They are set per-order for maximal flexibility."],"ejVYRQ":["From"],"es+Zrf":["Transferring..."],"fBckrr":["असमर्थित रेजोल्यूशन: ",["0"]],"fEC2uI":["ट्रेडिंग शुरू करने के लिए अपने Hyperliquid खाते में USDC ट्रांसफर करें।"],"fOG42Y":["Connect your wallet to start trading on Hyperliquid"],"fVmG6b":["Failed to load balances"],"fYSYwH":["कोई खुला ऑर्डर नहीं।"],"fYUNRJ":["Direct"],"fhqG7u":["Connected: ",["0"],"...",["1"]],"fqDzSu":["दर"],"fsBGk0":["शेष"],"g5PJI8":["OPEN INT"],"g5Xz8D":["Cross Margin"],"gIpxlQ":["Minimum withdrawal is $",["MIN_WITHDRAW_USD"]],"gL/sdV":["Popular"],"gMHkDJ":["शेष लोड करने में विफल।"],"gVLSxk":["Transaction was rejected"],"ga6DLx":["Your bridge is still processing. Funds are safe — LI.FI routes are always recoverable."],"gbNGPv":["Risk/Reward"],"gsL/Ic":["All cross positions share the same cross margin as collateral. In the event of liquidation, your cross margin balance and any remaining open positions under assets in this mode may be forfeited."],"h+3Zi0":["वॉलेट लोड हो रहा है..."],"h0gbH9":["Arbitrum या अन्य चेन से अपने Hyperliquid खाते में USDC ब्रिज करें।"],"h3yIJ7":["Other Options"],"h4z/Mq":["Builder Fee Approval"],"hBm2XN":[["0"]," से क्रमबद्ध करें"],"hJet42":["कोई फंडिंग भुगतान नहीं मिला।"],"hXzOVo":["अगला"],"hehnjM":["Amount"],"hgpMHD":["कुल आकार"],"hhyc5L":["मार्केट ऑर्डर के लिए अधिकतम स्लिपेज।"],"htJlxw":[["headerLabel"]," से क्रमबद्ध करें"],"i+4Fbp":["Deposit failed"],"i6t9oo":["TWAP इतिहास लोड करने में विफल।"],"i71+SY":["Position reversed"],"iDNBZe":["सूचनाएं"],"iE2I5G":["Enabling"],"iEQQyu":["Agent"],"iFlxcb":["पसंदीदा बाज़ार चुनें"],"iGma9e":["Update failed"],"iH8pgl":["Back"],"iKex+G":["Limit Price (USDC)"],"iSLIjg":["Connect"],"iaX5Av":["ट्रेड लोड करने में विफल।"],"iflFdl":["Place ",["0"]," Order"],"ifzbyQ":["USDC"],"ipnMKT":[["p"],"%"],"iu7tUI":["ब्रेडक्रम्ब"],"j085nT":["ऑर्डर वैल्यू"],"jH4vGi":["Net received"],"jJCREz":["फंडिंग भुगतान देखने के लिए अपना वॉलेट कनेक्ट करें।"],"jL9aa6":["Swap direction"],"jX19nk":["खुले ऑर्डर देखने के लिए अपना वॉलेट कनेक्ट करें।"],"ja6RDy":["शॉर्ट बेचें"],"jgWsKr":["No trading pair available for <0/>/<1/>"],"jj+8Tx":["Approve a builder to charge fees on orders placed on your behalf. Builder codes allow DeFi applications to receive a portion of trading fees."],"jjXeQg":["No tokens available"],"k1ifdL":["Processing..."],"kM5ZE+":["Confirm in wallet"],"kVjBmF":["लिमिट प्राइस"],"kWXidS":["पोजीशन बंद करें"],"kj3M8S":["जमा करें"],"l0Fmrm":["प्रदर्शन भाषा"],"l4NGKt":["कोई निष्पादन नहीं मिला।"],"l75CjT":["Yes"],"lB46ke":["मार्क"],"lD8YU8":["Perps Account"],"lGBGsP":["Failed to connect with custom address"],"lHY6Dg":["स्पॉट"],"lOEm/1":["Order filled"],"lUDY9v":["Cancel All"],"lVDmF0":["Trade ClockCounterClockwise"],"lZZl3m":["Stop Loss"],"laDnrx":["कोई TWAP ऑर्डर नहीं मिला।"],"lg7+vk":["Side"],"lkcAoj":["Margin"],"llUlxR":["PNL"],"llckC0":["स्विच हो रहा है..."],"lm6AkD":["TP Price"],"lobQ3s":["अनु. शुल्क"],"lvC44O":["Max Fee Rate (%)"],"m+2g06":["will arrive in ~3 min"],"m16xKo":["Add"],"m1eb26":["End Price (USDC)"],"m6RmA/":["Insufficient ",["0"]," balance"],"mCk5iK":["Send failed"],"mE/G/f":["Invalid Ethereum address"],"mSpJjq":["Transfer USDC"],"mTfEdq":["Perps Overview"],"mVfuH4":["Spot → Perp"],"mlQXdF":["Trigger Price"],"mnFamZ":["% पूर्ण"],"n/qDNz":["डार्क मोड में बदलें"],"nJBD8K":["बाज़ार मेटाडेटा उपलब्ध नहीं है।"],"nJTjIr":["Swapping..."],"nQrkW7":["Max 0.1% (10 bps) for perps, 1% (100 bps) for spot. Enter as decimal (e.g., 0.01 for 1 basis point)."],"nVMDTs":["TP must be below entry"],"nVrjlH":["Withdrawable"],"nWIodQ":["Take profit trigger must be below mark"],"nbrdjK":["In Orders"],"njn4bC":["Confirm transaction in your wallet"],"nuBbBr":["चार्ट"],"nuqpbC":["Fee Limits:"],"nwcAtu":["लेटेंसी:"],"nwtY4N":["कुछ गलत हो गया"],"o+CS/D":["Failed to load order history."],"o21Y+P":["entries"],"o636h+":["Stop Market"],"o7Xo9X":["24H"],"o8uQyS":["हाल के ट्रेड"],"oJv+QI":["Randomize timing"],"oW1G8i":["Your funds were successfully deposited."],"ocovOd":["औसत मूल्य"],"odEUjn":["Advanced order types"],"okV5rM":["Failed to close position"],"ol8emB":["Connect your wallet to view order history."],"olEUh2":["Successful"],"orI3hB":["पृष्ठांकन"],"orv4UV":["Set TP to ",["p"],"%"],"otaTjg":["लॉन्ग"],"ovBPCi":["Default"],"p/78dY":["पोजीशन"],"p0ngfp":["ऑर्डर कतार"],"p6NueD":["नया"],"pBsoKL":["पसंदीदा में जोड़ें"],"pHVQlG":["सभी ऑर्डर रद्द करें"],"pI2rip":["Insufficient balance (includes $",["WITHDRAWAL_FEE_USD"]," fee)"],"pIwpkw":["ट्रेडिंग टर्मिनल पर जाएं"],"pUEa02":["Margin mode switched to ",["0"]," for ",["coin"]],"pWF6+F":["Show Executions"],"pY5TE9":["Could not fetch your token balances"],"perfgr":["Funding History"],"pvnfJD":["Dark"],"qCdZab":["Switch to ",["displayName"]," market, long position"],"qJb6G2":["Try Again"],"qRhSY/":["न्यूनतम ऑर्डर $10"],"qX/0av":["Select how margin is allocated for your positions"],"qaeo2F":["मार्जिन अनुपात"],"qfS/h8":[["formatted"]," USDC deposited to Hyperliquid"],"qiOIiY":["खरीदें"],"qlRrjA":["Set to ",["p"],"%"],"qn4nUK":["Builder Address"],"qnKMyZ":["फंडिंग भुगतान"],"quX3ha":["Register Another"],"r+w5Bx":["No balances found"],"r22IQ2":["Time / Total"],"rJe6vw":["7 days"],"rLi46F":["Must be signed by main wallet (not agent/API wallet)"],"rPNGe1":["Take profit trigger must be above mark"],"rPX0Ef":["Minimum withdrawal is $",["0"]],"rfbg3y":["Switch to ",["0"]," market"],"rm3fFf":["खाता देखने के लिए वॉलेट कनेक्ट करें"],"ruL48O":["Number of Orders"],"ryxkVx":["USD में मान दिखाएं"],"s/ereB":["सक्रिय"],"sFSDo6":["No open positions. Leverage settings appear here when you have active positions."],"sLpZwu":["TWAP ऑर्डर रद्द करें"],"sO+nPg":["मार्जिन आवश्यक"],"sO0DWk":["Switch between mainnet and testnet. Page will reload."],"sQWzwD":["View on explorer"],"sYnC5v":["Select ",["displayName"]," market"],"scwWyY":["No ledger activity found."],"shmNel":["Entry Price"],"stec1a":["ऑर्डर रद्द करने में असमर्थ।"],"szH29R":["कोई शेष नहीं मिला। ट्रेडिंग शुरू करने के लिए धन जमा करें।"],"t+B4rK":["24h Change"],"t+CM0Z":["Leverage updated to ",["pendingLeverage"],"× for ",["coin"]],"t+Jqww":["Flip transfer direction"],"t+R8+P":["Execution"],"t5EZAB":["ट्रेड इतिहास लोड हो रहा है..."],"tHPbHS":["लीडरबोर्ड"],"tMFDem":["No data available"],"tMX8XH":["Select tokens to swap"],"tVJk4q":["ऑर्डर रद्द करें"],"tWiEVe":["Liq Price"],"tZ9ftZ":["स्पॉट"],"tnJl4V":["Withdrawal submitted"],"tp8zc8":["Custom wallet address"],"u4LEQ2":["You are on Testnet"],"uAQUqI":["स्थिति"],"uBhZmI":["payments"],"uEDo87":["About Builder Codes"],"uWi2Q+":["साइडबार"],"uZi2t8":["Confirmation screen coming in next slice"],"ufWF2Y":["वॉल्ट"],"ugB2se":["No order history found."],"uoD7vB":["Fee rate must be between 0.001% and 1%"],"uqe4In":["Total Equity"],"v/76pL":["ऑर्डर बुक"],"vH2C/2":["Swap"],"vI9OLW":["Bridge failed"],"vIWDJQ":[["totalSeconds"]," seconds"],"vT/Pj1":["वॉल्यूम"],"vXIe7J":["Language"],"vXWzNt":["ट्रेडिंग सक्षम करने में विफल"],"vZW+PE":["Your transaction is being processed"],"vcHBQG":["Show Positions"],"vpjkXb":["Limit Close"],"vrnnn9":["Processing"],"vtJ2yO":["Explorer"],"vyMDXl":["स्कैनलाइन दिखाएं"],"w+oJCW":["will arrive in ~5 min"],"w3hmRj":["ऑर्डर बुक की प्रतीक्षा..."],"wDbqhD":["Reverse"],"wDy6uq":["Loading order history..."],"wMHvYH":["वैल्यू"],"wZVzVU":["Bridge complete"],"wdxz7K":["Source"],"wezJ3v":["Mark Price"],"wq30T4":["लिक्विडेशन"],"wvgF6w":["Order History"],"x+7jw2":["अधिकतम साइज से अधिक"],"xGVfLh":["Continue"],"xI4H1r":["Switch to ",["displayCoin"]," market"],"xNB0TS":["बेचें"],"xTSCVP":["Builder code registered successfully!"],"xWnh+P":["Start Price (USDC)"],"xgSeuS":["Account Value"],"y/TXy2":["Maintenance Margin"],"y62Dys":["Network fee"],"yQE2r9":["लोड हो रहा है"],"yRkqG9":["लिमिट"],"yT7sOL":["Trade via ",["0"]," spot market"],"yVfwJk":["Start and end must differ"],"ydOXwr":["Perp"],"ye6Vnv":["Available:"],"ygCKqB":["स्टॉप"],"ygkMcg":["लिमिट"],"yxnt3y":["Fill status"],"yz7wBu":["बंद करें"],"zEGs+1":["Builders"],"zG6eEO":["Connect your wallet to view your account, positions, and start trading."],"zKCXG+":["Trigger Price (USDC)"],"zKJcRr":["Perps: Max 0.1% (10 basis points)"],"zPGNJm":["Transfer"],"zXagFp":["पता कॉपी करें"],"zZmf1N":["पूर्ण"],"zdcGo/":["Bridging in progress"],"zjwWvI":["Start Price"],"znqB4T":["Insufficient balance"],"zwWKhA":["Learn more"]}',
),
};
diff --git a/apps/terminal/src/locales/hi/messages.po b/apps/terminal/src/locales/hi/messages.po
index fac06fb7..e868e47c 100644
--- a/apps/terminal/src/locales/hi/messages.po
+++ b/apps/terminal/src/locales/hi/messages.po
@@ -80,6 +80,8 @@ msgstr ""
#~ msgid "About Builder Codes"
#~ msgstr ""
+#: src/components/account/account-page.tsx
+#: src/components/trade/header/top-nav.tsx
#: src/components/trade/tradebox/account-panel.tsx
msgid "Account"
msgstr "खाता"
@@ -96,6 +98,10 @@ msgstr "खाता शेष"
msgid "Account Equity"
msgstr ""
+#: src/components/account/account-pnl-chart.tsx
+#~ msgid "Account Value"
+#~ msgstr ""
+
#: src/components/trade/positions/balances-tab.tsx
#: src/components/trade/positions/orders-tab.tsx
#: src/components/trade/positions/positions-tab.tsx
@@ -160,6 +166,7 @@ msgstr ""
#~ msgid "All cross positions share the same cross margin as collateral. In the event of liquidation, your cross margin balance and any remaining open positions under assets in this mode may be forfeited."
#~ msgstr ""
+#: src/components/account/account-history.tsx
#: src/components/trade/positions/send-modal.tsx
#: src/components/trade/positions/transfer-modal.tsx
#: src/components/trade/tradebox/deposit-modal.tsx
@@ -183,6 +190,10 @@ msgstr ""
#~ msgid "Approve a builder to charge fees on orders placed on your behalf. Builder codes allow DeFi applications to receive a portion of trading fees."
#~ msgstr ""
+#: src/components/account/account-history.tsx
+#: src/components/account/account-history.tsx
+#: src/components/account/account-history.tsx
+#: src/components/account/account-positions.tsx
#: src/components/trade/positions/balances-tab.tsx
#: src/components/trade/positions/funding-tab.tsx
#: src/components/trade/positions/history-tab.tsx
@@ -193,10 +204,14 @@ msgstr ""
msgid "Asset"
msgstr "संपत्ति"
-#: src/components/trade/tradebox/account-panel.tsx
-#~ msgid "Assets"
-#~ msgstr ""
+#: src/components/account/account-page.tsx
+msgid "Assets"
+msgstr ""
+#: src/components/account/account-balances.tsx
+#: src/components/account/account-balances.tsx
+#: src/components/account/account-page.tsx
+#: src/components/account/account-page.tsx
#: src/components/trade/mobile/mobile-balances-tab.tsx
#: src/components/trade/positions/balances-tab.tsx
#: src/components/trade/tradebox/trade-form-fields.tsx
@@ -225,6 +240,7 @@ msgstr ""
#~ msgid "Back to asset selection"
#~ msgstr ""
+#: src/components/account/account-page.tsx
#: src/components/trade/tradebox/account-panel.tsx
msgid "Balance"
msgstr "शेष"
@@ -249,6 +265,7 @@ msgstr ""
#~ msgid "Breadcrumb"
#~ msgstr "ब्रेडक्रम्ब"
+#: src/components/account/account-page.tsx
#: src/components/trade/mobile/mobile-account-view.tsx
#: src/components/trade/tradebox/account-panel.tsx
#: src/components/trade/tradebox/account-panel.tsx
@@ -370,6 +387,10 @@ msgstr "रद्द हो रहा है..."
#~ msgid "cancelled"
#~ msgstr "रद्द"
+#: src/components/account/account-leverage-settings.tsx
+msgid "Cannot switch to isolated mode with an open position"
+msgstr ""
+
#: src/components/trade/tradebox/margin-mode-modal.tsx
msgid "Cannot switch to Isolated mode with an open position. Close your position first."
msgstr ""
@@ -403,14 +424,15 @@ msgstr "बंद हो रहा है..."
#~ msgid "Collapse account panel"
#~ msgstr "खाता पैनल छोटा करें"
-#: src/components/trade/order-entry/order-entry-panel.tsx
-#~ msgid "Coming soon"
-#~ msgstr "जल्द आ रहा है"
+#: src/components/account/account-pnl-chart.tsx
+msgid "Coming soon"
+msgstr "जल्द आ रहा है"
#: src/components/trade/positions/twap-tab.tsx
#~ msgid "completed"
#~ msgstr "पूर्ण"
+#: src/components/account/account-leverage-settings.tsx
#: src/components/trade/positions/position-tpsl-modal.tsx
#: src/components/trade/tradebox/bridge-tab.tsx
#: src/components/trade/tradebox/leverage-control.tsx
@@ -451,6 +473,8 @@ msgstr ""
#~ msgid "Connect a wallet to manage positions."
#~ msgstr "पोजीशन प्रबंधित करने के लिए वॉलेट कनेक्ट करें।"
+#: src/components/account/account-page.tsx
+#: src/components/account/account-page.tsx
#: src/components/trade/components/wallet-modal.tsx
#: src/components/trade/header/user-menu.tsx
#: src/components/trade/mobile/mobile-account-view.tsx
@@ -511,6 +535,10 @@ msgstr "ट्रेड इतिहास देखने के लिए अ
msgid "Connect your wallet to view TWAP orders."
msgstr "TWAP ऑर्डर देखने के लिए अपना वॉलेट कनेक्ट करें।"
+#: src/components/account/account-page.tsx
+msgid "Connect your wallet to view your account overview, positions, and history."
+msgstr ""
+
#: src/components/trade/mobile/mobile-account-view.tsx
msgid "Connect your wallet to view your account, positions, and start trading."
msgstr ""
@@ -567,6 +595,10 @@ msgstr ""
msgid "Created"
msgstr ""
+#: src/components/account/account-leverage-settings.tsx
+#: src/components/account/account-leverage-settings.tsx
+#: src/components/account/account-positions.tsx
+#: src/components/account/account-positions.tsx
#: src/components/trade/positions/positions-tab.tsx
#: src/components/trade/tradebox/margin-mode-modal.tsx
#: src/components/trade/tradebox/margin-mode-modal.tsx
@@ -574,13 +606,17 @@ msgstr ""
msgid "Cross"
msgstr "क्रॉस"
+#: src/components/account/account-leverage-settings.tsx
+msgid "Cross → Isolated"
+msgstr ""
+
#: src/components/trade/tradebox/account-panel.tsx
msgid "Cross Account Leverage"
msgstr ""
-#: src/components/trade/tradebox/account-panel.tsx
-#~ msgid "Cross Leverage"
-#~ msgstr "क्रॉस लीवरेज"
+#: src/components/account/account-page.tsx
+msgid "Cross Leverage"
+msgstr "क्रॉस लीवरेज"
#: src/components/trade/mobile/mobile-account-view.tsx
msgid "Cross Margin"
@@ -618,6 +654,7 @@ msgstr ""
msgid "Default"
msgstr ""
+#: src/components/account/account-page.tsx
#: src/components/trade/header/top-nav.tsx
#: src/components/trade/mobile/mobile-nav-drawer.tsx
#: src/components/trade/tradebox/account-panel.tsx
@@ -666,6 +703,10 @@ msgstr ""
msgid "Destination address"
msgstr ""
+#: src/components/account/account-history.tsx
+msgid "Details"
+msgstr ""
+
#: src/components/trade/order-entry/order-entry-panel.tsx
#~ msgid "Direct"
#~ msgstr ""
@@ -715,6 +756,11 @@ msgstr ""
msgid "Each position uses only its allocated margin. If the margin ratio reaches 100%, the position is liquidated. Margin can be added or removed individually."
msgstr ""
+#: src/components/account/account-leverage-settings.tsx
+#: src/components/account/account-leverage-settings.tsx
+msgid "Edit leverage"
+msgstr ""
+
#: src/components/trade/positions/positions-tab.tsx
msgid "Edit TP/SL"
msgstr ""
@@ -765,6 +811,12 @@ msgstr ""
msgid "Enter trigger price"
msgstr ""
+#: src/components/account/account-history.tsx
+msgid "entries"
+msgstr ""
+
+#: src/components/account/account-positions.tsx
+#: src/components/account/account-positions.tsx
#: src/components/trade/mobile/mobile-positions-tab.tsx
#: src/components/trade/positions/positions-tab.tsx
msgid "Entry"
@@ -848,6 +900,7 @@ msgstr "ट्रेडिंग सक्षम करने में वि
msgid "Failed to load balances"
msgstr ""
+#: src/components/account/account-balances.tsx
#: src/components/trade/mobile/mobile-balances-tab.tsx
#: src/components/trade/positions/balances-tab.tsx
msgid "Failed to load balances."
@@ -872,6 +925,7 @@ msgstr "ऑर्डर बुक लोड करने में विफल
msgid "Failed to load order history."
msgstr ""
+#: src/components/account/account-positions.tsx
#: src/components/trade/mobile/mobile-positions-tab.tsx
#: src/components/trade/positions/positions-tab.tsx
msgid "Failed to load positions."
@@ -898,10 +952,16 @@ msgstr "ट्रेड लोड करने में विफल।"
msgid "Failed to reverse position"
msgstr ""
-#: src/components/trade/order-entry/order-entry-panel.tsx
-#~ msgid "Failed to switch margin mode"
-#~ msgstr ""
+#: src/components/account/account-leverage-settings.tsx
+msgid "Failed to switch margin mode"
+msgstr ""
+
+#: src/components/account/account-leverage-settings.tsx
+msgid "Failed to update leverage"
+msgstr ""
+#: src/components/account/account-history.tsx
+#: src/components/account/account-history.tsx
#: src/components/trade/mobile/mobile-history-tab.tsx
#: src/components/trade/positions/history-tab.tsx
msgid "Fee"
@@ -923,9 +983,10 @@ msgstr "शुल्क"
#~ msgid "Fetching quote..."
#~ msgstr ""
+#. placeholder {0}: formatPrice(markPx, { szDecimals: market?.szDecimals })
#: src/components/trade/mobile/mobile-trade-view.tsx
-#~ msgid "Fill limit price with mark price {0}"
-#~ msgstr ""
+msgid "Fill limit price with mark price {0}"
+msgstr ""
#: src/components/trade/tradebox/bridge-tab.tsx
#: src/components/trade/tradebox/bridge-tab.tsx
@@ -958,6 +1019,7 @@ msgstr ""
#~ msgid "Full Position"
#~ msgstr ""
+#: src/components/account/account-history.tsx
#: src/components/trade/chart/token-selector-columns.ts
#: src/components/trade/chart/token-selector.tsx
#: src/components/trade/mobile/mobile-positions-tab.tsx
@@ -1003,14 +1065,17 @@ msgstr ""
msgid "Go to trading terminal"
msgstr "ट्रेडिंग टर्मिनल पर जाएं"
+#: src/components/account/account-balances.tsx
#: src/components/trade/mobile/mobile-balances-tab.tsx
#: src/components/trade/positions/balances-tab.tsx
msgid "Hide small"
msgstr ""
-#: src/components/trade/tradebox/account-panel.tsx
-#~ msgid "In Orders"
-#~ msgstr ""
+#: src/components/account/account-balances.tsx
+#: src/components/account/account-balances.tsx
+#: src/components/account/account-page.tsx
+msgid "In Orders"
+msgstr ""
#: src/components/trade/positions/balances-tab.tsx
#~ msgid "In Use"
@@ -1059,6 +1124,10 @@ msgstr ""
msgid "Invalid Ethereum address"
msgstr ""
+#: src/components/account/account-leverage-settings.tsx
+#: src/components/account/account-leverage-settings.tsx
+#: src/components/account/account-positions.tsx
+#: src/components/account/account-positions.tsx
#: src/components/trade/positions/positions-tab.tsx
#: src/components/trade/tradebox/margin-mode-modal.tsx
#: src/components/trade/tradebox/margin-mode-modal.tsx
@@ -1066,6 +1135,10 @@ msgstr ""
msgid "Isolated"
msgstr "आइसोलेटेड"
+#: src/components/account/account-leverage-settings.tsx
+msgid "Isolated → Cross"
+msgstr ""
+
#: src/components/trade/footer/footer-bar.tsx
#~ msgid "Latency:"
#~ msgstr "लेटेंसी:"
@@ -1079,12 +1152,27 @@ msgstr "लीडरबोर्ड"
msgid "Learn more"
msgstr ""
+#: src/components/account/account-history.tsx
+msgid "Ledger"
+msgstr ""
+
+#: src/components/account/account-leverage-settings.tsx
+#: src/components/account/account-positions.tsx
+#: src/components/account/account-positions.tsx
#: src/components/trade/tradebox/leverage-control.tsx
#: src/components/trade/tradebox/leverage-control.tsx
#: src/components/trade/tradebox/margin-mode-modal.tsx
msgid "Leverage"
msgstr ""
+#: src/components/account/account-leverage-settings.tsx
+msgid "Leverage Settings"
+msgstr ""
+
+#: src/components/account/account-leverage-settings.tsx
+msgid "Leverage updated to {pendingLeverage}× for {coin}"
+msgstr ""
+
#: src/components/trade/components/global-settings-dialog.tsx
#~ msgid "Light"
#~ msgstr ""
@@ -1126,10 +1214,16 @@ msgstr "लिमिट प्राइस"
msgid "Liq"
msgstr "लिक्विडेशन"
+#: src/components/account/account-positions.tsx
+#: src/components/account/account-positions.tsx
+msgid "Liq Price"
+msgstr ""
+
#: src/components/trade/tradebox/order-summary.tsx
msgid "Liq. Price"
msgstr "लिक्विडेशन प्राइस"
+#: src/components/account/account-history.tsx
#: src/components/trade/mobile/mobile-history-tab.tsx
#: src/components/trade/positions/history-tab.tsx
msgid "Liquidated"
@@ -1184,6 +1278,8 @@ msgstr "वॉलेट लोड हो रहा है..."
msgid "Loading..."
msgstr "लोड हो रहा है..."
+#: src/components/account/account-positions.tsx
+#: src/components/account/account-positions.tsx
#: src/components/trade/mobile/mobile-positions-tab.tsx
#: src/components/trade/positions/position-tpsl-modal.tsx
msgid "Long"
@@ -1202,6 +1298,8 @@ msgstr ""
#~ msgid "Manage your risk on individual positions by restricting the amount of margin allocated to each. If the margin ratio of an isolated position reaches 100%, the position will be liquidated. Margin can be added or removed to individual positions in this mode."
#~ msgstr ""
+#: src/components/account/account-positions.tsx
+#: src/components/account/account-positions.tsx
#: src/components/trade/mobile/mobile-positions-tab.tsx
#: src/components/trade/positions/positions-tab.tsx
msgid "Margin"
@@ -1219,22 +1317,29 @@ msgstr ""
msgid "Margin mode"
msgstr ""
-#: src/components/trade/tradebox/margin-mode-dialog.tsx
-#~ msgid "Margin Mode"
-#~ msgstr ""
+#: src/components/account/account-leverage-settings.tsx
+msgid "Margin Mode"
+msgstr ""
-#: src/components/trade/tradebox/account-panel.tsx
-#~ msgid "Margin Ratio"
-#~ msgstr "मार्जिन अनुपात"
+#. placeholder {0}: newMode === "cross" ? t`Cross` : t`Isolated`
+#: src/components/account/account-leverage-settings.tsx
+msgid "Margin mode switched to {0} for {coin}"
+msgstr ""
+
+#: src/components/account/account-page.tsx
+msgid "Margin Ratio"
+msgstr "मार्जिन अनुपात"
#: src/components/trade/tradebox/order-summary.tsx
msgid "Margin Req."
msgstr "मार्जिन आवश्यक"
-#: src/components/trade/tradebox/account-panel.tsx
-#~ msgid "Margin Used"
-#~ msgstr "उपयोग किया गया मार्जिन"
+#: src/components/account/account-page.tsx
+msgid "Margin Used"
+msgstr "उपयोग किया गया मार्जिन"
+#: src/components/account/account-positions.tsx
+#: src/components/account/account-positions.tsx
#: src/components/trade/mobile/mobile-positions-tab.tsx
#: src/components/trade/positions/positions-tab.tsx
msgid "Mark"
@@ -1442,16 +1547,25 @@ msgstr ""
msgid "No balances found. Deposit funds to start trading."
msgstr "कोई शेष नहीं मिला। ट्रेडिंग शुरू करने के लिए धन जमा करें।"
+#: src/components/account/account-pnl-chart.tsx
+#~ msgid "No data available"
+#~ msgstr ""
+
#: src/components/trade/mobile/mobile-history-tab.tsx
#: src/components/trade/positions/history-tab.tsx
msgid "No fills found."
msgstr "कोई निष्पादन नहीं मिला।"
+#: src/components/account/account-history.tsx
#: src/components/trade/mobile/mobile-funding-tab.tsx
#: src/components/trade/positions/funding-tab.tsx
msgid "No funding payments found."
msgstr "कोई फंडिंग भुगतान नहीं मिला।"
+#: src/components/account/account-history.tsx
+msgid "No ledger activity found."
+msgstr ""
+
#: src/lib/errors/definitions/market.ts
msgid "No mark price"
msgstr "कोई मार्क प्राइस नहीं"
@@ -1469,6 +1583,15 @@ msgstr "कोई बाज़ार नहीं मिला।"
msgid "No open orders."
msgstr "कोई खुला ऑर्डर नहीं।"
+#: src/components/account/account-positions.tsx
+msgid "No open positions."
+msgstr ""
+
+#: src/components/account/account-leverage-settings.tsx
+msgid "No open positions. Leverage settings appear here when you have active positions."
+msgstr ""
+
+#: src/components/account/account-history.tsx
#: src/components/trade/mobile/mobile-orders-history-tab.tsx
#: src/components/trade/positions/orders-history-tab.tsx
msgid "No order history found."
@@ -1482,6 +1605,10 @@ msgstr ""
msgid "No route available. Try a different amount or asset."
msgstr ""
+#: src/components/account/account-balances.tsx
+msgid "No spot balances."
+msgstr ""
+
#: src/components/trade/components/token-selector-dropdown.tsx
#~ msgid "No tokens available"
#~ msgstr ""
@@ -1490,6 +1617,10 @@ msgstr ""
msgid "No tokens with value found across supported chains"
msgstr ""
+#: src/components/account/account-history.tsx
+msgid "No trades found."
+msgstr ""
+
#: src/components/trade/order-entry/swap-asset-modal.tsx
#~ msgid "No trading pair available for {fromToken}/{toToken}"
#~ msgstr ""
@@ -1567,6 +1698,10 @@ msgstr "ओपन इंटरेस्ट"
msgid "Open Orders"
msgstr "खुले ऑर्डर"
+#: src/components/account/account-positions.tsx
+msgid "Open Positions"
+msgstr ""
+
#: src/components/trade/positions/positions-tab.tsx
#~ msgid "Open positions count"
#~ msgstr ""
@@ -1609,13 +1744,14 @@ msgstr ""
msgid "Order Value"
msgstr "ऑर्डर वैल्यू"
+#: src/components/account/account-history.tsx
#: src/components/trade/positions/orders-history-tab.tsx
msgid "orders"
msgstr ""
-#: src/components/trade/positions/orders-history-tab.tsx
-#~ msgid "Orders"
-#~ msgstr ""
+#: src/components/account/account-history.tsx
+msgid "Orders"
+msgstr ""
#: src/components/trade/tradebox/advanced-order-dropdown.tsx
#: src/components/trade/tradebox/advanced-order-dropdown.tsx
@@ -1639,10 +1775,15 @@ msgstr "पृष्ठ नहीं मिला"
#~ msgid "pagination"
#~ msgstr "पृष्ठांकन"
+#: src/components/account/account-history.tsx
#: src/components/trade/positions/funding-tab.tsx
msgid "Payment"
msgstr "भुगतान"
+#: src/components/account/account-history.tsx
+msgid "payments"
+msgstr ""
+
#: src/components/trade/tradebox/order-toast.tsx
msgid "pending"
msgstr "लंबित"
@@ -1658,11 +1799,17 @@ msgstr "लंबित"
msgid "Perp"
msgstr ""
+#: src/components/account/account-history.tsx
+msgid "Perp → Spot"
+msgstr ""
+
#: src/components/trade/mobile/mobile-balances-tab.tsx
#: src/components/trade/positions/balances-tab.tsx
msgid "Perpetuals"
msgstr ""
+#: src/components/account/account-page.tsx
+#: src/components/account/account-page.tsx
#: src/components/trade/tradebox/account-panel.tsx
msgid "Perps"
msgstr "परप्स"
@@ -1692,6 +1839,8 @@ msgstr ""
msgid "Please enter an address"
msgstr ""
+#: src/components/account/account-history.tsx
+#: src/components/account/account-positions.tsx
#: src/components/trade/positions/balances-tab.tsx
#: src/components/trade/positions/history-tab.tsx
#: src/components/trade/positions/positions-tab.tsx
@@ -1707,6 +1856,11 @@ msgstr "PNL"
msgid "Portfolio"
msgstr "पोर्टफोलियो"
+#: src/components/account/account-pnl-chart.tsx
+msgid "Portfolio PNL"
+msgstr ""
+
+#: src/components/account/account-history.tsx
#: src/components/trade/mobile/mobile-funding-tab.tsx
#: src/components/trade/positions/funding-tab.tsx
#: src/components/trade/tradebox/trade-form-fields.tsx
@@ -1742,6 +1896,8 @@ msgstr ""
#~ msgid "Previous"
#~ msgstr "पिछला"
+#: src/components/account/account-history.tsx
+#: src/components/account/account-history.tsx
#: src/components/trade/chart/token-selector-columns.ts
#: src/components/trade/chart/token-selector.tsx
#: src/components/trade/mobile/mobile-history-tab.tsx
@@ -1790,6 +1946,7 @@ msgstr ""
msgid "Randomize timing"
msgstr ""
+#: src/components/account/account-history.tsx
#: src/components/trade/components/spot-swap-modal.tsx
#: src/components/trade/mobile/mobile-funding-tab.tsx
#: src/components/trade/positions/funding-tab.tsx
@@ -1948,6 +2105,7 @@ msgstr "बेचें"
#~ msgid "Sell Short"
#~ msgstr "शॉर्ट बेचें"
+#: src/components/account/account-page.tsx
#: src/components/trade/mobile/mobile-balances-tab.tsx
#: src/components/trade/positions/balances-tab.tsx
#: src/components/trade/positions/send-modal.tsx
@@ -2003,6 +2161,8 @@ msgstr ""
msgid "Settings"
msgstr "सेटिंग्स"
+#: src/components/account/account-positions.tsx
+#: src/components/account/account-positions.tsx
#: src/components/trade/mobile/mobile-positions-tab.tsx
#: src/components/trade/positions/position-tpsl-modal.tsx
msgid "Short"
@@ -2048,9 +2208,9 @@ msgstr ""
#~ msgid "Show Values in USD"
#~ msgstr "USD में मान दिखाएं"
-#: src/components/trade/positions/position-tpsl-modal.tsx
-#~ msgid "Side"
-#~ msgstr ""
+#: src/components/account/account-history.tsx
+msgid "Side"
+msgstr ""
#: src/components/ui/sidebar.tsx
#~ msgid "Sidebar"
@@ -2068,6 +2228,10 @@ msgstr "साइनर तैयार नहीं"
#~ msgid "Signing..."
#~ msgstr "साइन हो रहा है..."
+#: src/components/account/account-history.tsx
+#: src/components/account/account-history.tsx
+#: src/components/account/account-positions.tsx
+#: src/components/account/account-positions.tsx
#: src/components/trade/mobile/mobile-history-tab.tsx
#: src/components/trade/mobile/mobile-orders-history-tab.tsx
#: src/components/trade/mobile/mobile-orders-tab.tsx
@@ -2153,6 +2317,8 @@ msgstr ""
#~ msgid "spot"
#~ msgstr "स्पॉट"
+#: src/components/account/account-page.tsx
+#: src/components/account/account-page.tsx
#: src/components/trade/header/top-nav.tsx
#: src/components/trade/mobile/mobile-balances-tab.tsx
#: src/components/trade/mobile/mobile-nav-drawer.tsx
@@ -2163,10 +2329,18 @@ msgstr ""
msgid "Spot"
msgstr "स्पॉट"
+#: src/components/account/account-history.tsx
+msgid "Spot → Perp"
+msgstr ""
+
#: src/components/trade/positions/send-modal.tsx
msgid "Spot Account"
msgstr ""
+#: src/components/account/account-balances.tsx
+msgid "Spot Balances"
+msgstr ""
+
#: src/components/pages/builder-page.tsx
#~ msgid "Spot: Max 1% (100 basis points)"
#~ msgstr ""
@@ -2192,6 +2366,7 @@ msgstr ""
#~ msgid "Start Price (USDC)"
#~ msgstr ""
+#: src/components/account/account-history.tsx
#: src/components/trade/positions/orders-history-tab.tsx
msgid "Status"
msgstr "स्थिति"
@@ -2363,6 +2538,10 @@ msgstr "आप जो पृष्ठ ढूंढ रहे हैं वह
msgid "TIF"
msgstr ""
+#: src/components/account/account-history.tsx
+#: src/components/account/account-history.tsx
+#: src/components/account/account-history.tsx
+#: src/components/account/account-history.tsx
#: src/components/trade/mobile/mobile-funding-tab.tsx
#: src/components/trade/orderbook/trades-panel.tsx
#: src/components/trade/positions/funding-tab.tsx
@@ -2405,16 +2584,26 @@ msgstr ""
msgid "Toggle size mode"
msgstr "साइज मोड टॉगल करें"
+#: src/components/account/account-balances.tsx
+msgid "Token"
+msgstr ""
+
#: src/components/trade/market-overview.tsx
msgid "TOKEN"
msgstr ""
+#: src/components/account/account-balances.tsx
+#: src/components/account/account-balances.tsx
#: src/components/trade/mobile/mobile-balances-tab.tsx
#: src/components/trade/orderbook/orderbook-panel.tsx
#: src/components/trade/positions/balances-tab.tsx
msgid "Total"
msgstr "कुल"
+#: src/components/account/account-page.tsx
+msgid "Total Equity"
+msgstr ""
+
#: src/components/trade/positions/twap-tab.tsx
#~ msgid "Total Size"
#~ msgstr "कुल आकार"
@@ -2423,9 +2612,9 @@ msgstr "कुल"
msgid "Total time"
msgstr ""
-#: src/components/trade/tradebox/account-panel.tsx
-#~ msgid "Total Value"
-#~ msgstr ""
+#: src/components/account/account-page.tsx
+msgid "Total Value"
+msgstr ""
#: src/components/trade/positions/orders-tab.tsx
#~ msgid "TP"
@@ -2476,10 +2665,12 @@ msgstr "ट्रेड इतिहास"
msgid "Trade via {0} spot market"
msgstr ""
+#: src/components/account/account-history.tsx
#: src/components/trade/positions/history-tab.tsx
msgid "trades"
msgstr ""
+#: src/components/account/account-history.tsx
#: src/components/trade/orderbook/orderbook-panel.tsx
msgid "Trades"
msgstr "ट्रेड्स"
@@ -2496,6 +2687,7 @@ msgstr ""
msgid "Transaction was rejected"
msgstr ""
+#: src/components/account/account-page.tsx
#: src/components/trade/positions/transfer-modal.tsx
#: src/components/trade/tradebox/deposit-modal.tsx
#: src/components/trade/tradebox/deposit-modal.tsx
@@ -2550,6 +2742,8 @@ msgstr ""
msgid "TWAP Orders"
msgstr "TWAP ऑर्डर"
+#: src/components/account/account-history.tsx
+#: src/components/account/account-history.tsx
#: src/components/trade/mobile/mobile-orders-history-tab.tsx
#: src/components/trade/positions/history-tab.tsx
#: src/components/trade/positions/orders-history-tab.tsx
@@ -2579,6 +2773,8 @@ msgstr "अज्ञात प्रतीक: {symbolName}"
msgid "Unrealized P&L"
msgstr ""
+#: src/components/account/account-page.tsx
+#: src/components/account/account-page.tsx
#: src/components/trade/tradebox/account-panel.tsx
msgid "Unrealized PNL"
msgstr "अवास्तविक PNL"
@@ -2588,6 +2784,7 @@ msgstr "अवास्तविक PNL"
msgid "Unsupported resolution: {0}"
msgstr "असमर्थित रेजोल्यूशन: {0}"
+#: src/components/account/account-leverage-settings.tsx
#: src/components/trade/tradebox/leverage-control.tsx
#: src/components/trade/tradebox/margin-mode-modal.tsx
msgid "Update failed"
@@ -2604,6 +2801,7 @@ msgstr ""
msgid "Updated live"
msgstr "लाइव अपडेट"
+#: src/components/account/account-balances.tsx
#: src/components/trade/positions/balances-tab.tsx
msgid "USD Value"
msgstr "USD मूल्य"
@@ -2680,6 +2878,7 @@ msgstr "वॉलेट कनेक्ट नहीं है"
msgid "will arrive in ~5 min"
msgstr ""
+#: src/components/account/account-page.tsx
#: src/components/trade/tradebox/account-panel.tsx
#: src/components/trade/tradebox/account-panel.tsx
#: src/components/trade/tradebox/deposit-modal.tsx
@@ -2689,6 +2888,10 @@ msgstr ""
msgid "Withdraw"
msgstr "निकासी"
+#: src/components/account/account-page.tsx
+msgid "Withdrawable"
+msgstr ""
+
#: src/components/trade/tradebox/deposit-modal.tsx
msgid "Withdrawal failed"
msgstr ""
diff --git a/apps/terminal/src/locales/zh/messages.js b/apps/terminal/src/locales/zh/messages.js
index f84e19ea..04aaa28b 100644
--- a/apps/terminal/src/locales/zh/messages.js
+++ b/apps/terminal/src/locales/zh/messages.js
@@ -1,5 +1,5 @@
/*eslint-disable*/ module.exports = {
messages: JSON.parse(
- '{"++OGth":["Deposit successful"],"+1S7b1":["钱包未连接"],"+6YAwo":["selected"],"+8WrGc":["未找到钱包"],"+F8cLG":["显示移动端侧边栏。"],"+JE0m7":["加载仓位失败。"],"+K0AvT":["断开连接"],"+N2Rqk":["无活跃仓位。"],"+ONfBR":["PRICE"],"+ZV3i5":["加载未成交订单失败。"],"+b7T3G":["Updated"],"+hA/UM":["未成交订单"],"+nuEh/":["Estimated time"],"+w/hP1":["在图表上显示成交"],"+xnyQO":["输入数量"],"+z3YcL":["Position actions"],"+zy2Nq":["类型"],"/2hibY":["取消选中"],"/AsMcZ":["Enabling..."],"/IX/7x":["Other"],"/PvdTS":["Gas (",["0"],")"],"/TT0Oq":["预言机"],"/cF7Rs":["成交量"],"/gY2VH":["按 ",["0"]," 筛选"],"/jQctM":["To"],"/kXBrK":["Total time"],"/mfICu":["Fees"],"/tPR7R":["Builder Fee"],"0+Iw6C":["Duration (Minutes)"],"0+X+sh":["Spot Account"],"0LZtsz":["Take Market"],"0Mx4+k":["No trading pair available for ",["fromTokenDisplay"],"/",["toTokenDisplay"]],"0P2gFy":["您查找的页面不存在。"],"0QDjxt":["Balance:"],"0RrIzN":["选择代币"],"0Xlr0L":["Minimum deposit is ",["0"]," USDC"],"0exG4Q":["资金费率"],"0z59Ep":["卖出"],"1BkDWk":["买入做多"],"1QfxQT":["关闭"],"1UzENP":["No"],"1ZMjyh":["The builder at ",["0"],"...",["1"]," can now charge up to ",["maxFeeRate"],"% fee on orders placed on your behalf."],"1h+RBg":["Orders"],"1njn7W":["Light"],"29VNqC":["Unknown error"],"2Ea5Vz":["交易历史"],"2FYpfJ":["更多"],"2M2s7z":["启用交易"],"2PsTzL":["已完成"],"2tQrK2":["切换到 Arbitrum"],"3/vMct":["A crypto wallet lets you store and manage your digital assets securely."],"30ZPad":["活跃仓位"],"3CHbH/":["SL Price"],"3DtJpz":["Stop Limit"],"3IkQgP":["Secure & Private"],"3Siwmw":["更多选项"],"3UZudY":["Stop trigger must be below mark"],"3fPjUY":["Pro"],"3oHIhx":["TP must be above entry"],"4+HkLv":["Show Values in Quote Asset"],"40lLFI":["下一页"],"42w2ly":["持仓量"],"46Sm8O":["Gas:"],"4HtGBb":["MAX"],"4J2s8f":["取消中..."],"4Kyst7":["Agent mode: Orders signed automatically (fast)"],"4NuBK4":["等待成交记录..."],"4Vzb+4":["平仓中..."],"54QqdM":["签名中..."],"5FsTU5":["钱包客户端未就绪"],"5Omwef":["Scale level below min notional"],"5joj8M":["Transaction breakdown"],"5oE2C+":["已按 ",["0"]," 排序"],"5u8fWJ":["Back to asset selection"],"5xKxZd":["TP trigger price"],"5zbbOn":["Invalid amount"],"60m4P5":["24H VOL"],"621rYf":["支付"],"63wHTy":["Edit TP/SL"],"69b7aE":["Open command menu"],"6Aih4U":["Offline"],"6gRgw8":["Retry"],"6jVqpA":["加载交易历史失败。"],"6poLt9":["切换侧边栏"],"6vyJOd":["Deposit from any chain to your Hyperliquid account"],"6zAIUU":["Cannot switch to Isolated mode with an open position. Close your position first."],"72c5Qo":["合计"],"77Rx22":["收起账户面板"],"7L01XJ":["操作"],"7Lv7j5":["Margin Mode"],"7VpPHA":["Confirm"],"7l15X4":["失败"],"88cUW+":["You receive"],"8F1i42":["页面未找到"],"8Fu1E7":["切换数量模式"],"8Itoo3":["Unrealized P&L"],"8LkAxv":["SL must be below entry"],"8SNccp":["Switch to ",["displayName"]," market, short position"],"8gcijf":["Insufficient <0/> balance"],"8hvfaA":["Position closed"],"8yhvii":["Mid"],"997z0L":["Spot: Max 1% (100 basis points)"],"9ACh/c":["无标记价格"],"9SBcQj":["All cross positions share the same cross margin as collateral. In the event of liquidation, your cross margin balance and any remaining open positions may be forfeited."],"9lH5ev":["加载未成交订单中..."],"9mRTyg":["区块:"],"9qnvU0":["Switch to ",["displayName"]," market"],"9ykF9H":["Hide small"],"9zb2WA":["Connecting"],"A+q/Is":["个市场"],"A1taO8":["Search"],"AArF6S":["Move USDC between your Perp and Spot accounts."],"AEGM8s":["Failed to copy"],"AErIoZ":["Manage your risk on individual positions by restricting the amount of margin allocated to each. If the margin ratio of an isolated position reaches 100%, the position will be liquidated. Margin can be added or removed to individual positions in this mode."],"AGWjPT":["设置 ",["p"],"%"],"AUYALh":["即将推出"],"AUahCv":["Insufficient funds for gas"],"AeXO77":["账户"],"B5AKvo":["标记价"],"BOppjS":["无市场"],"BSj/hz":["添加资金"],"BvlAGq":["未实现盈亏"],"BxBZCk":["Each position uses only its allocated margin. If the margin ratio reaches 100%, the position is liquidated. Margin can be added or removed individually."],"C2TJN3":["加载 TWAP 订单中..."],"CF1zwJ":["加载资金费用历史失败。"],"CK1KXz":["最大"],"CMHmbm":["滑点"],"CP3D8G":["进度"],"CW11B+":["Minimum"],"CfRvLF":["Swap failed"],"CgqzuN":["全仓"],"Cj2Gtd":["数量"],"Cjh38d":["New to wallets?"],"Ck1xL4":["You send"],"Co8gGw":["No active TWAP orders."],"CtByM7":["连接钱包"],"CzeOTH":["Wallet (",["0"],")"],"D243f/":["Install a wallet extension to continue"],"D6X5UU":["Market Close"],"DBVcOk":["More intervals"],"DHhJ7s":["上一页"],"DPfwMq":["Done"],"DWs3bP":["Mark:"],"DXxfpS":["选择订单簿聚合"],"DZo9LT":["Mock Wallet (Testing)"],"DabQ8P":["TWAP 订单"],"E8sxZm":["在图表上显示仓位"],"EE/1QC":["Format for numbers and dates"],"ETkk6Z":["TOKEN"],"Enslfm":["Destination"],"F6pfE9":["活跃"],"FF5wYg":["选择所有订单"],"FKY8dA":["Est. P&L at Limit"],"FLNk0d":["Min order $",["ORDER_MIN_NOTIONAL_USD"]],"FLkCnQ":["You can revoke permissions at any time by registering a new approval with 0% fee rate. Builder codes are processed entirely onchain as part of the fee logic."],"FS+bo3":["无法平仓。"],"Fdp03t":["on"],"FmemI7":["FUNDING"],"FqmhBo":["No balance on Hyperliquid. Deposit first."],"FxVG/l":["Copied to clipboard"],"G3oEYi":["选择订单"],"G6etJA":["加载余额中..."],"GINUX/":["Only you control your funds. No email or password required."],"GLWV4x":["Builder must have at least 100 USDC in perps account value"],"GX8GKD":["Assets"],"GbNWWs":["Slippage tolerance"],"H2Sfhg":["Trigger"],"HJlY85":["无余额"],"HZN+sw":["Trading"],"HZdgTJ":["Select signing mode"],"HfT9T6":["No route available. Try a different amount or asset."],"Hp1l6f":["Current"],"I8LlJA":["TradingView"],"ICCWOn":["无法创建钱包"],"IJfJAB":["Margin mode"],"IJndUb":["Connect your wallet to register a builder code"],"IV3hWp":["Enter trigger price"],"IZL9b6":["全仓杠杆"],"IcSLiu":["Oracle"],"Ieh2cV":["展开账户面板"],"IoAuJG":["Sending..."],"IwI0rY":["Wrong network"],"IyNxxU":["永续"],"J24FyN":["Bridge"],"J28zul":["连接中..."],"JHxGP5":["交易"],"JVvYNb":["Deposit complete"],"JXzPJX":["SL"],"JfWXib":["Track on LI.FI Explorer"],"JlFcis":["Send"],"Ju4B2M":["选择杠杆"],"JuyzMZ":["Maximum slippage tolerance for market orders"],"KTNWsg":["Withdrawal failed"],"KYAjf3":["逐仓"],"KZHfkR":["存入资金"],"KaqqlB":["在 Hyperliquid 存款"],"Ke6k18":["Leverage"],"KeDrPl":["Minimum deposit is 5 USDC"],"KnTbj2":["在图表上显示订单"],"Kp3IPD":["No response from exchange"],"KsqhWn":["质押"],"KxF048":["自定义您的交易体验。"],"Kz1TxG":["未成交"],"L+qiq+":["市场"],"L4jnDP":["已执行"],"LEbOpR":["More details"],"LHfqhz":["New deposit"],"LMMGPr":["Submitting..."],"Le70b5":["更多页面"],"LhMjLm":["时间"],"LlsvFY":["Reduce"],"Lx+htK":["Swap submitted"],"Lz5J1x":["Sort by ",["sortLabel"]],"M0biAV":["Preparing your quote..."],"M9fkA0":["Liquidated"],"MLQamJ":["连接钱包查看交易历史。"],"MSSmsu":["To Perp"],"MTq3hP":["24h vol"],"Mim7/r":["Insufficient ",["fromTokenDisplay"]," balance"],"MpLcsV":["Loading balances across all chains..."],"MqA4qt":["投资组合"],"MyytBE":["Send tokens to another account on the Hyperliquid L1."],"N40H+G":["All"],"NIDWjN":["SL must be above entry"],"NJNMJX":["TWAP"],"NNJKWa":["Connect your wallet to withdraw funds"],"NQtgSJ":["Failed to register builder code"],"NpuiU+":["永续合约"],"NsJrqM":["市场未就绪"],"ODVKKZ":["输入限价"],"OQGH4C":["限价只减仓"],"OR475H":["Network"],"OSnZvX":["Change leverage"],"OYsSpP":["Failed to reverse position"],"OZtEcz":["API"],"Oe3M3Y":["Switch to Arbitrum to deposit USDC to Hyperliquid"],"Oid00w":["Enter price range"],"OsyKSt":["提款"],"Otdc/Y":["连接钱包查看仓位。"],"OxPEUg":["使用中"],"PJEzIS":["Bridge to Hyperliquid"],"PLUB/s":["手续费"],"PNsB0A":["Fetching quote..."],"PTna/x":["未平仓量"],"PTyoXs":["Set SL to ",["p"],"%"],"PWRc/M":["Open positions count"],"PZBWpL":["切换到浅色模式"],"PaQ3df":["Enable"],"PcmIvv":["基点"],"PeO4lq":["Requirements:"],"PelVTv":["Register Builder Code"],"PiH3UR":["Copied!"],"Pl9jiz":["Show Orders"],"QD2PKQ":["End Price"],"QHcLEN":["已连接"],"QjUEvK":["全部取消"],"R68yLX":["设置止盈止损"],"RRXpo1":["空"],"RaWC6b":["Size exceeds position"],"Rb1yph":["清算价"],"RnpwtT":["TWAP minutes must be ",["TWAP_MINUTES_MIN"],"-",["TWAP_MINUTES_MAX"]],"RoE+o+":["只减仓"],"S33tz3":["未连接"],"S48xcO":["待处理"],"S9zH+G":["This action must be signed by your main wallet (not an agent/API wallet). The builder must have at least 100 USDC in perps account value."],"SEDVHU":["加载仓位中..."],"SEoDwA":["Take Limit"],"SJrFO1":["Position close actions"],"SVHeJc":["Direct mode: Sign each order with wallet"],"SWH2Eh":["Time in Force"],"SsGsC0":["取消选中的订单"],"Svkela":["上一页"],"T/pF0Z":["从收藏中移除"],"TDa39c":["24小时价格"],"THTG58":["Select asset to bridge"],"THmCgW":["Select market"],"TK3J5O":["Send Tokens"],"TK9uys":["选择 ",["coin"]," 市场"],"TLa4Oo":["连接钱包以管理仓位。"],"TNtZN2":["TP"],"TQ/QV5":["No trading pair available for ",["fromToken"],"/",["toToken"]],"TT0aVH":["Order submitted"],"TbjyhA":["文档"],"Tm8JF7":["Connect your wallet to bridge funds"],"Tuc34V":["Confirm Bridge"],"Tz0i8g":["设置"],"U3As+R":["Take Profit"],"U86eEA":["No user address"],"URvngU":["Est. time"],"UXtGFD":["Full Position"],"UwG7db":["What is a wallet?"],"V0ubMJ":["止盈 / 止损"],"V3XYw0":["P&L"],"V6ETmV":["To Spot"],"VAZUpd":["下单失败"],"VIwCaD":["开仓价"],"VMLGYS":["Switch to Mainnet"],"VU5rsP":["Number Format"],"VXCk+w":["加载市场中..."],"VYFX4v":["Perpetuals"],"VcaZ5z":["未找到市场。"],"VgTxu0":["签名器未就绪"],"VmhkuH":["Account and wallet"],"W1k7eB":["24h"],"W75iLe":["连接钱包查看余额。"],"W9Fxbx":["SL trigger price"],"WISj7i":["Place Limit Close"],"WNMYIN":["已取消"],"WajXzx":["Est. P&L"],"WhSRZw":["This row answers: “What is the selected market doing right now?” — mark price, 24h move, oracle, volume, open interest, and funding. Pick a layout that balances scan speed, density, and calm."],"Wqz0SO":["Low Balance"],"XCIAdj":["RO"],"XFp9Bf":["Scale levels must be ",["SCALE_LEVELS_MIN"],"-",["SCALE_LEVELS_MAX"]],"XYLcNv":["支持"],"XbxYxh":["Price grouping"],"Y1W9ip":["净值"],"Y9gMWT":["加载订单簿失败。"],"YZLEvW":["Processing deposit"],"YnKdJE":["已用保证金"],"YxaAON":["价差"],"Z3FXyt":["加载中..."],"ZB/Jm6":["Margin & leverage"],"ZDBdfg":["Enter TP or SL price"],"ZFtwlj":["成交"],"ZHJZmo":["Amount (USDC)"],"ZYnwzF":["Disconnected"],"ZmGjjl":["Your bridge is still processing. Funds are safe."],"a/MzGi":["sent to Hyperliquid"],"a7u1N9":["价格"],"a9q6hE":["waiting"],"aAIQg2":["Appearance"],"adcjkX":["Limit close order placed"],"axyo2z":["连接钱包以管理订单。"],"b7Wduj":["买入"],"bMJMhJ":["WebSocket 错误"],"bSCsJh":["止盈止损"],"bUUVED":["资产"],"bVPv2S":["实时更新"],"bW1xET":["Stop trigger must be above mark"],"bifv6N":["Scale"],"bm80CF":["连接钱包查看 TWAP 订单。"],"c+VX3P":["Custom TP percentage"],"c+tzs5":["Sign in wallet..."],"c2npeq":["Custom SL percentage"],"cJzJWa":["Transfer failed"],"cXvnJ8":["市价单滑点"],"csDS2L":["可用"],"cwQAhE":["Failed to switch margin mode"],"d+F6q9":["Created"],"dEgA5A":["取消"],"dQGImW":["账户余额"],"daWrYT":["Agent verification failed"],"dcKNhk":["Taking longer than expected"],"dfIw2n":["美元价值"],"dkzoLd":["加载资金费用历史中..."],"doRJE6":["Set TP/SL for ",["0"]],"drvdT3":["Add TP/SL"],"e/cvV1":["Verifying..."],"e/vgsz":["Total Value"],"e0bpdM":["未知交易对: ",["symbolName"]],"e2oWGN":["No tokens with value found across supported chains"],"eXs0Bt":["搜索市场..."],"ebwNSs":["Remove ",["displayName"]," from favorites"],"eiZzfX":["Builder codes allow DeFi builders to receive a fee on fills they send on behalf of users. They are set per-order for maximal flexibility."],"ejVYRQ":["From"],"es+Zrf":["Transferring..."],"fBckrr":["不支持的分辨率: ",["0"]],"fEC2uI":["将 USDC 转入您的 Hyperliquid 账户以开始交易。"],"fOG42Y":["Connect your wallet to start trading on Hyperliquid"],"fVmG6b":["Failed to load balances"],"fYSYwH":["无未成交订单。"],"fYUNRJ":["Direct"],"fhqG7u":["Connected: ",["0"],"...",["1"]],"fqDzSu":["费率"],"fsBGk0":["余额"],"g5PJI8":["OPEN INT"],"gIpxlQ":["Minimum withdrawal is $",["MIN_WITHDRAW_USD"]],"gL/sdV":["Popular"],"gMHkDJ":["加载余额失败。"],"gVLSxk":["Transaction was rejected"],"ga6DLx":["Your bridge is still processing. Funds are safe — LI.FI routes are always recoverable."],"gbNGPv":["Risk/Reward"],"gsL/Ic":["All cross positions share the same cross margin as collateral. In the event of liquidation, your cross margin balance and any remaining open positions under assets in this mode may be forfeited."],"h+3Zi0":["加载钱包中..."],"h0gbH9":["从 Arbitrum 或其他链桥接 USDC 到您的 Hyperliquid 账户。"],"h3yIJ7":["Other Options"],"h4z/Mq":["Builder Fee Approval"],"hBm2XN":["按 ",["0"]," 排序"],"hJet42":["未找到资金费用记录。"],"hXzOVo":["下一页"],"hehnjM":["Amount"],"hgpMHD":["总数量"],"hhyc5L":["市价单允许的最大滑点。"],"htJlxw":["按 ",["headerLabel"]," 排序"],"i+4Fbp":["Deposit failed"],"i6t9oo":["加载 TWAP 历史失败。"],"i71+SY":["Position reversed"],"iDNBZe":["通知"],"iE2I5G":["Enabling"],"iEQQyu":["Agent"],"iFlxcb":["选择收藏市场"],"iGma9e":["Update failed"],"iH8pgl":["Back"],"iKex+G":["Limit Price (USDC)"],"iSLIjg":["Connect"],"iaX5Av":["加载成交记录失败。"],"iflFdl":["Place ",["0"]," Order"],"ifzbyQ":["USDC"],"ipnMKT":[["p"],"%"],"iu7tUI":["面包屑导航"],"j085nT":["订单价值"],"jH4vGi":["Net received"],"jJCREz":["连接钱包查看资金费用。"],"jL9aa6":["Swap direction"],"jX19nk":["连接钱包查看未成交订单。"],"ja6RDy":["卖出做空"],"jgWsKr":["No trading pair available for <0/>/<1/>"],"jj+8Tx":["Approve a builder to charge fees on orders placed on your behalf. Builder codes allow DeFi applications to receive a portion of trading fees."],"jjXeQg":["No tokens available"],"k1ifdL":["Processing..."],"kM5ZE+":["Confirm in wallet"],"kVjBmF":["限价"],"kWXidS":["平仓"],"kj3M8S":["存款"],"l0Fmrm":["显示语言"],"l4NGKt":["未找到成交记录。"],"l75CjT":["Yes"],"lB46ke":["标记"],"lD8YU8":["Perps Account"],"lHY6Dg":["现货"],"lOEm/1":["Order filled"],"lUDY9v":["Cancel All"],"lVDmF0":["Trade ClockCounterClockwise"],"lZZl3m":["Stop Loss"],"laDnrx":["未找到 TWAP 订单。"],"lg7+vk":["Side"],"lkcAoj":["Margin"],"llUlxR":["盈亏"],"llckC0":["切换中..."],"lm6AkD":["TP Price"],"lobQ3s":["预估费用"],"lvC44O":["Max Fee Rate (%)"],"m+2g06":["will arrive in ~3 min"],"m16xKo":["Add"],"m1eb26":["End Price (USDC)"],"m6RmA/":["Insufficient ",["0"]," balance"],"mCk5iK":["Send failed"],"mE/G/f":["Invalid Ethereum address"],"mSpJjq":["Transfer USDC"],"mcOcEg":["Market stats row — layout options"],"mlQXdF":["Trigger Price"],"mnFamZ":["% 已成交"],"n/qDNz":["切换到深色模式"],"nJBD8K":["市场元数据不可用。"],"nJTjIr":["Swapping..."],"nQrkW7":["Max 0.1% (10 bps) for perps, 1% (100 bps) for spot. Enter as decimal (e.g., 0.01 for 1 basis point)."],"nVMDTs":["TP must be below entry"],"nWIodQ":["Take profit trigger must be below mark"],"nbrdjK":["In Orders"],"njn4bC":["Confirm transaction in your wallet"],"nuBbBr":["图表"],"nuqpbC":["Fee Limits:"],"nwcAtu":["延迟:"],"nwtY4N":["出错了"],"o+CS/D":["Failed to load order history."],"o636h+":["Stop Market"],"o7Xo9X":["24H"],"o8uQyS":["最近成交"],"oJv+QI":["Randomize timing"],"oW1G8i":["Your funds were successfully deposited."],"ocovOd":["均价"],"odEUjn":["Advanced order types"],"okV5rM":["Failed to close position"],"ol8emB":["Connect your wallet to view order history."],"olEUh2":["Successful"],"orI3hB":["分页"],"orv4UV":["Set TP to ",["p"],"%"],"otaTjg":["多"],"ovBPCi":["Default"],"p/78dY":["仓位"],"p0ngfp":["订单队列"],"p6NueD":["新"],"pBsoKL":["添加到收藏"],"pHVQlG":["取消所有订单"],"pI2rip":["Insufficient balance (includes $",["WITHDRAWAL_FEE_USD"]," fee)"],"pIwpkw":["前往交易终端"],"pWF6+F":["Show Executions"],"pY5TE9":["Could not fetch your token balances"],"perfgr":["Funding History"],"pvnfJD":["Dark"],"qCdZab":["Switch to ",["displayName"]," market, long position"],"qJb6G2":["Try Again"],"qRhSY/":["最小订单 $10"],"qX/0av":["Select how margin is allocated for your positions"],"qaeo2F":["保证金率"],"qfS/h8":[["formatted"]," USDC deposited to Hyperliquid"],"qiOIiY":["买入"],"qlRrjA":["Set to ",["p"],"%"],"qn4nUK":["Builder Address"],"qnKMyZ":["资金费用"],"quX3ha":["Register Another"],"r+w5Bx":["No balances found"],"r22IQ2":["Time / Total"],"rLi46F":["Must be signed by main wallet (not agent/API wallet)"],"rPNGe1":["Take profit trigger must be above mark"],"rPX0Ef":["Minimum withdrawal is $",["0"]],"rfbg3y":["Switch to ",["0"]," market"],"rm3fFf":["连接钱包查看账户"],"ruL48O":["Number of Orders"],"ryxkVx":["以美元显示数值"],"s/ereB":["活跃"],"sLpZwu":["取消 TWAP 订单"],"sO+nPg":["保证金要求"],"sO0DWk":["Switch between mainnet and testnet. Page will reload."],"sQWzwD":["View on explorer"],"sYnC5v":["Select ",["displayName"]," market"],"shmNel":["Entry Price"],"stec1a":["无法取消订单。"],"szH29R":["未找到余额。存入资金开始交易。"],"t+B4rK":["24h Change"],"t+R8+P":["Execution"],"t5EZAB":["加载交易历史中..."],"tHPbHS":["排行榜"],"tMX8XH":["Select tokens to swap"],"tVJk4q":["取消订单"],"tZ9ftZ":["现货"],"tnJl4V":["Withdrawal submitted"],"u4LEQ2":["You are on Testnet"],"uAQUqI":["状态"],"uEDo87":["About Builder Codes"],"uWi2Q+":["侧边栏"],"uZi2t8":["Confirmation screen coming in next slice"],"ufWF2Y":["金库"],"ugB2se":["No order history found."],"uoD7vB":["Fee rate must be between 0.001% and 1%"],"v/76pL":["订单簿"],"vH2C/2":["Swap"],"vI9OLW":["Bridge failed"],"vIWDJQ":[["totalSeconds"]," seconds"],"vT/Pj1":["成交量"],"vXIe7J":["Language"],"vXWzNt":["启用交易失败"],"vZW+PE":["Your transaction is being processed"],"vcHBQG":["Show Positions"],"vpjkXb":["Limit Close"],"vrnnn9":["Processing"],"vtJ2yO":["Explorer"],"vyMDXl":["显示扫描线"],"w+oJCW":["will arrive in ~5 min"],"w3hmRj":["等待订单簿..."],"wDbqhD":["Reverse"],"wDy6uq":["Loading order history..."],"wMHvYH":["价值"],"wZVzVU":["Bridge complete"],"wdxz7K":["Source"],"wezJ3v":["Mark Price"],"wq30T4":["清算"],"wvgF6w":["Order History"],"x+7jw2":["超过最大数量"],"xGVfLh":["Continue"],"xI4H1r":["Switch to ",["displayCoin"]," market"],"xNB0TS":["卖出"],"xTSCVP":["Builder code registered successfully!"],"xWnh+P":["Start Price (USDC)"],"y62Dys":["Network fee"],"yQE2r9":["加载中"],"yRkqG9":["限价"],"yT7sOL":["Trade via ",["0"]," spot market"],"yVfwJk":["Start and end must differ"],"ydOXwr":["Perp"],"ye6Vnv":["Available:"],"ygCKqB":["止损"],"ygkMcg":["限价"],"yxnt3y":["Fill status"],"yz7wBu":["关闭"],"zEGs+1":["Builders"],"zKCXG+":["Trigger Price (USDC)"],"zKJcRr":["Perps: Max 0.1% (10 basis points)"],"zPGNJm":["Transfer"],"zXagFp":["复制地址"],"zZmf1N":["已成交"],"zdcGo/":["Bridging in progress"],"zjwWvI":["Start Price"],"znqB4T":["Insufficient balance"],"zwWKhA":["Learn more"]}',
+ '{"++OGth":["Deposit successful"],"+1S7b1":["钱包未连接"],"+6YAwo":["selected"],"+8WrGc":["未找到钱包"],"+F8cLG":["显示移动端侧边栏。"],"+JE0m7":["加载仓位失败。"],"+K0AvT":["断开连接"],"+N2Rqk":["无活跃仓位。"],"+N7uug":["1 year"],"+ONfBR":["PRICE"],"+ZV3i5":["加载未成交订单失败。"],"+b7T3G":["Updated"],"+hA/UM":["未成交订单"],"+nuEh/":["Estimated time"],"+w/hP1":["在图表上显示成交"],"+xnyQO":["输入数量"],"+z3YcL":["Position actions"],"+zy2Nq":["类型"],"/2hibY":["取消选中"],"/AsMcZ":["Enabling..."],"/G76GM":["Your current open position on this market"],"/IX/7x":["Other"],"/PvdTS":["Gas (",["0"],")"],"/TT0Oq":["预言机"],"/cF7Rs":["成交量"],"/gY2VH":["按 ",["0"]," 筛选"],"/jQctM":["To"],"/kXBrK":["Total time"],"/mfICu":["Fees"],"/tPR7R":["Builder Fee"],"0+Iw6C":["Duration (Minutes)"],"0+X+sh":["Spot Account"],"0LZtsz":["Take Market"],"0Mx4+k":["No trading pair available for ",["fromTokenDisplay"],"/",["toTokenDisplay"]],"0P2gFy":["您查找的页面不存在。"],"0QDjxt":["Balance:"],"0RrIzN":["选择代币"],"0Xlr0L":["Minimum deposit is ",["0"]," USDC"],"0cIV8s":["Open Positions"],"0exG4Q":["资金费率"],"0z59Ep":["卖出"],"1BkDWk":["买入做多"],"1PJ7wL":["Confirm Close"],"1QfxQT":["关闭"],"1UzENP":["No"],"1ZMjyh":["The builder at ",["0"],"...",["1"]," can now charge up to ",["maxFeeRate"],"% fee on orders placed on your behalf."],"1h+RBg":["Orders"],"1njn7W":["Light"],"29VNqC":["Unknown error"],"2Ea5Vz":["交易历史"],"2FYpfJ":["更多"],"2M2s7z":["启用交易"],"2OWSzg":["Account Equity"],"2PsTzL":["已完成"],"2tQrK2":["切换到 Arbitrum"],"3/vMct":["A crypto wallet lets you store and manage your digital assets securely."],"30ZPad":["活跃仓位"],"3CHbH/":["SL Price"],"3DtJpz":["Stop Limit"],"3IkQgP":["Secure & Private"],"3Siwmw":["更多选项"],"3UZudY":["Stop trigger must be below mark"],"3fPjUY":["Pro"],"3oHIhx":["TP must be above entry"],"3q1W5Q":["Isolated → Cross"],"4+HkLv":["Show Values in Quote Asset"],"40lLFI":["下一页"],"42w2ly":["持仓量"],"46Sm8O":["Gas:"],"4HtGBb":["MAX"],"4J2s8f":["取消中..."],"4Kyst7":["Agent mode: Orders signed automatically (fast)"],"4NuBK4":["等待成交记录..."],"4Vzb+4":["平仓中..."],"4avvba":["No trades found."],"54QqdM":["签名中..."],"5FsTU5":["钱包客户端未就绪"],"5Omwef":["Scale level below min notional"],"5joj8M":["Transaction breakdown"],"5oE2C+":["已按 ",["0"]," 排序"],"5u8fWJ":["Back to asset selection"],"5xKxZd":["TP trigger price"],"5zbbOn":["Invalid amount"],"60m4P5":["24H VOL"],"621rYf":["支付"],"63wHTy":["Edit TP/SL"],"69b7aE":["Open command menu"],"6Aih4U":["Offline"],"6fpdpR":["Show fewer wallets"],"6gRgw8":["Retry"],"6jVqpA":["加载交易历史失败。"],"6poLt9":["切换侧边栏"],"6vyJOd":["Deposit from any chain to your Hyperliquid account"],"6zAIUU":["Cannot switch to Isolated mode with an open position. Close your position first."],"72c5Qo":["合计"],"77Rx22":["收起账户面板"],"7L01XJ":["操作"],"7Lv7j5":["Margin Mode"],"7VpPHA":["Confirm"],"7l15X4":["失败"],"88cUW+":["You receive"],"8F1i42":["页面未找到"],"8Fu1E7":["切换数量模式"],"8Itoo3":["Unrealized P&L"],"8LkAxv":["SL must be below entry"],"8SNccp":["Switch to ",["displayName"]," market, short position"],"8WrNUb":["TIF"],"8gcijf":["Insufficient <0/> balance"],"8hvfaA":["Position closed"],"8yhvii":["Mid"],"997z0L":["Spot: Max 1% (100 basis points)"],"9ACh/c":["无标记价格"],"9SBcQj":["All cross positions share the same cross margin as collateral. In the event of liquidation, your cross margin balance and any remaining open positions may be forfeited."],"9lH5ev":["加载未成交订单中..."],"9mRTyg":["区块:"],"9qnvU0":["Switch to ",["displayName"]," market"],"9ykF9H":["Hide small"],"9zb2WA":["Connecting"],"A+q/Is":["个市场"],"A1taO8":["Search"],"AArF6S":["Move USDC between your Perp and Spot accounts."],"AEGM8s":["Failed to copy"],"AErIoZ":["Manage your risk on individual positions by restricting the amount of margin allocated to each. If the margin ratio of an isolated position reaches 100%, the position will be liquidated. Margin can be added or removed to individual positions in this mode."],"AGWjPT":["设置 ",["p"],"%"],"AUYALh":["即将推出"],"AUahCv":["Insufficient funds for gas"],"AeXO77":["账户"],"B5AKvo":["标记价"],"BOppjS":["无市场"],"BSj/hz":["添加资金"],"BvlAGq":["未实现盈亏"],"BxBZCk":["Each position uses only its allocated margin. If the margin ratio reaches 100%, the position is liquidated. Margin can be added or removed individually."],"C2TJN3":["加载 TWAP 订单中..."],"C8kdVg":["Fill limit price with mark price ",["0"]],"CF1zwJ":["加载资金费用历史失败。"],"CK1KXz":["最大"],"CMHmbm":["滑点"],"CP3D8G":["进度"],"CW11B+":["Minimum"],"CfRvLF":["Swap failed"],"CgqzuN":["全仓"],"Cj2Gtd":["数量"],"CjCD8F":[["0"]," more wallets"],"Cjh38d":["New to wallets?"],"Ck1xL4":["You send"],"Co8gGw":["No active TWAP orders."],"CtByM7":["连接钱包"],"CzeOTH":["Wallet (",["0"],")"],"D243f/":["Install a wallet extension to continue"],"D6X5UU":["Market Close"],"DBVcOk":["More intervals"],"DHhJ7s":["上一页"],"DPfwMq":["Done"],"DWs3bP":["Mark:"],"DXxfpS":["选择订单簿聚合"],"DZo9LT":["Mock Wallet (Testing)"],"DabQ8P":["TWAP 订单"],"DiL7DR":["Perp → Spot"],"Do4l1I":["Edit leverage"],"DzHUbu":["Copy address"],"E8sxZm":["在图表上显示仓位"],"EE/1QC":["Format for numbers and dates"],"ETkk6Z":["TOKEN"],"Enslfm":["Destination"],"F6pfE9":["活跃"],"FF5wYg":["选择所有订单"],"FKY8dA":["Est. P&L at Limit"],"FLNk0d":["Min order $",["ORDER_MIN_NOTIONAL_USD"]],"FLkCnQ":["You can revoke permissions at any time by registering a new approval with 0% fee rate. Builder codes are processed entirely onchain as part of the fee logic."],"FS+bo3":["无法平仓。"],"Fdp03t":["on"],"FeRMvR":["Margin · Iso"],"FmemI7":["FUNDING"],"FqmhBo":["No balance on Hyperliquid. Deposit first."],"FxVG/l":["Copied to clipboard"],"G3oEYi":["选择订单"],"G6etJA":["加载余额中..."],"GINUX/":["Only you control your funds. No email or password required."],"GLWV4x":["Builder must have at least 100 USDC in perps account value"],"GX8GKD":["Assets"],"GbNWWs":["Slippage tolerance"],"H2Sfhg":["Trigger"],"HJlY85":["无余额"],"HZN+sw":["Trading"],"HZdgTJ":["Select signing mode"],"HfT9T6":["No route available. Try a different amount or asset."],"Hp1l6f":["Current"],"I8LlJA":["TradingView"],"ICCWOn":["无法创建钱包"],"IHIyQG":["positions"],"IJfJAB":["Margin mode"],"IJndUb":["Connect your wallet to register a builder code"],"IV3hWp":["Enter trigger price"],"IZL9b6":["全仓杠杆"],"IcSLiu":["Oracle"],"Ieh2cV":["展开账户面板"],"IoAuJG":["Sending..."],"IwI0rY":["Wrong network"],"IyNxxU":["永续"],"J24FyN":["Bridge"],"J28zul":["连接中..."],"JHxGP5":["交易"],"JVvYNb":["Deposit complete"],"JXzPJX":["SL"],"JbH+Me":["Leverage Settings"],"Jc94Bq":["No open positions."],"JfWXib":["Track on LI.FI Explorer"],"JlFcis":["Send"],"Ju4B2M":["选择杠杆"],"JuyzMZ":["Maximum slippage tolerance for market orders"],"KTNWsg":["Withdrawal failed"],"KYAjf3":["逐仓"],"KZHfkR":["存入资金"],"KaqqlB":["在 Hyperliquid 存款"],"Ke6k18":["Leverage"],"KeDrPl":["Minimum deposit is 5 USDC"],"KnTbj2":["在图表上显示订单"],"Kp3IPD":["No response from exchange"],"KpAolD":["Failed to update leverage"],"KsqhWn":["质押"],"KxF048":["自定义您的交易体验。"],"Kz1TxG":["未成交"],"L+qiq+":["市场"],"L4jnDP":["已执行"],"LEbOpR":["More details"],"LGuqeh":["Please enter an address"],"LHfqhz":["New deposit"],"LMMGPr":["Submitting..."],"Le70b5":["更多页面"],"LhMjLm":["时间"],"LlsvFY":["Reduce"],"Lx+htK":["Swap submitted"],"Lz5J1x":["Sort by ",["sortLabel"]],"M0biAV":["Preparing your quote..."],"M9fkA0":["Liquidated"],"MLQamJ":["连接钱包查看交易历史。"],"MSSmsu":["To Perp"],"MTq3hP":["24h vol"],"Mim7/r":["Insufficient ",["fromTokenDisplay"]," balance"],"MpLcsV":["Loading balances across all chains..."],"MqA4qt":["投资组合"],"MyytBE":["Send tokens to another account on the Hyperliquid L1."],"N40H+G":["All"],"NIDWjN":["SL must be above entry"],"NJNMJX":["TWAP"],"NNJKWa":["Connect your wallet to withdraw funds"],"NNtdiI":["Resets in"],"NQtgSJ":["Failed to register builder code"],"NpuiU+":["永续合约"],"NsJrqM":["市场未就绪"],"O5ycjq":["trades"],"ODVKKZ":["输入限价"],"OQGH4C":["限价只减仓"],"OR475H":["Network"],"OSnZvX":["Change leverage"],"OYsSpP":["Failed to reverse position"],"OZtEcz":["API"],"Oe3M3Y":["Switch to Arbitrum to deposit USDC to Hyperliquid"],"Oid00w":["Enter price range"],"OsyKSt":["提款"],"Otdc/Y":["连接钱包查看仓位。"],"OxPEUg":["使用中"],"P9cEa2":["30 days"],"PJEzIS":["Bridge to Hyperliquid"],"PLUB/s":["手续费"],"PNsB0A":["Fetching quote..."],"PTna/x":["未平仓量"],"PTyoXs":["Set SL to ",["p"],"%"],"PWRc/M":["Open positions count"],"PWk+Et":["No spot balances."],"PXH7+k":["Cross → Isolated"],"PZBWpL":["切换到浅色模式"],"PaQ3df":["Enable"],"PcmIvv":["基点"],"PeO4lq":["Requirements:"],"PelVTv":["Register Builder Code"],"PiH3UR":["Copied!"],"Pl9jiz":["Show Orders"],"Q9fVmw":["Go to Trade"],"QD2PKQ":["End Price"],"QHcLEN":["已连接"],"QjUEvK":["全部取消"],"QlN9wA":["Destination address"],"R68yLX":["设置止盈止损"],"RRXpo1":["空"],"RaWC6b":["Size exceeds position"],"Rb1yph":["清算价"],"RnpwtT":["TWAP minutes must be ",["TWAP_MINUTES_MIN"],"-",["TWAP_MINUTES_MAX"]],"RoE+o+":["只减仓"],"RwFtJj":["Cross Margin Ratio"],"S33tz3":["未连接"],"S48xcO":["待处理"],"S9zH+G":["This action must be signed by your main wallet (not an agent/API wallet). The builder must have at least 100 USDC in perps account value."],"SEDVHU":["加载仓位中..."],"SEoDwA":["Take Limit"],"SHk3ns":["Balance available to trade"],"SJrFO1":["Position close actions"],"SVHeJc":["Direct mode: Sign each order with wallet"],"SWH2Eh":["Time in Force"],"SsGsC0":["取消选中的订单"],"Svkela":["上一页"],"T/pF0Z":["从收藏中移除"],"TDa39c":["24小时价格"],"THTG58":["Select asset to bridge"],"THfjt2":["Cross Account Leverage"],"THmCgW":["Select market"],"TK3J5O":["Send Tokens"],"TK9uys":["选择 ",["coin"]," 市场"],"TLa4Oo":["连接钱包以管理仓位。"],"TNawll":["Disconnect wallet"],"TNtZN2":["TP"],"TP9/K5":["Token"],"TQ/QV5":["No trading pair available for ",["fromToken"],"/",["toToken"]],"TT0aVH":["Order submitted"],"TbjyhA":["文档"],"Tm8JF7":["Connect your wallet to bridge funds"],"Tuc34V":["Confirm Bridge"],"Tz0i8g":["设置"],"U3As+R":["Take Profit"],"U86eEA":["No user address"],"URmyfc":["Details"],"URvngU":["Est. time"],"UXtGFD":["Full Position"],"UwG7db":["What is a wallet?"],"V0ubMJ":["止盈 / 止损"],"V3XYw0":["P&L"],"V5khLm":["orders"],"V6ETmV":["To Spot"],"VAZUpd":["下单失败"],"VIwCaD":["开仓价"],"VMLGYS":["Switch to Mainnet"],"VU5rsP":["Number Format"],"VXCk+w":["加载市场中..."],"VYFX4v":["Perpetuals"],"VcaZ5z":["未找到市场。"],"VgTxu0":["签名器未就绪"],"VmhkuH":["Account and wallet"],"W1k7eB":["24h"],"W75iLe":["连接钱包查看余额。"],"W9Fxbx":["SL trigger price"],"WISj7i":["Place Limit Close"],"WNMYIN":["已取消"],"WRelac":["Cannot switch to isolated mode with an open position"],"WajXzx":["Est. P&L"],"Wqz0SO":["Low Balance"],"XCIAdj":["RO"],"XFp9Bf":["Scale levels must be ",["SCALE_LEVELS_MIN"],"-",["SCALE_LEVELS_MAX"]],"XTwHmT":["Spot Balances"],"XYLcNv":["支持"],"XbxYxh":["Price grouping"],"Y1W9ip":["净值"],"Y9gMWT":["加载订单簿失败。"],"YZLEvW":["Processing deposit"],"Yf9lFX":["Ledger"],"YnKdJE":["已用保证金"],"YxaAON":["价差"],"Z3FXyt":["加载中..."],"ZB/Jm6":["Margin & leverage"],"ZDBdfg":["Enter TP or SL price"],"ZFtwlj":["成交"],"ZHJZmo":["Amount (USDC)"],"ZYnwzF":["Disconnected"],"ZmGjjl":["Your bridge is still processing. Funds are safe."],"a/MzGi":["sent to Hyperliquid"],"a7u1N9":["价格"],"a9q6hE":["waiting"],"aAIQg2":["Appearance"],"aVwGl4":["Portfolio PNL"],"adcjkX":["Limit close order placed"],"amRC+z":["Connect your wallet to view your account overview, positions, and history."],"axyo2z":["连接钱包以管理订单。"],"b7Wduj":["买入"],"bMJMhJ":["WebSocket 错误"],"bSCsJh":["止盈止损"],"bUUVED":["资产"],"bVPv2S":["实时更新"],"bW1xET":["Stop trigger must be above mark"],"bifv6N":["Scale"],"bm80CF":["连接钱包查看 TWAP 订单。"],"c+VX3P":["Custom TP percentage"],"c+tzs5":["Sign in wallet..."],"c2npeq":["Custom SL percentage"],"cJzJWa":["Transfer failed"],"cXvnJ8":["市价单滑点"],"csDS2L":["可用"],"cwQAhE":["Failed to switch margin mode"],"d+F6q9":["Created"],"dEgA5A":["取消"],"dQGImW":["账户余额"],"daWrYT":["Agent verification failed"],"dcKNhk":["Taking longer than expected"],"dfIw2n":["美元价值"],"dkzoLd":["加载资金费用历史中..."],"doRJE6":["Set TP/SL for ",["0"]],"drvdT3":["Add TP/SL"],"e/cvV1":["Verifying..."],"e/vgsz":["Total Value"],"e0bpdM":["未知交易对: ",["symbolName"]],"e2oWGN":["No tokens with value found across supported chains"],"eXs0Bt":["搜索市场..."],"ebwNSs":["Remove ",["displayName"]," from favorites"],"eiZzfX":["Builder codes allow DeFi builders to receive a fee on fills they send on behalf of users. They are set per-order for maximal flexibility."],"ejVYRQ":["From"],"es+Zrf":["Transferring..."],"fBckrr":["不支持的分辨率: ",["0"]],"fEC2uI":["将 USDC 转入您的 Hyperliquid 账户以开始交易。"],"fOG42Y":["Connect your wallet to start trading on Hyperliquid"],"fVmG6b":["Failed to load balances"],"fYSYwH":["无未成交订单。"],"fYUNRJ":["Direct"],"fhqG7u":["Connected: ",["0"],"...",["1"]],"fqDzSu":["费率"],"fsBGk0":["余额"],"g5PJI8":["OPEN INT"],"g5Xz8D":["Cross Margin"],"gIpxlQ":["Minimum withdrawal is $",["MIN_WITHDRAW_USD"]],"gL/sdV":["Popular"],"gMHkDJ":["加载余额失败。"],"gVLSxk":["Transaction was rejected"],"ga6DLx":["Your bridge is still processing. Funds are safe — LI.FI routes are always recoverable."],"gbNGPv":["Risk/Reward"],"gsL/Ic":["All cross positions share the same cross margin as collateral. In the event of liquidation, your cross margin balance and any remaining open positions under assets in this mode may be forfeited."],"h+3Zi0":["加载钱包中..."],"h0gbH9":["从 Arbitrum 或其他链桥接 USDC 到您的 Hyperliquid 账户。"],"h3yIJ7":["Other Options"],"h4z/Mq":["Builder Fee Approval"],"hBm2XN":["按 ",["0"]," 排序"],"hJet42":["未找到资金费用记录。"],"hXzOVo":["下一页"],"hehnjM":["Amount"],"hgpMHD":["总数量"],"hhyc5L":["市价单允许的最大滑点。"],"htJlxw":["按 ",["headerLabel"]," 排序"],"i+4Fbp":["Deposit failed"],"i6t9oo":["加载 TWAP 历史失败。"],"i71+SY":["Position reversed"],"iDNBZe":["通知"],"iE2I5G":["Enabling"],"iEQQyu":["Agent"],"iFlxcb":["选择收藏市场"],"iGma9e":["Update failed"],"iH8pgl":["Back"],"iKex+G":["Limit Price (USDC)"],"iSLIjg":["Connect"],"iaX5Av":["加载成交记录失败。"],"iflFdl":["Place ",["0"]," Order"],"ifzbyQ":["USDC"],"ipnMKT":[["p"],"%"],"iu7tUI":["面包屑导航"],"j085nT":["订单价值"],"jH4vGi":["Net received"],"jJCREz":["连接钱包查看资金费用。"],"jL9aa6":["Swap direction"],"jX19nk":["连接钱包查看未成交订单。"],"ja6RDy":["卖出做空"],"jgWsKr":["No trading pair available for <0/>/<1/>"],"jj+8Tx":["Approve a builder to charge fees on orders placed on your behalf. Builder codes allow DeFi applications to receive a portion of trading fees."],"jjXeQg":["No tokens available"],"k1ifdL":["Processing..."],"kM5ZE+":["Confirm in wallet"],"kVjBmF":["限价"],"kWXidS":["平仓"],"kj3M8S":["存款"],"l0Fmrm":["显示语言"],"l4NGKt":["未找到成交记录。"],"l75CjT":["Yes"],"lB46ke":["标记"],"lD8YU8":["Perps Account"],"lGBGsP":["Failed to connect with custom address"],"lHY6Dg":["现货"],"lOEm/1":["Order filled"],"lUDY9v":["Cancel All"],"lVDmF0":["Trade ClockCounterClockwise"],"lZZl3m":["Stop Loss"],"laDnrx":["未找到 TWAP 订单。"],"lg7+vk":["Side"],"lkcAoj":["Margin"],"llUlxR":["盈亏"],"llckC0":["切换中..."],"lm6AkD":["TP Price"],"lobQ3s":["预估费用"],"lvC44O":["Max Fee Rate (%)"],"m+2g06":["will arrive in ~3 min"],"m16xKo":["Add"],"m1eb26":["End Price (USDC)"],"m6RmA/":["Insufficient ",["0"]," balance"],"mCk5iK":["Send failed"],"mE/G/f":["Invalid Ethereum address"],"mSpJjq":["Transfer USDC"],"mTfEdq":["Perps Overview"],"mVfuH4":["Spot → Perp"],"mlQXdF":["Trigger Price"],"mnFamZ":["% 已成交"],"n/qDNz":["切换到深色模式"],"nJBD8K":["市场元数据不可用。"],"nJTjIr":["Swapping..."],"nQrkW7":["Max 0.1% (10 bps) for perps, 1% (100 bps) for spot. Enter as decimal (e.g., 0.01 for 1 basis point)."],"nVMDTs":["TP must be below entry"],"nVrjlH":["Withdrawable"],"nWIodQ":["Take profit trigger must be below mark"],"nbrdjK":["In Orders"],"njn4bC":["Confirm transaction in your wallet"],"nuBbBr":["图表"],"nuqpbC":["Fee Limits:"],"nwcAtu":["延迟:"],"nwtY4N":["出错了"],"o+CS/D":["Failed to load order history."],"o21Y+P":["entries"],"o636h+":["Stop Market"],"o7Xo9X":["24H"],"o8uQyS":["最近成交"],"oJv+QI":["Randomize timing"],"oW1G8i":["Your funds were successfully deposited."],"ocovOd":["均价"],"odEUjn":["Advanced order types"],"okV5rM":["Failed to close position"],"ol8emB":["Connect your wallet to view order history."],"olEUh2":["Successful"],"orI3hB":["分页"],"orv4UV":["Set TP to ",["p"],"%"],"otaTjg":["多"],"ovBPCi":["Default"],"p/78dY":["仓位"],"p0ngfp":["订单队列"],"p6NueD":["新"],"pBsoKL":["添加到收藏"],"pHVQlG":["取消所有订单"],"pI2rip":["Insufficient balance (includes $",["WITHDRAWAL_FEE_USD"]," fee)"],"pIwpkw":["前往交易终端"],"pUEa02":["Margin mode switched to ",["0"]," for ",["coin"]],"pWF6+F":["Show Executions"],"pY5TE9":["Could not fetch your token balances"],"perfgr":["Funding History"],"pvnfJD":["Dark"],"qCdZab":["Switch to ",["displayName"]," market, long position"],"qJb6G2":["Try Again"],"qRhSY/":["最小订单 $10"],"qX/0av":["Select how margin is allocated for your positions"],"qaeo2F":["保证金率"],"qfS/h8":[["formatted"]," USDC deposited to Hyperliquid"],"qiOIiY":["买入"],"qlRrjA":["Set to ",["p"],"%"],"qn4nUK":["Builder Address"],"qnKMyZ":["资金费用"],"quX3ha":["Register Another"],"r+w5Bx":["No balances found"],"r22IQ2":["Time / Total"],"rJe6vw":["7 days"],"rLi46F":["Must be signed by main wallet (not agent/API wallet)"],"rPNGe1":["Take profit trigger must be above mark"],"rPX0Ef":["Minimum withdrawal is $",["0"]],"rfbg3y":["Switch to ",["0"]," market"],"rm3fFf":["连接钱包查看账户"],"ruL48O":["Number of Orders"],"ryxkVx":["以美元显示数值"],"s/ereB":["活跃"],"sFSDo6":["No open positions. Leverage settings appear here when you have active positions."],"sLpZwu":["取消 TWAP 订单"],"sO+nPg":["保证金要求"],"sO0DWk":["Switch between mainnet and testnet. Page will reload."],"sQWzwD":["View on explorer"],"sYnC5v":["Select ",["displayName"]," market"],"scwWyY":["No ledger activity found."],"shmNel":["Entry Price"],"stec1a":["无法取消订单。"],"szH29R":["未找到余额。存入资金开始交易。"],"t+B4rK":["24h Change"],"t+CM0Z":["Leverage updated to ",["pendingLeverage"],"× for ",["coin"]],"t+Jqww":["Flip transfer direction"],"t+R8+P":["Execution"],"t5EZAB":["加载交易历史中..."],"tHPbHS":["排行榜"],"tMFDem":["No data available"],"tMX8XH":["Select tokens to swap"],"tVJk4q":["取消订单"],"tWiEVe":["Liq Price"],"tZ9ftZ":["现货"],"tnJl4V":["Withdrawal submitted"],"tp8zc8":["Custom wallet address"],"u4LEQ2":["You are on Testnet"],"uAQUqI":["状态"],"uBhZmI":["payments"],"uEDo87":["About Builder Codes"],"uWi2Q+":["侧边栏"],"uZi2t8":["Confirmation screen coming in next slice"],"ufWF2Y":["金库"],"ugB2se":["No order history found."],"uoD7vB":["Fee rate must be between 0.001% and 1%"],"uqe4In":["Total Equity"],"v/76pL":["订单簿"],"vH2C/2":["Swap"],"vI9OLW":["Bridge failed"],"vIWDJQ":[["totalSeconds"]," seconds"],"vT/Pj1":["成交量"],"vXIe7J":["Language"],"vXWzNt":["启用交易失败"],"vZW+PE":["Your transaction is being processed"],"vcHBQG":["Show Positions"],"vpjkXb":["Limit Close"],"vrnnn9":["Processing"],"vtJ2yO":["Explorer"],"vyMDXl":["显示扫描线"],"w+oJCW":["will arrive in ~5 min"],"w3hmRj":["等待订单簿..."],"wDbqhD":["Reverse"],"wDy6uq":["Loading order history..."],"wMHvYH":["价值"],"wZVzVU":["Bridge complete"],"wdxz7K":["Source"],"wezJ3v":["Mark Price"],"wq30T4":["清算"],"wvgF6w":["Order History"],"x+7jw2":["超过最大数量"],"xGVfLh":["Continue"],"xI4H1r":["Switch to ",["displayCoin"]," market"],"xNB0TS":["卖出"],"xTSCVP":["Builder code registered successfully!"],"xWnh+P":["Start Price (USDC)"],"xgSeuS":["Account Value"],"y/TXy2":["Maintenance Margin"],"y62Dys":["Network fee"],"yQE2r9":["加载中"],"yRkqG9":["限价"],"yT7sOL":["Trade via ",["0"]," spot market"],"yVfwJk":["Start and end must differ"],"ydOXwr":["Perp"],"ye6Vnv":["Available:"],"ygCKqB":["止损"],"ygkMcg":["限价"],"yxnt3y":["Fill status"],"yz7wBu":["关闭"],"zEGs+1":["Builders"],"zG6eEO":["Connect your wallet to view your account, positions, and start trading."],"zKCXG+":["Trigger Price (USDC)"],"zKJcRr":["Perps: Max 0.1% (10 basis points)"],"zPGNJm":["Transfer"],"zXagFp":["复制地址"],"zZmf1N":["已成交"],"zdcGo/":["Bridging in progress"],"zjwWvI":["Start Price"],"znqB4T":["Insufficient balance"],"zwWKhA":["Learn more"]}',
),
};
diff --git a/apps/terminal/src/locales/zh/messages.po b/apps/terminal/src/locales/zh/messages.po
index 9652ff03..7f34e733 100644
--- a/apps/terminal/src/locales/zh/messages.po
+++ b/apps/terminal/src/locales/zh/messages.po
@@ -80,6 +80,8 @@ msgstr ""
#~ msgid "About Builder Codes"
#~ msgstr ""
+#: src/components/account/account-page.tsx
+#: src/components/trade/header/top-nav.tsx
#: src/components/trade/tradebox/account-panel.tsx
msgid "Account"
msgstr "账户"
@@ -96,6 +98,10 @@ msgstr "账户余额"
msgid "Account Equity"
msgstr ""
+#: src/components/account/account-pnl-chart.tsx
+#~ msgid "Account Value"
+#~ msgstr ""
+
#: src/components/trade/positions/balances-tab.tsx
#: src/components/trade/positions/orders-tab.tsx
#: src/components/trade/positions/positions-tab.tsx
@@ -160,6 +166,7 @@ msgstr ""
#~ msgid "All cross positions share the same cross margin as collateral. In the event of liquidation, your cross margin balance and any remaining open positions under assets in this mode may be forfeited."
#~ msgstr ""
+#: src/components/account/account-history.tsx
#: src/components/trade/positions/send-modal.tsx
#: src/components/trade/positions/transfer-modal.tsx
#: src/components/trade/tradebox/deposit-modal.tsx
@@ -183,6 +190,10 @@ msgstr ""
#~ msgid "Approve a builder to charge fees on orders placed on your behalf. Builder codes allow DeFi applications to receive a portion of trading fees."
#~ msgstr ""
+#: src/components/account/account-history.tsx
+#: src/components/account/account-history.tsx
+#: src/components/account/account-history.tsx
+#: src/components/account/account-positions.tsx
#: src/components/trade/positions/balances-tab.tsx
#: src/components/trade/positions/funding-tab.tsx
#: src/components/trade/positions/history-tab.tsx
@@ -193,10 +204,14 @@ msgstr ""
msgid "Asset"
msgstr "资产"
-#: src/components/trade/tradebox/account-panel.tsx
-#~ msgid "Assets"
-#~ msgstr ""
+#: src/components/account/account-page.tsx
+msgid "Assets"
+msgstr ""
+#: src/components/account/account-balances.tsx
+#: src/components/account/account-balances.tsx
+#: src/components/account/account-page.tsx
+#: src/components/account/account-page.tsx
#: src/components/trade/mobile/mobile-balances-tab.tsx
#: src/components/trade/positions/balances-tab.tsx
#: src/components/trade/tradebox/trade-form-fields.tsx
@@ -225,6 +240,7 @@ msgstr ""
#~ msgid "Back to asset selection"
#~ msgstr ""
+#: src/components/account/account-page.tsx
#: src/components/trade/tradebox/account-panel.tsx
msgid "Balance"
msgstr "余额"
@@ -249,6 +265,7 @@ msgstr ""
#~ msgid "Breadcrumb"
#~ msgstr "面包屑导航"
+#: src/components/account/account-page.tsx
#: src/components/trade/mobile/mobile-account-view.tsx
#: src/components/trade/tradebox/account-panel.tsx
#: src/components/trade/tradebox/account-panel.tsx
@@ -370,6 +387,10 @@ msgstr "取消中..."
#~ msgid "cancelled"
#~ msgstr "已取消"
+#: src/components/account/account-leverage-settings.tsx
+msgid "Cannot switch to isolated mode with an open position"
+msgstr ""
+
#: src/components/trade/tradebox/margin-mode-modal.tsx
msgid "Cannot switch to Isolated mode with an open position. Close your position first."
msgstr ""
@@ -403,14 +424,15 @@ msgstr "平仓中..."
#~ msgid "Collapse account panel"
#~ msgstr "收起账户面板"
-#: src/components/trade/order-entry/order-entry-panel.tsx
-#~ msgid "Coming soon"
-#~ msgstr "即将推出"
+#: src/components/account/account-pnl-chart.tsx
+msgid "Coming soon"
+msgstr "即将推出"
#: src/components/trade/positions/twap-tab.tsx
#~ msgid "completed"
#~ msgstr "已完成"
+#: src/components/account/account-leverage-settings.tsx
#: src/components/trade/positions/position-tpsl-modal.tsx
#: src/components/trade/tradebox/bridge-tab.tsx
#: src/components/trade/tradebox/leverage-control.tsx
@@ -451,6 +473,8 @@ msgstr ""
#~ msgid "Connect a wallet to manage positions."
#~ msgstr "连接钱包以管理仓位。"
+#: src/components/account/account-page.tsx
+#: src/components/account/account-page.tsx
#: src/components/trade/components/wallet-modal.tsx
#: src/components/trade/header/user-menu.tsx
#: src/components/trade/mobile/mobile-account-view.tsx
@@ -511,6 +535,10 @@ msgstr "连接钱包查看交易历史。"
msgid "Connect your wallet to view TWAP orders."
msgstr "连接钱包查看 TWAP 订单。"
+#: src/components/account/account-page.tsx
+msgid "Connect your wallet to view your account overview, positions, and history."
+msgstr ""
+
#: src/components/trade/mobile/mobile-account-view.tsx
msgid "Connect your wallet to view your account, positions, and start trading."
msgstr ""
@@ -567,6 +595,10 @@ msgstr ""
msgid "Created"
msgstr ""
+#: src/components/account/account-leverage-settings.tsx
+#: src/components/account/account-leverage-settings.tsx
+#: src/components/account/account-positions.tsx
+#: src/components/account/account-positions.tsx
#: src/components/trade/positions/positions-tab.tsx
#: src/components/trade/tradebox/margin-mode-modal.tsx
#: src/components/trade/tradebox/margin-mode-modal.tsx
@@ -574,13 +606,17 @@ msgstr ""
msgid "Cross"
msgstr "全仓"
+#: src/components/account/account-leverage-settings.tsx
+msgid "Cross → Isolated"
+msgstr ""
+
#: src/components/trade/tradebox/account-panel.tsx
msgid "Cross Account Leverage"
msgstr ""
-#: src/components/trade/tradebox/account-panel.tsx
-#~ msgid "Cross Leverage"
-#~ msgstr "全仓杠杆"
+#: src/components/account/account-page.tsx
+msgid "Cross Leverage"
+msgstr "全仓杠杆"
#: src/components/trade/mobile/mobile-account-view.tsx
msgid "Cross Margin"
@@ -618,6 +654,7 @@ msgstr ""
msgid "Default"
msgstr ""
+#: src/components/account/account-page.tsx
#: src/components/trade/header/top-nav.tsx
#: src/components/trade/mobile/mobile-nav-drawer.tsx
#: src/components/trade/tradebox/account-panel.tsx
@@ -666,6 +703,10 @@ msgstr ""
msgid "Destination address"
msgstr ""
+#: src/components/account/account-history.tsx
+msgid "Details"
+msgstr ""
+
#: src/components/trade/order-entry/order-entry-panel.tsx
#~ msgid "Direct"
#~ msgstr ""
@@ -715,6 +756,11 @@ msgstr ""
msgid "Each position uses only its allocated margin. If the margin ratio reaches 100%, the position is liquidated. Margin can be added or removed individually."
msgstr ""
+#: src/components/account/account-leverage-settings.tsx
+#: src/components/account/account-leverage-settings.tsx
+msgid "Edit leverage"
+msgstr ""
+
#: src/components/trade/positions/positions-tab.tsx
msgid "Edit TP/SL"
msgstr ""
@@ -765,6 +811,12 @@ msgstr ""
msgid "Enter trigger price"
msgstr ""
+#: src/components/account/account-history.tsx
+msgid "entries"
+msgstr ""
+
+#: src/components/account/account-positions.tsx
+#: src/components/account/account-positions.tsx
#: src/components/trade/mobile/mobile-positions-tab.tsx
#: src/components/trade/positions/positions-tab.tsx
msgid "Entry"
@@ -848,6 +900,7 @@ msgstr "启用交易失败"
msgid "Failed to load balances"
msgstr ""
+#: src/components/account/account-balances.tsx
#: src/components/trade/mobile/mobile-balances-tab.tsx
#: src/components/trade/positions/balances-tab.tsx
msgid "Failed to load balances."
@@ -872,6 +925,7 @@ msgstr "加载订单簿失败。"
msgid "Failed to load order history."
msgstr ""
+#: src/components/account/account-positions.tsx
#: src/components/trade/mobile/mobile-positions-tab.tsx
#: src/components/trade/positions/positions-tab.tsx
msgid "Failed to load positions."
@@ -898,10 +952,16 @@ msgstr "加载成交记录失败。"
msgid "Failed to reverse position"
msgstr ""
-#: src/components/trade/order-entry/order-entry-panel.tsx
-#~ msgid "Failed to switch margin mode"
-#~ msgstr ""
+#: src/components/account/account-leverage-settings.tsx
+msgid "Failed to switch margin mode"
+msgstr ""
+
+#: src/components/account/account-leverage-settings.tsx
+msgid "Failed to update leverage"
+msgstr ""
+#: src/components/account/account-history.tsx
+#: src/components/account/account-history.tsx
#: src/components/trade/mobile/mobile-history-tab.tsx
#: src/components/trade/positions/history-tab.tsx
msgid "Fee"
@@ -923,9 +983,10 @@ msgstr "手续费"
#~ msgid "Fetching quote..."
#~ msgstr ""
+#. placeholder {0}: formatPrice(markPx, { szDecimals: market?.szDecimals })
#: src/components/trade/mobile/mobile-trade-view.tsx
-#~ msgid "Fill limit price with mark price {0}"
-#~ msgstr ""
+msgid "Fill limit price with mark price {0}"
+msgstr ""
#: src/components/trade/tradebox/bridge-tab.tsx
#: src/components/trade/tradebox/bridge-tab.tsx
@@ -958,6 +1019,7 @@ msgstr ""
#~ msgid "Full Position"
#~ msgstr ""
+#: src/components/account/account-history.tsx
#: src/components/trade/chart/token-selector-columns.ts
#: src/components/trade/chart/token-selector.tsx
#: src/components/trade/mobile/mobile-positions-tab.tsx
@@ -1003,14 +1065,17 @@ msgstr ""
msgid "Go to trading terminal"
msgstr "前往交易终端"
+#: src/components/account/account-balances.tsx
#: src/components/trade/mobile/mobile-balances-tab.tsx
#: src/components/trade/positions/balances-tab.tsx
msgid "Hide small"
msgstr ""
-#: src/components/trade/tradebox/account-panel.tsx
-#~ msgid "In Orders"
-#~ msgstr ""
+#: src/components/account/account-balances.tsx
+#: src/components/account/account-balances.tsx
+#: src/components/account/account-page.tsx
+msgid "In Orders"
+msgstr ""
#: src/components/trade/positions/balances-tab.tsx
#~ msgid "In Use"
@@ -1059,6 +1124,10 @@ msgstr ""
msgid "Invalid Ethereum address"
msgstr ""
+#: src/components/account/account-leverage-settings.tsx
+#: src/components/account/account-leverage-settings.tsx
+#: src/components/account/account-positions.tsx
+#: src/components/account/account-positions.tsx
#: src/components/trade/positions/positions-tab.tsx
#: src/components/trade/tradebox/margin-mode-modal.tsx
#: src/components/trade/tradebox/margin-mode-modal.tsx
@@ -1066,6 +1135,10 @@ msgstr ""
msgid "Isolated"
msgstr "逐仓"
+#: src/components/account/account-leverage-settings.tsx
+msgid "Isolated → Cross"
+msgstr ""
+
#: src/components/trade/footer/footer-bar.tsx
#~ msgid "Latency:"
#~ msgstr "延迟:"
@@ -1079,12 +1152,27 @@ msgstr "排行榜"
msgid "Learn more"
msgstr ""
+#: src/components/account/account-history.tsx
+msgid "Ledger"
+msgstr ""
+
+#: src/components/account/account-leverage-settings.tsx
+#: src/components/account/account-positions.tsx
+#: src/components/account/account-positions.tsx
#: src/components/trade/tradebox/leverage-control.tsx
#: src/components/trade/tradebox/leverage-control.tsx
#: src/components/trade/tradebox/margin-mode-modal.tsx
msgid "Leverage"
msgstr ""
+#: src/components/account/account-leverage-settings.tsx
+msgid "Leverage Settings"
+msgstr ""
+
+#: src/components/account/account-leverage-settings.tsx
+msgid "Leverage updated to {pendingLeverage}× for {coin}"
+msgstr ""
+
#: src/components/trade/components/global-settings-dialog.tsx
#~ msgid "Light"
#~ msgstr ""
@@ -1126,10 +1214,16 @@ msgstr "限价"
msgid "Liq"
msgstr "清算"
+#: src/components/account/account-positions.tsx
+#: src/components/account/account-positions.tsx
+msgid "Liq Price"
+msgstr ""
+
#: src/components/trade/tradebox/order-summary.tsx
msgid "Liq. Price"
msgstr "清算价"
+#: src/components/account/account-history.tsx
#: src/components/trade/mobile/mobile-history-tab.tsx
#: src/components/trade/positions/history-tab.tsx
msgid "Liquidated"
@@ -1184,6 +1278,8 @@ msgstr "加载钱包中..."
msgid "Loading..."
msgstr "加载中..."
+#: src/components/account/account-positions.tsx
+#: src/components/account/account-positions.tsx
#: src/components/trade/mobile/mobile-positions-tab.tsx
#: src/components/trade/positions/position-tpsl-modal.tsx
msgid "Long"
@@ -1202,6 +1298,8 @@ msgstr ""
#~ msgid "Manage your risk on individual positions by restricting the amount of margin allocated to each. If the margin ratio of an isolated position reaches 100%, the position will be liquidated. Margin can be added or removed to individual positions in this mode."
#~ msgstr ""
+#: src/components/account/account-positions.tsx
+#: src/components/account/account-positions.tsx
#: src/components/trade/mobile/mobile-positions-tab.tsx
#: src/components/trade/positions/positions-tab.tsx
msgid "Margin"
@@ -1219,22 +1317,29 @@ msgstr ""
msgid "Margin mode"
msgstr ""
-#: src/components/trade/tradebox/margin-mode-dialog.tsx
-#~ msgid "Margin Mode"
-#~ msgstr ""
+#: src/components/account/account-leverage-settings.tsx
+msgid "Margin Mode"
+msgstr ""
-#: src/components/trade/tradebox/account-panel.tsx
-#~ msgid "Margin Ratio"
-#~ msgstr "保证金率"
+#. placeholder {0}: newMode === "cross" ? t`Cross` : t`Isolated`
+#: src/components/account/account-leverage-settings.tsx
+msgid "Margin mode switched to {0} for {coin}"
+msgstr ""
+
+#: src/components/account/account-page.tsx
+msgid "Margin Ratio"
+msgstr "保证金率"
#: src/components/trade/tradebox/order-summary.tsx
msgid "Margin Req."
msgstr "保证金要求"
-#: src/components/trade/tradebox/account-panel.tsx
-#~ msgid "Margin Used"
-#~ msgstr "已用保证金"
+#: src/components/account/account-page.tsx
+msgid "Margin Used"
+msgstr "已用保证金"
+#: src/components/account/account-positions.tsx
+#: src/components/account/account-positions.tsx
#: src/components/trade/mobile/mobile-positions-tab.tsx
#: src/components/trade/positions/positions-tab.tsx
msgid "Mark"
@@ -1442,16 +1547,25 @@ msgstr ""
msgid "No balances found. Deposit funds to start trading."
msgstr "未找到余额。存入资金开始交易。"
+#: src/components/account/account-pnl-chart.tsx
+#~ msgid "No data available"
+#~ msgstr ""
+
#: src/components/trade/mobile/mobile-history-tab.tsx
#: src/components/trade/positions/history-tab.tsx
msgid "No fills found."
msgstr "未找到成交记录。"
+#: src/components/account/account-history.tsx
#: src/components/trade/mobile/mobile-funding-tab.tsx
#: src/components/trade/positions/funding-tab.tsx
msgid "No funding payments found."
msgstr "未找到资金费用记录。"
+#: src/components/account/account-history.tsx
+msgid "No ledger activity found."
+msgstr ""
+
#: src/lib/errors/definitions/market.ts
msgid "No mark price"
msgstr "无标记价格"
@@ -1469,6 +1583,15 @@ msgstr "未找到市场。"
msgid "No open orders."
msgstr "无未成交订单。"
+#: src/components/account/account-positions.tsx
+msgid "No open positions."
+msgstr ""
+
+#: src/components/account/account-leverage-settings.tsx
+msgid "No open positions. Leverage settings appear here when you have active positions."
+msgstr ""
+
+#: src/components/account/account-history.tsx
#: src/components/trade/mobile/mobile-orders-history-tab.tsx
#: src/components/trade/positions/orders-history-tab.tsx
msgid "No order history found."
@@ -1482,6 +1605,10 @@ msgstr ""
msgid "No route available. Try a different amount or asset."
msgstr ""
+#: src/components/account/account-balances.tsx
+msgid "No spot balances."
+msgstr ""
+
#: src/components/trade/components/token-selector-dropdown.tsx
#~ msgid "No tokens available"
#~ msgstr ""
@@ -1490,6 +1617,10 @@ msgstr ""
msgid "No tokens with value found across supported chains"
msgstr ""
+#: src/components/account/account-history.tsx
+msgid "No trades found."
+msgstr ""
+
#: src/components/trade/order-entry/swap-asset-modal.tsx
#~ msgid "No trading pair available for {fromToken}/{toToken}"
#~ msgstr ""
@@ -1567,6 +1698,10 @@ msgstr "未平仓量"
msgid "Open Orders"
msgstr "未成交订单"
+#: src/components/account/account-positions.tsx
+msgid "Open Positions"
+msgstr ""
+
#: src/components/trade/positions/positions-tab.tsx
#~ msgid "Open positions count"
#~ msgstr ""
@@ -1609,13 +1744,14 @@ msgstr ""
msgid "Order Value"
msgstr "订单价值"
+#: src/components/account/account-history.tsx
#: src/components/trade/positions/orders-history-tab.tsx
msgid "orders"
msgstr ""
-#: src/components/trade/positions/orders-history-tab.tsx
-#~ msgid "Orders"
-#~ msgstr ""
+#: src/components/account/account-history.tsx
+msgid "Orders"
+msgstr ""
#: src/components/trade/tradebox/advanced-order-dropdown.tsx
#: src/components/trade/tradebox/advanced-order-dropdown.tsx
@@ -1639,10 +1775,15 @@ msgstr "页面未找到"
#~ msgid "pagination"
#~ msgstr "分页"
+#: src/components/account/account-history.tsx
#: src/components/trade/positions/funding-tab.tsx
msgid "Payment"
msgstr "支付"
+#: src/components/account/account-history.tsx
+msgid "payments"
+msgstr ""
+
#: src/components/trade/tradebox/order-toast.tsx
msgid "pending"
msgstr "待处理"
@@ -1658,11 +1799,17 @@ msgstr "待处理"
msgid "Perp"
msgstr ""
+#: src/components/account/account-history.tsx
+msgid "Perp → Spot"
+msgstr ""
+
#: src/components/trade/mobile/mobile-balances-tab.tsx
#: src/components/trade/positions/balances-tab.tsx
msgid "Perpetuals"
msgstr ""
+#: src/components/account/account-page.tsx
+#: src/components/account/account-page.tsx
#: src/components/trade/tradebox/account-panel.tsx
msgid "Perps"
msgstr "永续合约"
@@ -1692,6 +1839,8 @@ msgstr ""
msgid "Please enter an address"
msgstr ""
+#: src/components/account/account-history.tsx
+#: src/components/account/account-positions.tsx
#: src/components/trade/positions/balances-tab.tsx
#: src/components/trade/positions/history-tab.tsx
#: src/components/trade/positions/positions-tab.tsx
@@ -1707,6 +1856,11 @@ msgstr "盈亏"
msgid "Portfolio"
msgstr "投资组合"
+#: src/components/account/account-pnl-chart.tsx
+msgid "Portfolio PNL"
+msgstr ""
+
+#: src/components/account/account-history.tsx
#: src/components/trade/mobile/mobile-funding-tab.tsx
#: src/components/trade/positions/funding-tab.tsx
#: src/components/trade/tradebox/trade-form-fields.tsx
@@ -1742,6 +1896,8 @@ msgstr ""
#~ msgid "Previous"
#~ msgstr "上一页"
+#: src/components/account/account-history.tsx
+#: src/components/account/account-history.tsx
#: src/components/trade/chart/token-selector-columns.ts
#: src/components/trade/chart/token-selector.tsx
#: src/components/trade/mobile/mobile-history-tab.tsx
@@ -1790,6 +1946,7 @@ msgstr ""
msgid "Randomize timing"
msgstr ""
+#: src/components/account/account-history.tsx
#: src/components/trade/components/spot-swap-modal.tsx
#: src/components/trade/mobile/mobile-funding-tab.tsx
#: src/components/trade/positions/funding-tab.tsx
@@ -1948,6 +2105,7 @@ msgstr "卖出"
#~ msgid "Sell Short"
#~ msgstr "卖出做空"
+#: src/components/account/account-page.tsx
#: src/components/trade/mobile/mobile-balances-tab.tsx
#: src/components/trade/positions/balances-tab.tsx
#: src/components/trade/positions/send-modal.tsx
@@ -2003,6 +2161,8 @@ msgstr ""
msgid "Settings"
msgstr "设置"
+#: src/components/account/account-positions.tsx
+#: src/components/account/account-positions.tsx
#: src/components/trade/mobile/mobile-positions-tab.tsx
#: src/components/trade/positions/position-tpsl-modal.tsx
msgid "Short"
@@ -2048,9 +2208,9 @@ msgstr ""
#~ msgid "Show Values in USD"
#~ msgstr "以美元显示数值"
-#: src/components/trade/positions/position-tpsl-modal.tsx
-#~ msgid "Side"
-#~ msgstr ""
+#: src/components/account/account-history.tsx
+msgid "Side"
+msgstr ""
#: src/components/ui/sidebar.tsx
#~ msgid "Sidebar"
@@ -2068,6 +2228,10 @@ msgstr "签名器未就绪"
#~ msgid "Signing..."
#~ msgstr "签名中..."
+#: src/components/account/account-history.tsx
+#: src/components/account/account-history.tsx
+#: src/components/account/account-positions.tsx
+#: src/components/account/account-positions.tsx
#: src/components/trade/mobile/mobile-history-tab.tsx
#: src/components/trade/mobile/mobile-orders-history-tab.tsx
#: src/components/trade/mobile/mobile-orders-tab.tsx
@@ -2153,6 +2317,8 @@ msgstr ""
#~ msgid "spot"
#~ msgstr "现货"
+#: src/components/account/account-page.tsx
+#: src/components/account/account-page.tsx
#: src/components/trade/header/top-nav.tsx
#: src/components/trade/mobile/mobile-balances-tab.tsx
#: src/components/trade/mobile/mobile-nav-drawer.tsx
@@ -2163,10 +2329,18 @@ msgstr ""
msgid "Spot"
msgstr "现货"
+#: src/components/account/account-history.tsx
+msgid "Spot → Perp"
+msgstr ""
+
#: src/components/trade/positions/send-modal.tsx
msgid "Spot Account"
msgstr ""
+#: src/components/account/account-balances.tsx
+msgid "Spot Balances"
+msgstr ""
+
#: src/components/pages/builder-page.tsx
#~ msgid "Spot: Max 1% (100 basis points)"
#~ msgstr ""
@@ -2192,6 +2366,7 @@ msgstr ""
#~ msgid "Start Price (USDC)"
#~ msgstr ""
+#: src/components/account/account-history.tsx
#: src/components/trade/positions/orders-history-tab.tsx
msgid "Status"
msgstr "状态"
@@ -2363,6 +2538,10 @@ msgstr "您查找的页面不存在。"
msgid "TIF"
msgstr ""
+#: src/components/account/account-history.tsx
+#: src/components/account/account-history.tsx
+#: src/components/account/account-history.tsx
+#: src/components/account/account-history.tsx
#: src/components/trade/mobile/mobile-funding-tab.tsx
#: src/components/trade/orderbook/trades-panel.tsx
#: src/components/trade/positions/funding-tab.tsx
@@ -2405,16 +2584,26 @@ msgstr ""
msgid "Toggle size mode"
msgstr "切换数量模式"
+#: src/components/account/account-balances.tsx
+msgid "Token"
+msgstr ""
+
#: src/components/trade/market-overview.tsx
msgid "TOKEN"
msgstr ""
+#: src/components/account/account-balances.tsx
+#: src/components/account/account-balances.tsx
#: src/components/trade/mobile/mobile-balances-tab.tsx
#: src/components/trade/orderbook/orderbook-panel.tsx
#: src/components/trade/positions/balances-tab.tsx
msgid "Total"
msgstr "合计"
+#: src/components/account/account-page.tsx
+msgid "Total Equity"
+msgstr ""
+
#: src/components/trade/positions/twap-tab.tsx
#~ msgid "Total Size"
#~ msgstr "总数量"
@@ -2423,9 +2612,9 @@ msgstr "合计"
msgid "Total time"
msgstr ""
-#: src/components/trade/tradebox/account-panel.tsx
-#~ msgid "Total Value"
-#~ msgstr ""
+#: src/components/account/account-page.tsx
+msgid "Total Value"
+msgstr ""
#: src/components/trade/positions/orders-tab.tsx
#~ msgid "TP"
@@ -2476,10 +2665,12 @@ msgstr "交易历史"
msgid "Trade via {0} spot market"
msgstr ""
+#: src/components/account/account-history.tsx
#: src/components/trade/positions/history-tab.tsx
msgid "trades"
msgstr ""
+#: src/components/account/account-history.tsx
#: src/components/trade/orderbook/orderbook-panel.tsx
msgid "Trades"
msgstr "成交"
@@ -2496,6 +2687,7 @@ msgstr ""
msgid "Transaction was rejected"
msgstr ""
+#: src/components/account/account-page.tsx
#: src/components/trade/positions/transfer-modal.tsx
#: src/components/trade/tradebox/deposit-modal.tsx
#: src/components/trade/tradebox/deposit-modal.tsx
@@ -2550,6 +2742,8 @@ msgstr ""
msgid "TWAP Orders"
msgstr "TWAP 订单"
+#: src/components/account/account-history.tsx
+#: src/components/account/account-history.tsx
#: src/components/trade/mobile/mobile-orders-history-tab.tsx
#: src/components/trade/positions/history-tab.tsx
#: src/components/trade/positions/orders-history-tab.tsx
@@ -2579,6 +2773,8 @@ msgstr "未知交易对: {symbolName}"
msgid "Unrealized P&L"
msgstr ""
+#: src/components/account/account-page.tsx
+#: src/components/account/account-page.tsx
#: src/components/trade/tradebox/account-panel.tsx
msgid "Unrealized PNL"
msgstr "未实现盈亏"
@@ -2588,6 +2784,7 @@ msgstr "未实现盈亏"
msgid "Unsupported resolution: {0}"
msgstr "不支持的分辨率: {0}"
+#: src/components/account/account-leverage-settings.tsx
#: src/components/trade/tradebox/leverage-control.tsx
#: src/components/trade/tradebox/margin-mode-modal.tsx
msgid "Update failed"
@@ -2604,6 +2801,7 @@ msgstr ""
msgid "Updated live"
msgstr "实时更新"
+#: src/components/account/account-balances.tsx
#: src/components/trade/positions/balances-tab.tsx
msgid "USD Value"
msgstr "美元价值"
@@ -2680,6 +2878,7 @@ msgstr "钱包未连接"
msgid "will arrive in ~5 min"
msgstr ""
+#: src/components/account/account-page.tsx
#: src/components/trade/tradebox/account-panel.tsx
#: src/components/trade/tradebox/account-panel.tsx
#: src/components/trade/tradebox/deposit-modal.tsx
@@ -2689,6 +2888,10 @@ msgstr ""
msgid "Withdraw"
msgstr "提款"
+#: src/components/account/account-page.tsx
+msgid "Withdrawable"
+msgstr ""
+
#: src/components/trade/tradebox/deposit-modal.tsx
msgid "Withdrawal failed"
msgstr ""
diff --git a/apps/terminal/src/routeTree.gen.ts b/apps/terminal/src/routeTree.gen.ts
index 9e1f2918..6b9ce9e5 100644
--- a/apps/terminal/src/routeTree.gen.ts
+++ b/apps/terminal/src/routeTree.gen.ts
@@ -12,6 +12,7 @@ import { Route as rootRouteImport } from './routes/__root'
import { Route as SpotRouteImport } from './routes/spot'
import { Route as PerpRouteImport } from './routes/perp'
import { Route as BuildersPerpRouteImport } from './routes/builders-perp'
+import { Route as AccountRouteImport } from './routes/account'
import { Route as SplatRouteImport } from './routes/$'
import { Route as IndexRouteImport } from './routes/index'
import { Route as BuildersPerpIndexRouteImport } from './routes/builders-perp.index'
@@ -32,6 +33,11 @@ const BuildersPerpRoute = BuildersPerpRouteImport.update({
path: '/builders-perp',
getParentRoute: () => rootRouteImport,
} as any)
+const AccountRoute = AccountRouteImport.update({
+ id: '/account',
+ path: '/account',
+ getParentRoute: () => rootRouteImport,
+} as any)
const SplatRoute = SplatRouteImport.update({
id: '/$',
path: '/$',
@@ -56,6 +62,7 @@ const BuildersPerpDexRoute = BuildersPerpDexRouteImport.update({
export interface FileRoutesByFullPath {
'/': typeof IndexRoute
'/$': typeof SplatRoute
+ '/account': typeof AccountRoute
'/builders-perp': typeof BuildersPerpRouteWithChildren
'/perp': typeof PerpRoute
'/spot': typeof SpotRoute
@@ -65,6 +72,7 @@ export interface FileRoutesByFullPath {
export interface FileRoutesByTo {
'/': typeof IndexRoute
'/$': typeof SplatRoute
+ '/account': typeof AccountRoute
'/perp': typeof PerpRoute
'/spot': typeof SpotRoute
'/builders-perp/$dex': typeof BuildersPerpDexRoute
@@ -74,6 +82,7 @@ export interface FileRoutesById {
__root__: typeof rootRouteImport
'/': typeof IndexRoute
'/$': typeof SplatRoute
+ '/account': typeof AccountRoute
'/builders-perp': typeof BuildersPerpRouteWithChildren
'/perp': typeof PerpRoute
'/spot': typeof SpotRoute
@@ -85,17 +94,26 @@ export interface FileRouteTypes {
fullPaths:
| '/'
| '/$'
+ | '/account'
| '/builders-perp'
| '/perp'
| '/spot'
| '/builders-perp/$dex'
| '/builders-perp/'
fileRoutesByTo: FileRoutesByTo
- to: '/' | '/$' | '/perp' | '/spot' | '/builders-perp/$dex' | '/builders-perp'
+ to:
+ | '/'
+ | '/$'
+ | '/account'
+ | '/perp'
+ | '/spot'
+ | '/builders-perp/$dex'
+ | '/builders-perp'
id:
| '__root__'
| '/'
| '/$'
+ | '/account'
| '/builders-perp'
| '/perp'
| '/spot'
@@ -106,6 +124,7 @@ export interface FileRouteTypes {
export interface RootRouteChildren {
IndexRoute: typeof IndexRoute
SplatRoute: typeof SplatRoute
+ AccountRoute: typeof AccountRoute
BuildersPerpRoute: typeof BuildersPerpRouteWithChildren
PerpRoute: typeof PerpRoute
SpotRoute: typeof SpotRoute
@@ -134,6 +153,13 @@ declare module '@tanstack/react-router' {
preLoaderRoute: typeof BuildersPerpRouteImport
parentRoute: typeof rootRouteImport
}
+ '/account': {
+ id: '/account'
+ path: '/account'
+ fullPath: '/account'
+ preLoaderRoute: typeof AccountRouteImport
+ parentRoute: typeof rootRouteImport
+ }
'/$': {
id: '/$'
path: '/$'
@@ -182,6 +208,7 @@ const BuildersPerpRouteWithChildren = BuildersPerpRoute._addFileChildren(
const rootRouteChildren: RootRouteChildren = {
IndexRoute: IndexRoute,
SplatRoute: SplatRoute,
+ AccountRoute: AccountRoute,
BuildersPerpRoute: BuildersPerpRouteWithChildren,
PerpRoute: PerpRoute,
SpotRoute: SpotRoute,
diff --git a/apps/terminal/src/routes/__root.tsx b/apps/terminal/src/routes/__root.tsx
index 135098e3..8640aeeb 100644
--- a/apps/terminal/src/routes/__root.tsx
+++ b/apps/terminal/src/routes/__root.tsx
@@ -17,7 +17,12 @@ export const Route = createRootRouteWithContext()({
head: () => {
const seoHead = buildPageHead();
return mergeHead(seoHead, {
- links: [{ rel: "stylesheet", href: appCss }],
+ links: [
+ { rel: "stylesheet", href: appCss },
+ { rel: "preconnect", href: "https://api.hyperliquid.xyz" },
+ { rel: "dns-prefetch", href: "https://api.hyperliquid.xyz" },
+ { rel: "dns-prefetch", href: "https://app.hyperliquid.xyz" },
+ ],
});
},
shellComponent: RootDocument,
@@ -95,7 +100,7 @@ function AppShellSkeleton() {
function RootDocument({ children }: { children: React.ReactNode }) {
return (
-
+
diff --git a/apps/terminal/src/routes/account.tsx b/apps/terminal/src/routes/account.tsx
new file mode 100644
index 00000000..c156494d
--- /dev/null
+++ b/apps/terminal/src/routes/account.tsx
@@ -0,0 +1,21 @@
+import { ClientOnly, createFileRoute } from "@tanstack/react-router";
+import { AccountPage } from "@/components/account/account-page";
+import { buildPageHead } from "@/lib/seo";
+
+export const Route = createFileRoute("/account")({
+ ssr: false,
+ head: () =>
+ buildPageHead({
+ title: "Account",
+ description: "View your account overview, positions, balances, and manage deposits, withdrawals, and transfers.",
+ path: "/account",
+ keywords: ["account", "portfolio", "balances", "positions"],
+ }),
+ component: function AccountRoute() {
+ return (
+
+
+
+ );
+ },
+});
diff --git a/apps/terminal/vite.config.ts b/apps/terminal/vite.config.ts
index 8a7c39fc..f4383c79 100644
--- a/apps/terminal/vite.config.ts
+++ b/apps/terminal/vite.config.ts
@@ -11,11 +11,13 @@ const isAnalyze = process.env.ANALYZE === 'true'
function createManualChunks(id: string) {
if (id.includes('node_modules')) {
- if (id.includes('@radix-ui')) return 'vendor-radix'
+ if (id.includes('@nktkas/hyperliquid')) return 'vendor-hyperliquid'
if (id.includes('@tanstack/react-query') || id.includes('@tanstack/react-table') || id.includes('@tanstack/react-virtual')) return 'vendor-tanstack'
if (id.includes('recharts') || id.includes('d3-')) return 'vendor-charts'
if (id.includes('viem') || id.includes('wagmi') || id.includes('@wagmi')) return 'vendor-web3'
if (id.includes('klinecharts')) return 'vendor-klinecharts'
+ if (id.includes('@lifi/sdk') || id.includes('@lifi/types')) return 'vendor-lifi'
+ if (id.includes('@lingui/core') || id.includes('@lingui/react')) return 'vendor-lingui'
}
}
diff --git a/docs/concurrent-rendering.md b/docs/concurrent-rendering.md
deleted file mode 100644
index 1d6229a0..00000000
--- a/docs/concurrent-rendering.md
+++ /dev/null
@@ -1,382 +0,0 @@
-# React 19 Concurrent Rendering Optimization
-
-This document covers `useTransition`, `useDeferredValue`, Suspense optimization, and React Performance Tracks for trading terminal optimization.
-
-## Current State
-
-**This codebase does not currently use `useTransition` or `useDeferredValue`.**
-
-This presents an opportunity to improve perceived performance for:
-- Tab switching in positions panel
-- Token selector search/filtering
-- Large table renders
-- Chart symbol changes
-
----
-
-## Core Concepts
-
-### Urgent vs Non-Urgent Updates
-
-React 19's concurrency model divides updates into:
-
-| Priority | Examples | Behavior |
-|----------|----------|----------|
-| **Urgent** | Typing, clicking, selecting | Immediate render |
-| **Transition** | Filtering, data loading, tab content | Can be interrupted |
-| **Deferred** | Search results, secondary UI | Uses stale value during urgent updates |
-
-**Key insight:** Transitions don't make code faster—they make the UI feel faster by prioritizing urgent updates.
-
----
-
-## useTransition
-
-### What It Does
-
-Marks state updates as non-urgent, allowing React to interrupt them if urgent updates arrive.
-
-```typescript
-const [isPending, startTransition] = useTransition();
-
-function handleTabChange(newTab: string) {
- // Urgent: update selected tab immediately
- setSelectedTab(newTab);
-
- // Non-urgent: render tab content can be interrupted
- startTransition(() => {
- setTabContent(loadTabContent(newTab));
- });
-}
-```
-
-### When to Use
-
-| Good Use Cases | Bad Use Cases |
-|----------------|---------------|
-| Tab switching | Form input values |
-| Filter/search results | Toggle states |
-| Large list renders | Modal open/close |
-| Chart updates | Critical user feedback |
-| Navigation | Payment flows |
-
-### Trading Terminal Opportunities
-
-#### 1. Positions Panel Tab Switching
-
-```typescript
-// src/components/trade/positions/positions-panel.tsx
-
-function PositionsPanel() {
- const [selectedTab, setSelectedTab] = useState('positions');
- const [isPending, startTransition] = useTransition();
-
- const handleTabChange = (tab: string) => {
- startTransition(() => {
- setSelectedTab(tab);
- });
- };
-
- return (
-
- {/* Tab content renders with lower priority */}
-
-
-
-
- );
-}
-```
-
-#### 2. Token Selector Search
-
-```typescript
-// src/components/trade/chart/token-selector.tsx
-
-function TokenSelector({ value, onValueChange }) {
- const [search, setSearch] = useState('');
- const [filteredTokens, setFilteredTokens] = useState(allTokens);
- const [isPending, startTransition] = useTransition();
-
- const handleSearch = (query: string) => {
- setSearch(query); // Urgent: update input immediately
-
- startTransition(() => {
- // Non-urgent: filtering can be interrupted
- setFilteredTokens(
- allTokens.filter(t =>
- t.name.toLowerCase().includes(query.toLowerCase())
- )
- );
- });
- };
-
- return (
- <>
- handleSearch(e.target.value)} />
-
- >
- );
-}
-```
-
----
-
-## useDeferredValue
-
-### What It Does
-
-Returns a deferred version of a value that "lags behind" during urgent updates.
-
-```typescript
-const deferredQuery = useDeferredValue(query);
-const isStale = query !== deferredQuery;
-```
-
-### When to Use
-
-Use `useDeferredValue` when:
-- You don't control the state update (it comes from props)
-- The consuming component is expensive to render
-- Showing slightly stale data is acceptable
-
-### Trading Terminal Opportunities
-
-#### 1. Orderbook with Deferred Updates
-
-```typescript
-// src/components/trade/orderbook/orderbook-panel.tsx
-
-function OrderbookPanel() {
- const { data: orderbook } = useSubL2Book({ coin: selectedMarket.coin });
-
- // Defer orderbook during other updates
- const deferredOrderbook = useDeferredValue(orderbook);
- const isStale = orderbook !== deferredOrderbook;
-
- // Process deferred value (won't block urgent updates)
- const bids = useMemo(
- () => processLevels(deferredOrderbook?.levels[0], VISIBLE_ROWS),
- [deferredOrderbook?.levels]
- );
-
- return (
-
- {bids.map(level => )}
-
- );
-}
-```
-
-#### 2. Trades Panel with High-Frequency Updates
-
-```typescript
-function TradesPanel() {
- const { data: trades } = useSubTrades({ coin });
-
- // Defer trade list during other interactions
- const deferredTrades = useDeferredValue(trades);
-
- const processed = useMemo(
- () => processTrades(deferredTrades),
- [deferredTrades]
- );
-
- return ;
-}
-```
-
----
-
-## React 19 Improvements
-
-### Automatic Batching in Transitions
-
-```typescript
-// React 18: May cause 2 renders
-startTransition(() => {
- setState1(value1);
- setState2(value2);
-});
-
-// React 19: Automatically batched into 1 render
-startTransition(() => {
- setState1(value1);
- setState2(value2);
-});
-```
-
-### Smarter isPending
-
-React 19 optimizes `isPending` to only trigger when the transition state actually changes, reducing unnecessary re-renders.
-
----
-
-## Suspense Boundaries
-
-### Current Usage
-
-The codebase uses Suspense for lazy-loaded components:
-
-```typescript
-// src/components/trade/trade-terminal-page.tsx
- }>
-
-
-```
-
-### Optimization Tips
-
-#### 1. Granular Boundaries
-
-```typescript
-// ❌ One boundary for entire page
- }>
-
-
-
-
-
-
-// ✅ Granular boundaries for independent sections
-
- }>
-
-
- }>
-
-
- }>
-
-
-```
-
-#### 2. Nested Boundaries for Priority
-
-```typescript
-// Critical content loads first
- }>
-
-
- {/* Secondary content can load after */}
- }>
-
-
-
-```
-
-### React 19.2 Suspense Batching
-
-React 19.2 batches Suspense boundary reveals:
-- Content that streams close together reveals together
-- Improves animation experience
-- Respects LCP thresholds (stops batching near 2.5s)
-
----
-
-## React Performance Tracks
-
-### What They Show
-
-React 19.2 adds custom tracks to Chrome DevTools Performance panel:
-
-| Track | Shows |
-|-------|-------|
-| **Scheduler** | Work scheduling across priority levels |
-| **Blocking** | High-priority user interactions |
-| **Transition** | Work wrapped in startTransition |
-| **Suspense** | Fallback display and content reveal |
-| **Idle** | Low-priority background work |
-| **Components** | Individual component render times |
-
-### How to Use
-
-1. Open Chrome DevTools → Performance tab
-2. Click Record
-3. Interact with app
-4. Stop recording
-5. Look for "React" section in timeline
-
-### What to Look For
-
-- **Long blocking bars**: User interactions taking too long
-- **Transition interruptions**: React properly deprioritizing work
-- **Component flamegraph**: Which components take longest to render
-- **Suspense timing**: How long fallbacks are shown
-
----
-
-## Implementation Checklist
-
-### Quick Wins (Low Effort, High Impact)
-
-- [ ] Add `useTransition` to positions panel tab switching
-- [ ] Add `useTransition` to token selector search
-- [ ] Add `useDeferredValue` to orderbook renders
-
-### Medium Effort
-
-- [ ] Add `useTransition` to market switching
-- [ ] Profile with React Performance Tracks
-- [ ] Add loading states for `isPending`
-
-### Higher Effort
-
-- [ ] Audit all Suspense boundary placement
-- [ ] Add granular skeletons per section
-- [ ] Implement `useDeferredValue` for WebSocket data
-
----
-
-## Common Mistakes
-
-### 1. Wrapping Urgent Updates
-
-```typescript
-// ❌ Don't defer form input
-startTransition(() => {
- setInputValue(e.target.value); // User expects immediate feedback!
-});
-
-// ✅ Only defer expensive derived state
-setInputValue(e.target.value);
-startTransition(() => {
- setFilteredResults(filterByQuery(e.target.value));
-});
-```
-
-### 2. Expecting Faster Code
-
-```typescript
-// Transitions don't speed up slow code
-startTransition(() => {
- processMillionRows(); // Still slow!
-});
-
-// They just prevent blocking urgent updates
-```
-
-### 3. Forgetting Loading States
-
-```typescript
-// ❌ No indication that content is updating
-startTransition(() => setTab(newTab));
-
-// ✅ Show pending state
-const [isPending, startTransition] = useTransition();
-startTransition(() => setTab(newTab));
-return ;
-```
-
----
-
-## References
-
-- [useTransition - React Docs](https://react.dev/reference/react/useTransition)
-- [useDeferredValue - React Docs](https://react.dev/reference/react/useDeferredValue)
-- [React Performance Tracks](https://react.dev/reference/dev-tools/react-performance-tracks)
-- [React 19.2 Release Notes](https://react.dev/blog/2025/10/01/react-19-2)
-- [React 19 Concurrency Deep Dive](https://dev.to/a1guy/react-19-concurrency-deep-dive-mastering-usetransition-and-starttransition-for-smoother-uis-51eo)
-- [React 19 useDeferredValue Deep Dive](https://dev.to/a1guy/react-19-usedeferredvalue-deep-dive-how-to-keep-your-ui-smooth-when-things-get-heavy-1gdl)
-- [useTransition Performance Analysis](https://www.developerway.com/posts/use-transition)
-- [React 19.2 INP Optimization](https://calendar.perfplanet.com/2025/react-19-2-further-advances-inp-optimization/)
diff --git a/docs/tanstack-start-optimization.md b/docs/tanstack-start-optimization.md
deleted file mode 100644
index 0d47e7df..00000000
--- a/docs/tanstack-start-optimization.md
+++ /dev/null
@@ -1,188 +0,0 @@
-# TanStack Start Performance Optimization Guide
-
-This document covers performance optimization techniques specific to TanStack Start and TanStack Router.
-
-## Code Splitting
-
-### Automatic Route Code Splitting
-
-TanStack Start supports automatic code splitting at the route level. Enable it in `vite.config.ts`:
-
-```typescript
-tanstackStart({
- router: {
- autoCodeSplitting: true,
- },
-})
-```
-
-This automatically splits route components, loaders, and error boundaries into separate chunks.
-
-### Component-Level Code Splitting with `lazyRouteComponent`
-
-For heavy components within routes, use `lazyRouteComponent` instead of `React.lazy()`:
-
-```typescript
-import { lazyRouteComponent } from "@tanstack/react-router";
-
-const HeavyChart = lazyRouteComponent(
- () => import("./heavy-chart"),
- "HeavyChart"
-);
-```
-
-**Benefits over `React.lazy()`:**
-- `.preload()` method for prefetching on hover/intent
-- Auto-reload on stale builds (module not found recovery)
-- Uses React 19's `React.use()` for better suspense integration
-
-### Our Utility Wrapper
-
-We provide a typed wrapper in `src/lib/lazy.ts`:
-
-```typescript
-import { createLazyComponent } from "@/lib/lazy";
-
-// Named export
-const Chart = createLazyComponent(() => import("./chart"), "Chart");
-
-// Preload on hover
- Chart.preload()}>Show Chart
-```
-
-## What to Lazy Load
-
-### Good Candidates (lazy load these)
-- **Modals and dialogs** - Not visible on initial render
-- **Mobile-only components** - Not needed on desktop
-- **Tab content** - Only the active tab needs to load initially
-- **Charts and visualizations** - Heavy and often not in viewport
-- **Settings panels** - Rarely accessed immediately
-
-### Bad Candidates (keep synchronous)
-- **Above-the-fold content** - Causes layout shift
-- **Core layout components** - Always visible
-- **Small utility components** - Overhead not worth it
-
-## Code Splitting Configuration
-
-### Manual Chunk Grouping
-
-In `vite.config.ts`, we configure manual chunks for vendor dependencies:
-
-```typescript
-function createManualChunks(id: string) {
- if (id.includes('node_modules')) {
- if (id.includes('@radix-ui')) return 'vendor-radix'
- if (id.includes('@tanstack/react-query') ||
- id.includes('@tanstack/react-table') ||
- id.includes('@tanstack/react-virtual')) return 'vendor-tanstack'
- if (id.includes('viem') || id.includes('wagmi')) return 'vendor-web3'
- }
-}
-```
-
-### Code Split Groupings (Advanced)
-
-For fine-grained control over what gets split per route:
-
-```typescript
-tanstackStart({
- router: {
- codeSplittingOptions: {
- defaultBehavior: [
- ['component'],
- ['pendingComponent'],
- ['errorComponent'],
- ['notFoundComponent'],
- ],
- },
- },
-})
-```
-
-## Route-Level Code Splitting with `.lazy.tsx`
-
-For routes with heavy components, split using the `.lazy.tsx` pattern:
-
-**`routes/dashboard.tsx`** (critical path):
-```typescript
-export const Route = createFileRoute('/dashboard')({
- head: () => buildPageHead({ title: 'Dashboard' }),
-})
-```
-
-**`routes/dashboard.lazy.tsx`** (code-split component):
-```typescript
-export const Route = createLazyFileRoute('/dashboard')({
- component: Dashboard,
-})
-```
-
-## Preloading Strategies
-
-### Link-Based Preloading
-
-TanStack Router's ` ` component supports preloading:
-
-```tsx
-
- Dashboard
-
-```
-
-Options:
-- `"intent"` - Preload on hover/focus
-- `"viewport"` - Preload when link enters viewport
-- `"render"` - Preload immediately on render
-
-### Programmatic Preloading
-
-```typescript
-const router = useRouter()
-
-// Preload a route
-router.preloadRoute({ to: '/dashboard' })
-
-// Preload a lazy component
-HeavyComponent.preload()
-```
-
-## Bundle Analysis
-
-Run bundle analysis to identify optimization opportunities:
-
-```bash
-# Generate treemap visualization
-pnpm build:analyze
-
-# Compare against baseline
-pnpm perf:compare
-```
-
-## Current Bundle Status
-
-| Chunk | Size | Gzip | Notes |
-|-------|------|------|-------|
-| main | 568KB | 169KB | Core app code |
-| index | 229KB | 70KB | Index route |
-| vendor-web3 | 246KB | 75KB | viem, wagmi |
-| vendor-radix | 152KB | 48KB | UI components |
-| vendor-tanstack | 99KB | 28KB | Query, Table, Virtual |
-
-### Code-Split Components
-- trading-view-chart: 14.6KB
-- mobile-terminal: 46.7KB
-- deposit-modal: 26.8KB
-- positions tabs: ~5-15KB each
-
-## Best Practices
-
-1. **Measure first** - Use `pnpm perf:compare` before and after changes
-2. **Split by visibility** - Lazy load what's not immediately visible
-3. **Group related code** - Keep related components in the same chunk
-4. **Preload on intent** - Use hover/focus preloading for likely navigation
-5. **Monitor chunk count** - Too many small chunks hurt HTTP/2 performance
diff --git a/docs/web3-bundle-optimization.md b/docs/web3-bundle-optimization.md
deleted file mode 100644
index 9aa624bc..00000000
--- a/docs/web3-bundle-optimization.md
+++ /dev/null
@@ -1,269 +0,0 @@
-# Web3 Bundle Optimization (wagmi/viem)
-
-This document covers strategies for optimizing the web3 bundle (wagmi + viem) which currently accounts for ~246KB (75KB gzip) of the initial load.
-
-## Current State
-
-### Bundle Breakdown
-
-| Package | Size (approx) | Purpose |
-|---------|---------------|---------|
-| viem | ~150KB | Ethereum interactions |
-| wagmi | ~70KB | React hooks for web3 |
-| WalletConnect | ~50KB | WalletConnect connector |
-| Other connectors | ~25KB | Injected, Coinbase |
-
-### Integration Depth
-
-wagmi is deeply integrated with **31 files** importing from it:
-- Root provider wraps entire app
-- Hooks used throughout for connection state
-- Required even when user is not connected
-
----
-
-## Why Full Lazy Loading Is Difficult
-
-### The Provider Problem
-
-```typescript
-// wagmi hooks require WagmiProvider context
-function RootProvider({ children }) {
- return (
-
- {children}
-
- );
-}
-
-// This hook fails without provider
-function OrderEntry() {
- const { address, isConnected } = useAccount(); // Throws if no provider!
-}
-```
-
-Lazy loading the entire WagmiProvider would break all hooks that check connection state.
-
----
-
-## Feasible Optimizations
-
-### 1. Tree-Shakable Imports (Already Applied)
-
-```typescript
-// ✅ Good: Specific imports
-import { useAccount, useConnect } from 'wagmi';
-import { arbitrum } from 'wagmi/chains';
-
-// ❌ Bad: Barrel imports
-import * as wagmi from 'wagmi';
-```
-
-**Verification:** Check build output for unused wagmi exports.
-
-### 2. Lazy Load Heavy Connectors
-
-WalletConnect alone is ~50KB. Load it only when needed:
-
-```typescript
-// src/config/wagmi.ts
-
-// Current: All connectors loaded immediately
-export function createWagmiConfig() {
- return createConfig({
- connectors: [
- injected(),
- coinbaseWallet(),
- walletConnect({ projectId: '...' }), // ~50KB loaded upfront
- ],
- });
-}
-
-// Optimized: Lazy load WalletConnect
-export function createWagmiConfig() {
- return createConfig({
- connectors: [
- injected(), // Small, always needed
- // Load WalletConnect dynamically
- ...(typeof window !== 'undefined' ? [] : []),
- ],
- });
-}
-
-// Then load WalletConnect on demand
-async function getWalletConnectConnector() {
- const { walletConnect } = await import('wagmi/connectors');
- return walletConnect({ projectId: '...' });
-}
-```
-
-**Savings:** ~50KB gzip from initial load
-
-### 3. Lazy Load Wallet Dialog
-
-The wallet connection UI doesn't need to be in the initial bundle:
-
-```typescript
-// src/components/trade/components/wallet-dialog.tsx
-// Already lazy loaded via global-modals.tsx ✅
-
-const WalletDialog = createLazyComponent(
- () => import("./wallet-dialog"),
- "WalletDialog"
-);
-```
-
-### 4. Defer Deposit Modal
-
-The deposit modal uses heavy viem utilities:
-
-```typescript
-// Already lazy loaded ✅
-const DepositModal = createLazyComponent(
- () => import("../order-entry/deposit-modal"),
- "DepositModal"
-);
-```
-
-### 5. Tree-Shakable Viem Actions
-
-Use action imports directly instead of client methods:
-
-```typescript
-// ❌ Less optimal: Client methods
-import { createPublicClient } from 'viem';
-const client = createPublicClient({ ... });
-const balance = await client.getBalance({ address });
-
-// ✅ More optimal: Direct action imports
-import { getBalance } from 'viem/actions';
-import { useClient } from 'wagmi';
-
-const client = useClient();
-const balance = await getBalance(client, { address });
-```
-
----
-
-## Alternative Approaches
-
-### 1. Stub Provider Pattern
-
-Create a minimal stub that provides mock values until wagmi loads:
-
-```typescript
-// Conceptual - requires significant refactoring
-
-const WagmiStub = {
- useAccount: () => ({ address: undefined, isConnected: false }),
- useConnect: () => ({ connect: () => loadRealWagmi() }),
- // ... other hooks
-};
-
-// Initial load uses stubs
-function RootProvider({ children }) {
- const [wagmiLoaded, setWagmiLoaded] = useState(false);
-
- if (!wagmiLoaded) {
- return (
-
- {children}
-
- );
- }
-
- return (
-
- {children}
-
- );
-}
-```
-
-**Complexity:** High - requires abstracting all wagmi hook usage
-
-### 2. Server-Side Stub + Client Hydration
-
-```typescript
-// Server renders with stubs
-// Client hydrates with real wagmi after initial paint
-
-export function RootProvider({ children }) {
- const [isClient, setIsClient] = useState(false);
-
- useEffect(() => {
- setIsClient(true);
- }, []);
-
- if (!isClient) {
- return {children} ;
- }
-
- return {children} ;
-}
-```
-
-**Trade-off:** Delays wallet reconnection, may cause flash
-
-### 3. Separate Entry Points
-
-Create separate builds:
-- Main app (no wagmi)
-- Wallet-connected app (with wagmi)
-
-**Complexity:** Very high - requires architecture changes
-
----
-
-## Recommended Actions
-
-### Immediate (Low Effort)
-
-1. **Verify tree-shaking** - Check bundle for unused exports
-2. **Audit viem imports** - Use action imports where possible
-3. **Confirm lazy components** - WalletDialog, DepositModal already split ✅
-
-### Short-Term (Medium Effort)
-
-1. **Lazy load WalletConnect connector** - ~50KB savings
-2. **Lazy load CoinbaseWallet connector** - Additional savings
-3. **Profile connector initialization** - May reveal quick wins
-
-### Long-Term (High Effort)
-
-1. **Stub provider pattern** - Major refactoring
-2. **Alternative web3 library** - Evaluate lighter options
-3. **Custom minimal client** - Build only what's needed
-
----
-
-## Measuring Impact
-
-```bash
-# Current bundle size
-pnpm build
-# Check .output/public/assets/vendor-web3-*.js
-
-# After optimization
-pnpm build
-pnpm perf:compare
-```
-
----
-
-## Bundle Size Targets
-
-| Metric | Current | Target | Strategy |
-|--------|---------|--------|----------|
-| vendor-web3 | 246KB | <200KB | Lazy connectors |
-| Initial JS | 1.64MB | <1.5MB | Combined optimizations |
-| Gzip total | 492KB | <450KB | Tree-shaking + splitting |
-
----
-
-## References
-
-- [Lazy Load Provider Discussion](https://github.com/wevm/wagmi/discussions/32)
-- [wagmi Tree-Shaking Guide](https://wagmi.sh/react/guides/viem)
-- [Why wagmi](https://wagmi.sh/react/why) - Bundle size considerations
-- [WalletConnect Connector](https://wagmi.sh/react/api/connectors/walletConnect)
diff --git a/docs/websocket-optimization.md b/docs/websocket-optimization.md
deleted file mode 100644
index f5fdf0eb..00000000
--- a/docs/websocket-optimization.md
+++ /dev/null
@@ -1,405 +0,0 @@
-# WebSocket Optimization for Real-Time Trading Data
-
-This document covers optimization techniques for high-frequency WebSocket data in trading terminals.
-
-## Current Architecture
-
-Our WebSocket implementation uses:
-- **Zustand store** for centralized subscription management
-- **Reference counting** for shared subscriptions across components
-- **Ring buffer** for trades with efficient fixed-size storage
-- **useSyncExternalStore** for React concurrent mode compatibility
-
-```
-┌─────────────────────────────────────────────────────────────┐
-│ WebSocket Server │
-└─────────────────────────────┬───────────────────────────────┘
- │
- ▼
-┌─────────────────────────────────────────────────────────────┐
-│ @nktkas/hyperliquid │
-│ (WebSocket Client) │
-└─────────────────────────────┬───────────────────────────────┘
- │
- ▼
-┌─────────────────────────────────────────────────────────────┐
-│ Zustand Store │
-│ ┌─────────────────────────────────────────────────────┐ │
-│ │ subscriptions: { │ │
-│ │ "l2Book:BTC": { data, status, refCount } │ │
-│ │ "trades:BTC": { data, status, refCount } │ │
-│ │ } │ │
-│ └─────────────────────────────────────────────────────┘ │
-└─────────────────────────────┬───────────────────────────────┘
- │
- ▼
-┌─────────────────────────────────────────────────────────────┐
-│ React Components │
-│ ┌──────────────┐ ┌──────────────┐ ┌──────────────┐ │
-│ │ OrderbookPanel│ │ TradesPanel │ │ ChartPanel │ │
-│ │ useSubL2Book │ │ useSubTrades │ │ useSubCandle │ │
-│ └──────────────┘ └──────────────┘ └──────────────┘ │
-└─────────────────────────────────────────────────────────────┘
-```
-
-## Problem Areas
-
-### 1. High Message Frequency
-Trading data can flood the UI with updates:
-- **Orderbook**: Updates every 50-100ms during active trading
-- **Trades**: Bursts of 100+ trades per second during volatility
-- **Price updates**: Continuous stream of mid-price changes
-
-### 2. Re-render Cascades
-Each WebSocket message triggers:
-```
-setSubscriptionData → zustand state update → component re-render
-```
-At 100+ messages/second, this causes jank and dropped frames.
-
-### 3. Main Thread Blocking
-Heavy data processing (orderbook aggregation, trade deduplication) competes with rendering.
-
----
-
-## Optimization Techniques
-
-### 1. Message Batching with requestAnimationFrame
-
-Buffer incoming messages and flush once per frame:
-
-```typescript
-// Pattern: Batch updates to align with display refresh
-function createBatchedUpdater() {
- let buffer: T[] = [];
- let rafId: number | null = null;
- let flushCallback: ((items: T[]) => void) | null = null;
-
- const flush = () => {
- rafId = null;
- if (buffer.length > 0 && flushCallback) {
- flushCallback(buffer);
- buffer = [];
- }
- };
-
- return {
- add: (item: T) => {
- buffer.push(item);
- if (rafId === null) {
- rafId = requestAnimationFrame(flush);
- }
- },
- setFlushCallback: (cb: (items: T[]) => void) => {
- flushCallback = cb;
- },
- dispose: () => {
- if (rafId !== null) {
- cancelAnimationFrame(rafId);
- }
- },
- };
-}
-```
-
-**Benefits:**
-- Reduces render frequency from 100+/sec to 60/sec (matching display)
-- Groups multiple updates into single state change
-- Up to 65% reduction in CPU usage
-
-### 2. Delta Updates vs Full Snapshots
-
-Instead of sending full orderbook snapshots, process deltas:
-
-```typescript
-// Current: Full snapshot on every update
-type L2BookEvent = {
- levels: [PriceLevel[], PriceLevel[]]; // Full bids/asks
-};
-
-// Optimized: Delta updates
-type L2BookDelta = {
- bids: { price: string; size: string; op: 'add' | 'update' | 'remove' }[];
- asks: { price: string; size: string; op: 'add' | 'update' | 'remove' }[];
-};
-
-// Apply delta to cached state
-function applyDelta(book: L2Book, delta: L2BookDelta): L2Book {
- // Mutate in place for performance, return new reference
- const newBook = { ...book };
- // Apply bid/ask changes...
- return newBook;
-}
-```
-
-**Benefits:**
-- Traffic reduction: 5KB snapshot → 200B delta (~70% less bandwidth)
-- Less parsing overhead on client
-- Note: Requires server-side support
-
-### 3. Ref-Based Updates for High-Frequency Data
-
-Skip React state for data that updates faster than render:
-
-```typescript
-function useHighFrequencyData(subscribe: (cb: (data: T) => void) => () => void) {
- const dataRef = useRef(null);
- const [, forceUpdate] = useReducer((x) => x + 1, 0);
-
- useEffect(() => {
- let rafId: number | null = null;
- let hasUpdate = false;
-
- const unsubscribe = subscribe((data) => {
- dataRef.current = data;
- hasUpdate = true;
-
- // Only schedule one render per frame
- if (rafId === null) {
- rafId = requestAnimationFrame(() => {
- rafId = null;
- if (hasUpdate) {
- hasUpdate = false;
- forceUpdate();
- }
- });
- }
- });
-
- return () => {
- unsubscribe();
- if (rafId !== null) cancelAnimationFrame(rafId);
- };
- }, [subscribe]);
-
- return dataRef.current;
-}
-```
-
-**When to use:**
-- Price tickers updating multiple times per frame
-- Data where only the latest value matters
-- Animations driven by WebSocket data
-
-### 4. Web Worker Offloading
-
-Move heavy processing off the main thread:
-
-```typescript
-// worker.ts
-self.onmessage = (e: MessageEvent) => {
- const { type, payload } = e.data;
-
- switch (type) {
- case 'PROCESS_ORDERBOOK':
- const processed = aggregateOrderbook(payload, payload.grouping);
- self.postMessage({ type: 'ORDERBOOK_PROCESSED', payload: processed });
- break;
- case 'PROCESS_TRADES':
- const deduped = deduplicateTrades(payload);
- self.postMessage({ type: 'TRADES_PROCESSED', payload: deduped });
- break;
- }
-};
-
-// Main thread
-const worker = new Worker(new URL('./orderbook.worker.ts', import.meta.url));
-
-function useOrderbookWorker() {
- const [data, setData] = useState(null);
-
- useEffect(() => {
- worker.onmessage = (e) => {
- if (e.data.type === 'ORDERBOOK_PROCESSED') {
- setData(e.data.payload);
- }
- };
- }, []);
-
- const process = useCallback((raw: RawOrderbook) => {
- worker.postMessage({ type: 'PROCESS_ORDERBOOK', payload: raw });
- }, []);
-
- return { data, process };
-}
-```
-
-**What to offload:**
-- Orderbook aggregation by price level
-- Trade deduplication and sorting
-- Large data transformations
-- Price calculations at scale
-
-**Libraries:**
-- [Comlink](https://github.com/GoogleChromeLabs/comlink) - Simplifies worker communication
-- [workerize-loader](https://github.com/developit/workerize-loader) - Vite/Webpack integration
-
-### 5. Backpressure Control
-
-Prevent overwhelming the client when data arrives faster than it can be processed:
-
-```typescript
-function createBackpressureQueue(
- process: (items: T[]) => void,
- options: {
- maxQueueSize: number;
- flushInterval: number;
- dropStrategy: 'oldest' | 'newest';
- }
-) {
- const queue: T[] = [];
- let intervalId: NodeJS.Timeout | null = null;
-
- const flush = () => {
- if (queue.length > 0) {
- process([...queue]);
- queue.length = 0;
- }
- };
-
- const start = () => {
- if (!intervalId) {
- intervalId = setInterval(flush, options.flushInterval);
- }
- };
-
- const stop = () => {
- if (intervalId) {
- clearInterval(intervalId);
- intervalId = null;
- }
- flush(); // Process remaining
- };
-
- const add = (item: T) => {
- if (queue.length >= options.maxQueueSize) {
- if (options.dropStrategy === 'oldest') {
- queue.shift(); // Remove oldest
- } else {
- return; // Drop new item
- }
- }
- queue.push(item);
- };
-
- return { add, start, stop, flush };
-}
-```
-
-**Strategies:**
-- **Bounded buffer**: Limit queue size, drop oldest when full
-- **Sampling**: Only process every Nth message
-- **Throttling**: Limit processing rate regardless of input rate
-- **Server-side slowdown**: Signal server to reduce rate (requires protocol support)
-
-### 6. Subscription Multiplexing
-
-Share subscriptions across components:
-
-```typescript
-// Current implementation already does this!
-// src/lib/hyperliquid/store.ts uses refCount
-
-acquireSubscription: (key, subscribe) => {
- let runtime = subscriptionRuntime.get(key);
- if (!runtime) {
- runtime = { refCount: 0 };
- subscriptionRuntime.set(key, runtime);
- }
- runtime.refCount += 1; // Multiple components share one subscription
- // ...
-};
-```
-
-### 7. Virtualization for Large Lists
-
-Already implemented with TanStack Virtual. Ensure it's used for:
-- Trade history (100+ items)
-- Order lists
-- Position tables
-
----
-
-## Implementation Priority
-
-| Technique | Impact | Effort | Current State |
-|-----------|--------|--------|---------------|
-| Subscription multiplexing | High | Low | ✅ Implemented |
-| Ring buffer for trades | High | Medium | ✅ Implemented |
-| Virtualization | High | Medium | ✅ Implemented |
-| rAF batching | High | Medium | ❌ Not implemented |
-| Ref-based updates | Medium | Low | ❌ Not implemented |
-| Web Worker offloading | Medium | High | ❌ Not implemented |
-| Delta updates | High | High | ⚠️ Requires server changes |
-| Backpressure control | Medium | Medium | ❌ Not implemented |
-
----
-
-## Monitoring WebSocket Performance
-
-Use the performance tools we set up:
-
-```javascript
-// In dev console
-window.perf.network() // Shows WebSocket message rates
-
-// Custom monitoring
-let messageCount = 0;
-const interval = setInterval(() => {
- console.log(`Messages/sec: ${messageCount}`);
- messageCount = 0;
-}, 1000);
-```
-
----
-
-## Anti-Patterns to Avoid
-
-### 1. State Update Per Message
-```typescript
-// ❌ Bad: Every message triggers state update
-ws.onmessage = (e) => {
- setState(JSON.parse(e.data));
-};
-
-// ✅ Good: Batch updates
-ws.onmessage = (e) => {
- batcher.add(JSON.parse(e.data));
-};
-```
-
-### 2. Creating New Objects Unnecessarily
-```typescript
-// ❌ Bad: New array every message
-const newLevels = [...levels, newLevel];
-
-// ✅ Good: Mutate and signal change
-levels.push(newLevel);
-notifyChange();
-```
-
-### 3. Processing in Render
-```typescript
-// ❌ Bad: Heavy computation in render
-function OrderbookPanel() {
- const processed = aggregateByPrice(raw, 50); // Runs every render!
-}
-
-// ✅ Good: useMemo or move to effect/worker
-const processed = useMemo(
- () => aggregateByPrice(raw, grouping),
- [raw, grouping]
-);
-```
-
----
-
-## References
-
-- [Real-time State Management with WebSockets](https://moldstud.com/articles/p-real-time-state-management-in-react-using-websockets-boost-your-apps-performance)
-- [React WebSocket High-Load Platform Guide](https://maybe.works/blogs/react-websocket)
-- [WebSocket Architecture Best Practices](https://ably.com/topic/websocket-architecture-best-practices)
-- [Backpressure in WebSocket Streams](https://skylinecodes.substack.com/p/backpressure-in-websocket-streams)
-- [React App with WebSocket in WebWorker](https://jpsam7.medium.com/react-app-with-websocket-implemented-inside-webworker-aba6374e54f0)
-- [Offload Work to Web Workers](https://web.dev/articles/off-main-thread)
-- [requestAnimationFrame Batching Pattern](https://gist.github.com/glenjamin/3e8d65944d4f4761e521)
diff --git a/task.md b/task.md
deleted file mode 100644
index 80ac60c7..00000000
--- a/task.md
+++ /dev/null
@@ -1,426 +0,0 @@
-# Performance Optimization Task - Hypeterminal
-
-## Project Context
-- **React Version**: 19.2.0 with React Compiler enabled
-- **Build Tool**: Vite 7 + Rollup (TanStack Start SSR)
-- **State Management**: Zustand, TanStack Query
-- **Real-time**: WebSocket for trading data
-- **UI**: Radix UI, TanStack Virtual/Table
-
----
-
-## Phase 1: Measurement Infrastructure Setup
-
-### 1.1 Core Web Vitals Monitoring
-- [x] Install `web-vitals` library for LCP, INP, CLS tracking
-- [x] Create performance monitoring utility (`src/lib/performance/web-vitals.ts`)
-- [x] Set up reporting to console/analytics in dev mode
-
-**Targets (2026 Standards):**
-- LCP (Largest Contentful Paint): < 2.5s
-- INP (Interaction to Next Paint): < 200ms
-- CLS (Cumulative Layout Shift): < 0.1
-
-### 1.2 Bundle Analysis Setup
-- [x] Install `vite-bundle-analyzer` for treemap visualization
-- [x] Install `rollup-plugin-visualizer` for circular diagrams
-- [ ] Consider `sonda` for sourcemap-based accurate post-minification analysis
-- [x] Add npm scripts for analysis (`pnpm build:analyze`, `pnpm perf:bundle`)
-
-### 1.3 React 19.2 Performance Tracks
-- [ ] Document how to use new Chrome DevTools React Performance Tracks
-- [ ] Scheduler track analysis (Blocking, Transition, Suspense, Idle)
-- [ ] Component render duration visualization
-
-### 1.4 React DevTools Profiler Setup
-- [ ] Enable "Record why each component rendered" in settings
-- [ ] Document profiling workflow for the team
-- [ ] Set up profiling builds (`react-dom/profiling`)
-
----
-
-## Phase 2: Profiling & Measurement
-
-### 2.1 Component Render Analysis
-- [ ] Profile initial page load with React DevTools
-- [ ] Identify components with excessive re-renders
-- [ ] Check React Compiler effectiveness (auto-memoization)
-- [ ] Identify architectural issues compiler can't fix
-
-### 2.2 Memory Leak Detection
-- [ ] Take baseline heap snapshot
-- [ ] Perform typical user flows (navigate, trade, etc.)
-- [ ] Compare heap snapshots for growth
-- [ ] Search for "Detached DOM nodes"
-- [ ] Audit useEffect cleanup functions
-- [ ] Check WebSocket subscription cleanup
-- [ ] Check TanStack Query subscription cleanup
-
-### 2.3 Network Performance
-- [ ] Analyze WebSocket message frequency
-- [ ] Check for unnecessary full payload updates (vs delta)
-- [ ] Profile API request waterfall
-- [ ] Check for request deduplication (TanStack Query)
-
-### 2.4 Bundle Analysis
-- [x] Generate production build with source maps
-- [x] Run bundle analyzer
-- [x] Identify large dependencies
-- [x] Check tree-shaking effectiveness
-- [x] Identify code splitting opportunities
-- [x] Store baseline metrics (`perf-baseline.json`)
-- [x] Create comparison script (`pnpm perf:compare`)
-
----
-
-## Phase 3: React 19 Optimization Techniques
-
-### 3.1 Concurrent Rendering Optimization
-- [ ] Audit `useTransition` usage for heavy state updates
-- [ ] Implement `startTransition` for non-urgent updates
-- [ ] Use `useDeferredValue` for expensive derived state
-- [ ] Check proper Lane prioritization in Performance Tracks
-
-**Use cases to check:**
-- Tab switching
-- Large table/list rendering
-- Chart updates
-- Search/filter operations
-
-### 3.2 React Compiler Analysis
-- [ ] Verify compiler is working (check build output)
-- [ ] Identify patterns compiler can't optimize
-- [ ] Remove manual memo/useCallback where compiler handles it
-- [ ] Keep manual optimization for edge cases
-
-### 3.3 Suspense Boundaries
-- [ ] Audit Suspense boundary placement
-- [ ] Check for over-nested boundaries
-- [ ] Implement granular loading states
-
----
-
-## Phase 4: Real-time Data Optimization
-
-### 4.1 WebSocket Optimization
-- [ ] Implement message batching (buffer in ref, flush on interval)
-- [ ] Audit re-render frequency on WebSocket messages
-- [ ] Consider delta updates for orderbook/trades
-- [ ] Implement backpressure control if needed
-
-### 4.2 Virtualization Audit
-- [ ] Check TanStack Virtual usage for large lists
-- [ ] Ensure orderbook uses virtualization
-- [ ] Ensure trade history uses virtualization
-- [ ] Check positions/orders tables
-
-### 4.3 Heavy Computation Offloading
-- [ ] Identify CPU-intensive calculations
-- [ ] Consider Web Workers for:
- - Large data aggregation
- - Chart calculations
- - Price formatting at scale
-
----
-
-## Phase 5: Memory Management
-
-### 5.1 Subscription Cleanup
-- [ ] Audit all useEffect hooks for proper cleanup
-- [ ] Check WebSocket listeners removal
-- [ ] Check event listener cleanup
-- [ ] Check interval/timeout cleanup
-- [ ] Verify TanStack Query unsubscribe on unmount
-
-### 5.2 Reference Management
-- [ ] Check for closures holding stale references
-- [ ] Audit large object retention
-- [ ] Check for detached DOM node patterns
-
----
-
-## Phase 6: Build Optimization
-
-### 6.1 Code Splitting
-- [x] Analyze current chunk strategy
-- [x] Implement route-based splitting (TanStack Router `autoCodeSplitting: true`)
-- [x] Lazy load heavy components using `lazyRouteComponent`:
- - TradingViewChart, MobileTerminal, GlobalModals
- - DepositModal, GlobalSettingsDialog
- - All position tabs (Balances, Funding, History, Orders, Positions, Twap)
-- [x] Check vendor chunk optimization (radix, tanstack, web3)
-- [x] Created `src/lib/lazy.ts` utility for consistent lazy loading
-- [x] Created `docs/tanstack-start-optimization.md` documentation
-
-### 6.2 Tree Shaking Verification
-- [ ] Verify ESM imports throughout
-- [ ] Check sideEffects in package.json
-- [ ] Audit barrel imports (avoid re-exporting everything)
-- [ ] Check icon library tree-shaking
-
-### 6.3 Asset Optimization
-- [ ] Check image optimization
-- [ ] Verify font loading strategy
-- [ ] Check CSS delivery (Tailwind purging)
-
----
-
-## Tools & Commands Reference
-
-### Bundle Analysis
-```bash
-# Generate bundle visualization (opens treemap in browser)
-pnpm build:analyze
-
-# Alternative: quick bundle visualizer
-pnpm perf:bundle
-
-# Compare current build to baseline (run after pnpm build)
-pnpm perf:compare
-```
-
-### Dev Console Performance API
-In development mode, access performance tools via `window.perf`:
-```javascript
-// Core Web Vitals summary
-window.perf.vitals()
-
-// Component render analysis
-window.perf.renders()
-
-// Memory trend analysis
-window.perf.memory()
-
-// Network & resource analysis
-window.perf.network()
-
-// Take memory snapshot
-window.perf.snapshot()
-```
-
-### Profiling Build
-```typescript
-// For production profiling
-import { createRoot } from 'react-dom/profiling'
-```
-
-### Memory Profiling (Chrome DevTools)
-1. Open DevTools → Memory tab
-2. Take Heap Snapshot (baseline)
-3. Perform user actions
-4. Take another snapshot
-5. Compare snapshots
-6. Filter by "Detached" to find leaks
-
-### React Performance Tracks (Chrome DevTools)
-1. Open DevTools → Performance tab
-2. Record interaction
-3. Look for "React" tracks:
- - Scheduler (Blocking, Transition, Suspense, Idle)
- - Components render duration
-
----
-
-## Research Sources
-
-### React 19 Performance
-- [React Performance Tracks](https://react.dev/reference/dev-tools/react-performance-tracks)
-- [React Profiler Component](https://react.dev/reference/react/Profiler)
-- [useTransition](https://react.dev/reference/react/useTransition)
-
-### Core Web Vitals
-- [web-vitals Library](https://github.com/GoogleChrome/web-vitals)
-- [Web.dev Vitals Guide](https://web.dev/articles/vitals)
-
-### Memory Leaks
-- [Chrome DevTools Memory](https://developer.chrome.com/docs/devtools/memory-problems)
-- [Heap Snapshots](https://developer.chrome.com/docs/devtools/memory-problems/heap-snapshots)
-
-### Bundle Analysis
-- [vite-bundle-analyzer](https://github.com/nonzzz/vite-bundle-analyzer)
-- [rollup-plugin-visualizer](https://github.com/btd/rollup-plugin-visualizer)
-- [Sonda (sourcemap-based)](https://sonda.dev/)
-
----
-
-## Progress Log
-
-### Day 1 - Research & Setup
-- [x] Researched React 19.2 performance measurement techniques
-- [x] Documented React Performance Tracks (new in 19.2)
-- [x] Documented Core Web Vitals targets
-- [x] Created measurement infrastructure plan
-- [x] Installed web-vitals library
-- [x] Set up bundle analyzers (vite-bundle-analyzer, rollup-plugin-visualizer)
-- [x] Created performance monitoring utilities:
- - `src/lib/performance/web-vitals.ts` - Core Web Vitals tracking (LCP, INP, CLS, FCP, TTFB)
- - `src/lib/performance/memory.ts` - Heap memory monitoring & leak detection
- - `src/lib/performance/render-tracker.ts` - Component render profiling
- - `src/lib/performance/network.ts` - Network & WebSocket metrics
- - `src/lib/performance/profiler.tsx` - React Profiler wrapper component
- - `src/lib/performance/init.ts` - Auto-initialization for dev mode
-- [x] Integrated performance monitoring into RootProvider
-- [x] Added `window.perf` dev tools API for console access
-- [x] Configured Vite with manual chunks for better code splitting
-- [x] Created initial profiling baseline (`perf-baseline.json`)
-- [x] Ran bundle analysis and identified optimization targets
-- [x] Created `pnpm perf:compare` script for tracking improvements
-
-### Day 1 - Code Splitting Implementation
-- [x] Researched TanStack Start/Router code splitting best practices
-- [x] Enabled `autoCodeSplitting: true` in TanStack Start vite plugin
-- [x] Created `src/lib/lazy.ts` utility using `lazyRouteComponent`
-- [x] Implemented component-level code splitting:
- - `MobileTerminal` (46.7KB split from main)
- - `GlobalModals` including DepositModal & GlobalSettingsDialog
- - `TradingViewChart` (14.6KB split)
- - All 6 position tabs (Balances, Funding, History, Orders, Positions, Twap)
-- [x] Created `docs/tanstack-start-optimization.md` documentation
-- [x] **Results**: Index route reduced from 380KB to 229KB (-40%)
-
-### Day 2 - Runtime Performance Research & Documentation
-- [x] Created `docs/websocket-optimization.md`:
- - Message batching with requestAnimationFrame
- - Backpressure control patterns
- - Web Worker offloading strategies
- - Delta updates vs full snapshots
-- [x] Created `docs/memory-management.md`:
- - Chrome DevTools heap snapshot workflow
- - Common React memory leak patterns
- - useEffect cleanup checklist
- - TanStack Query cache cleanup
-- [x] Created `docs/concurrent-rendering.md`:
- - useTransition for non-urgent updates
- - useDeferredValue for expensive renders
- - React 19.2 Performance Tracks
- - Suspense boundary optimization
-- [x] Created `docs/web3-bundle-optimization.md`:
- - wagmi/viem lazy loading challenges
- - Connector lazy loading strategies
- - Tree-shaking verification
-
----
-
-## Phase 2: Runtime Performance Optimization ✅ COMPLETE
-
-### Task 1: WebSocket Optimization ✅
-- [x] Researched message batching strategies (buffer + rAF flush)
-- [x] Researched backpressure handling for high-frequency updates
-- [x] Researched delta updates vs full payload patterns
-- [x] Researched Web Worker offloading for message processing
-- [x] Created `docs/websocket-optimization.md`
-
-**Key findings:**
-- Current architecture uses Zustand store with reference counting (good)
-- Ring buffer already implemented for trades (good)
-- Opportunities: rAF batching, ref-based updates, Web Workers
-
-### Task 2: Memory Management & Leak Detection ✅
-- [x] Documented Chrome DevTools heap snapshot workflow
-- [x] Documented common React memory leak patterns
-- [x] Audited useEffect cleanup patterns in codebase
-- [x] Documented TanStack Query cleanup strategies
-- [x] Documented WebSocket listener cleanup patterns
-- [x] Created `docs/memory-management.md`
-
-**Key findings:**
-- Most cleanup patterns are implemented correctly
-- useSub hook has proper cleanup
-- Ring buffer uses useSyncExternalStore correctly
-
-### Task 3: React 19 Concurrent Rendering ✅
-- [x] Researched useTransition for tab switching, filters
-- [x] Researched useDeferredValue for expensive derived state
-- [x] Researched Suspense boundary optimization
-- [x] Documented React Performance Tracks usage
-- [x] Created `docs/concurrent-rendering.md`
-
-**Key findings:**
-- No useTransition/useDeferredValue currently used
-- Opportunities: positions panel tabs, token selector, orderbook
-
-### Task 4: Defer vendor-web3 Loading ✅
-- [x] Researched dynamic import patterns for wagmi
-- [x] Identified wallet-dependent code paths (31 files)
-- [x] Documented lazy connector loading approach
-- [x] Created `docs/web3-bundle-optimization.md`
-
-**Key findings:**
-- Full lazy load difficult due to provider requirement
-- WalletConnect connector (~50KB) can be lazy loaded
-- Tree-shaking already in use
-
----
-
-## Metrics to Track
-
-| Metric | Target | Current | Status |
-|--------|--------|---------|--------|
-| LCP | < 2.5s | TBD (run app) | 🔴 |
-| INP | < 200ms | TBD (run app) | 🔴 |
-| CLS | < 0.1 | TBD (run app) | 🔴 |
-| Bundle Size (JS) | < 500KB main | 568KB | 🟡 |
-| Memory (idle) | TBD | TBD | 🔴 |
-| Memory (after 10min) | TBD | TBD | 🔴 |
-
-### Bundle Breakdown (Client) - Updated Jan 23 (After Code Splitting)
-| Chunk | Size | Gzip | Notes |
-|-------|------|------|-------|
-| **main** | 568KB | 169KB | Core app code (-14KB) |
-| **index** | 229KB | 70KB | ✅ Index route (-151KB, -40%) |
-| vendor-web3 | 246KB | 75KB | viem, wagmi |
-| vendor-radix | 152KB | 48KB | Radix UI components |
-| vendor-tanstack | 99KB | 28KB | Query, Table, Virtual |
-| init (perf) | 6KB | 2.5KB | Performance monitoring |
-| styles | 123KB | 19KB | CSS (Tailwind) |
-| i18n messages | ~66KB | ~28KB | 5 locale files |
-| **code-split chunks** | 153KB | 54KB | Lazy-loaded components |
-
-**Total Client JS: ~1.64MB (gzip: ~494KB)**
-
-### Code-Split Chunks Created
-| Component | Size | Gzip |
-|-----------|------|------|
-| mobile-terminal | 46.7KB | 15.2KB |
-| deposit-modal | 26.8KB | 8.6KB |
-| positions-tab | 15.4KB | 5.0KB |
-| trading-view-chart | 14.6KB | 5.2KB |
-| orders-tab | 13.2KB | 5.3KB |
-| global-settings-dialog | 10.2KB | 3.6KB |
-| twap-tab | 6.6KB | 2.6KB |
-| history-tab | 6.2KB | 2.5KB |
-| funding-tab | 5.8KB | 2.4KB |
-| balances-tab | 5.2KB | 2.2KB |
-
-### Key Optimization Opportunities
-1. **main.js (582KB)** - Split by feature/route
- - Trading components
- - Chart components (recharts)
- - Order entry forms
-
-2. **index.js (380KB)** - Lazy load non-critical
- - Modals/dialogs
- - Settings panels
-
-3. **vendor-web3 (251KB)** - Load on wallet connect
- - Defer until user needs wallet features
-
-4. **Locale files** - Load only user's language
-
----
-
-## Notes
-
-### What React Compiler Can't Fix
-1. **Architectural Issues** - Rendering too many components upfront
-2. **Virtualization** - Must be manually implemented
-3. **Data Fetching Patterns** - N+1 queries, waterfalls
-4. **WebSocket Flooding** - Batching still needed
-5. **Heavy Computations** - Web Workers still needed
-
-### React 19 Features to Leverage
-1. **React Compiler** - Auto memoization (already enabled ✅)
-2. **useTransition** - Non-blocking UI updates
-3. **useDeferredValue** - Deferred expensive renders
-4. **Suspense** - Granular loading states
-5. **Performance Tracks** - Chrome DevTools integration