Depends on: #476 (needs deployed URL — done)
Summary
Complete the Farcaster mini-app integration. Current manifest has empty account association fields.
Screenshots available
Uploaded to /public/:
screenshot-1.png — Home page ("Write Stories. Trade Them.")
screenshot-2.png — Story detail ("Every Plot Moves the Market")
screenshot-3.png — Writer dashboard ("Every Trade Pays the Writer")
These need to be committed to main before deployment.
Steps
1. Commit screenshots
Add screenshot-1.png, screenshot-2.png, screenshot-3.png to git.
2. Complete Farcaster manifest
Update public/.well-known/farcaster.json:
accountAssociation — OPERATOR provides these after signing with custody key for plotlink.xyz domain (leave empty for now, operator fills in [#475] OPERATOR GATE: Domain DNS, Vercel secrets, Base.dev, Farcaster association #480 )
splashBackgroundColor: change from #0a0a0a to #E8DFD0 (current warm theme)
Add missing fields:
subtitle: "Write Stories. Trade Them."
heroImageUrl: "https://plotlink.xyz/og-image.png "
tagline: "Tokenise your story from day one"
ogTitle: "PlotLink"
ogDescription: "Tokenise your story from day 1. Publish plots, drive trading, earn royalties from every trade."
screenshotUrls: ["https://plotlink.xyz/screenshot-1.png", "https://plotlink.xyz/screenshot-2.png", "https://plotlink.xyz/screenshot-3.png"]
requiredCapabilities: ["wallet.getEthereumProvider", "actions.swapToken"]
Add baseBuilder.ownerAddress field (operator provides address in [#475] OPERATOR GATE: Domain DNS, Vercel secrets, Base.dev, Farcaster association #480 )
3. SDK ready() call
Reference: ~/Projects/dropcast/components/providers/FrameProvider.tsx
Ensure sdk.actions.ready() is called on mount when inside Farcaster/Base App
Check src/components/FarcasterMiniApp.tsx — verify it handles this correctly
4. Share to Farcaster
Verify "Share to Farcaster" functionality on story pages uses sdk.actions.composeCast()
Verify fc:miniapp meta tags on story pages for rich embeds
Acceptance Criteria
Branch
task/477-farcaster-setup in plotlink repo
Parent: #475
Depends on: #476 (needs deployed URL — done)
Summary
Complete the Farcaster mini-app integration. Current manifest has empty account association fields.
Screenshots available
Uploaded to
/public/:screenshot-1.png— Home page ("Write Stories. Trade Them.")screenshot-2.png— Story detail ("Every Plot Moves the Market")screenshot-3.png— Writer dashboard ("Every Trade Pays the Writer")These need to be committed to main before deployment.
Steps
1. Commit screenshots
Add
screenshot-1.png,screenshot-2.png,screenshot-3.pngto git.2. Complete Farcaster manifest
Update
public/.well-known/farcaster.json:accountAssociation— OPERATOR provides these after signing with custody key forplotlink.xyzdomain (leave empty for now, operator fills in [#475] OPERATOR GATE: Domain DNS, Vercel secrets, Base.dev, Farcaster association #480)splashBackgroundColor: change from#0a0a0ato#E8DFD0(current warm theme)subtitle: "Write Stories. Trade Them."heroImageUrl: "https://plotlink.xyz/og-image.png"tagline: "Tokenise your story from day one"ogTitle: "PlotLink"ogDescription: "Tokenise your story from day 1. Publish plots, drive trading, earn royalties from every trade."screenshotUrls: ["https://plotlink.xyz/screenshot-1.png", "https://plotlink.xyz/screenshot-2.png", "https://plotlink.xyz/screenshot-3.png"]requiredCapabilities: ["wallet.getEthereumProvider", "actions.swapToken"]baseBuilder.ownerAddressfield (operator provides address in [#475] OPERATOR GATE: Domain DNS, Vercel secrets, Base.dev, Farcaster association #480)3. SDK ready() call
Reference:
~/Projects/dropcast/components/providers/FrameProvider.tsxsdk.actions.ready()is called on mount when inside Farcaster/Base Appsrc/components/FarcasterMiniApp.tsx— verify it handles this correctly4. Share to Farcaster
sdk.actions.composeCast()fc:miniappmeta tags on story pages for rich embedsAcceptance Criteria
sdk.actions.ready()fires correctly in mini app contextBranch
task/477-farcaster-setupin plotlink repo