diff --git a/frontend/index.html b/frontend/index.html
index 5eeb91c..1fd21f6 100644
--- a/frontend/index.html
+++ b/frontend/index.html
@@ -4,7 +4,32 @@
-
{/* Nav */}
diff --git a/frontend/src/pages/PublicProfile.jsx b/frontend/src/pages/PublicProfile.jsx
index 84dccdb..dc59d53 100644
--- a/frontend/src/pages/PublicProfile.jsx
+++ b/frontend/src/pages/PublicProfile.jsx
@@ -3,6 +3,7 @@ import { useParams, useNavigate } from 'react-router-dom';
import { useAccount } from 'wagmi';
import { ConnectButton } from '@rainbow-me/rainbowkit';
import { useCreateStream } from '../context/CreateStreamContext';
+import { useMetaTags } from '../hooks/useMetaTags';
import CreateStreamModal from '../components/CreateStreamModal';
import Watermark from '../components/Watermark';
@@ -26,6 +27,17 @@ export default function PublicProfile() {
const [status, setStatus] = useState('idle');
const [contractor, setContractor] = useState(null);
+ // Update metadata when contractor data loads
+ useMetaTags({
+ title: contractor?.name
+ ? `${contractor.name} - CronStream Profile`
+ : 'CronStream - Contractor Profile',
+ description: contractor?.name
+ ? `View ${contractor.name}'s payment streams and work verification on CronStream`
+ : 'View contractor profile on CronStream',
+ url: `https://cronstream.xyz/p/${username}`,
+ });
+
// Only fetch once wallet is connected - never expose contractor info to unauthenticated visitors
useEffect(() => {
if (!isConnected || !username) return;
diff --git a/frontend/src/pages/Terms.jsx b/frontend/src/pages/Terms.jsx
index 5d81e13..cd36962 100644
--- a/frontend/src/pages/Terms.jsx
+++ b/frontend/src/pages/Terms.jsx
@@ -1,4 +1,5 @@
import { useNavigate } from 'react-router-dom';
+import { useMetaTags } from '../hooks/useMetaTags';
const LAST_UPDATED = 'May 2026';
@@ -47,6 +48,13 @@ const SECTIONS = [
export default function Terms() {
const navigate = useNavigate();
+
+ useMetaTags({
+ title: 'Terms of Service - CronStream',
+ description: 'CronStream Terms of Service and legal agreement for using the platform.',
+ url: 'https://cronstream.xyz/terms',
+ });
+
return (
{/* Nav */}