OceanPulse is an execution workspace on Pacifica.
It was built for the Pacifica Hackathon around one simple idea: a trader should be able to prepare a trade, check risk before sending it, and review the outcome in the same product.
OceanPulse is not a generic dashboard and it is not a copy-trading app.
The product is built around four screens:
Pulse
A clean account terminal with market context, equity, open books, and account state.Execute
A guided ticket with sizing, leverage, protection, and a pre-trade risk gate.Risk
Concentration, scenario analysis, and funding-aware pressure before the next click.Journal
Trade review and execution history inside the same workflow.
Vault is included as a Pacifica-native extension for subaccounts, but it is not the core demo path.
If you only spend two minutes with the product, these are the three things that matter:
Pulsegives a trader a clean operating view instead of a wall of metrics.Executechecks risk before submission instead of leaving all review for after the trade.RiskandJournalkeep decision quality and post-trade review in the same workspace.
That is the point of OceanPulse: better execution decisions on Pacifica, not just more data.
This repo was built for the Pacifica Hackathon and is intentionally aligned with Pacifica-native workflows:
- live Pacifica account and market data
- browser-signed execution from a connected Solana wallet
- Pacifica subaccount flows in
Vault - read-only showcase mode for safe demos
- Next.js 14 App Router
- TypeScript
- Tailwind CSS
- Zustand
- Recharts
- Solana wallet adapter
- Pacifica REST API
cd /Users/zmaxx/Projects/Bulk/OceanPulse
npm install
npm run devCopy .env.example to .env.local.
Minimum setup for live read-only mode:
PACIFICA_API_BASE=https://api.pacifica.fi/api/v1
PACIFICA_ACCOUNT=YOUR_PUBLIC_KEY
PACIFICA_DEMO_MODE=false
NEXT_PUBLIC_APP_ENV=mainnetThe intended public flow is wallet-signed execution in the browser.
- Users connect a Solana wallet.
- OceanPulse reads the connected
publicKey. - Execution payloads are signed client-side.
- The server only forwards signed requests to Pacifica.
Server signing is disabled by default.
It only turns on if you explicitly set:
OCEANPULSE_ENABLE_SERVER_SIGNING=trueand provide server-side Pacifica signing credentials.
That path is meant for internal or controlled setups, not the default public user flow.
PACIFICA_API_BASE=https://api.pacifica.fi/api/v1
PACIFICA_ACCOUNT=
PACIFICA_SECRET_KEY=
PACIFICA_AGENT_SECRET_KEY=
PACIFICA_AGENT_WALLET=
PACIFICA_PF_API_KEY=
PACIFICA_BUILDER_CODE=
PACIFICA_DEMO_MODE=false
PACIFICA_REQUEST_TIMEOUT_MS=10000
PACIFICA_DEFAULT_SYMBOL=BTC
PACIFICA_DEFAULT_TIME_RANGE=7d
NEXT_PUBLIC_APP_NAME=OceanPulse
NEXT_PUBLIC_APP_ENV=mainnet
OCEANPULSE_ENABLE_SERVER_SIGNING=falsenpm run typecheck
npm run lint
npm run buildFor the hackathon demo, the strongest flow is:
PulseExecuteRiskJournal
If you want to record a safe demo without placing a real trade, open the app in read-only mode against a live Pacifica account and do not connect a signing wallet.
Pulse,Risk, andJournalwork well as read-only demo surfaces.Executesupports browser-signed execution when a compatible wallet is connected.Vaultuses wallet-signed subaccount actions and is best treated as a secondary capability in the demo.