diff --git a/apps/dapp/components/intents/chain-action-confirm.tsx b/apps/dapp/components/intents/chain-action-confirm.tsx
index b3991caa..2e309f0e 100644
--- a/apps/dapp/components/intents/chain-action-confirm.tsx
+++ b/apps/dapp/components/intents/chain-action-confirm.tsx
@@ -1,7 +1,7 @@
'use client'
import { Button, Card } from '@intent/ui'
-import { ExternalLink, Loader2 } from 'lucide-react'
+import { Check, ExternalLink, Loader2 } from 'lucide-react'
import type { ChainAction } from '../../hooks/use-chain-action'
import { stepErrorMessage } from '../../lib/agents/chain-race'
@@ -91,13 +91,18 @@ export function ChainActionConfirm({
{prepared !== undefined && phase !== 'failed' && phase !== 'pending' ? (
<>
- {prepared.summary}
-
- {cardLine(prepared)}
- {prepared.receive !== undefined
- ? `, and receive ${prepared.receive.approximate ? 'about ' : ''}${prepared.receive.amount} ${prepared.receive.symbol}`
- : ''}
+
+ {prepared.summary}
+ {/* A swap's summary already says both amounts; saying them twice was noise. */}
+ {prepared.kind !== 'swap' ? (
+
+ {cardLine(prepared)}
+ {prepared.receive !== undefined
+ ? `, and receive ${prepared.receive.approximate ? 'about ' : ''}${prepared.receive.amount} ${prepared.receive.symbol}`
+ : ''}
+
+ ) : null}
{prepared.apy !== undefined ? (
Current rate {prepared.apy.basePercent.toFixed(2)}%
@@ -110,9 +115,15 @@ export function ChainActionConfirm({
{prepared.notes.length > 0 ? (
-