Product guide
Everything you need
to operate Corine.
Connect, deploy, fund, monitor, and control autonomous financial agents. Use Chat and Telegram, explore FOMO Pro and market tools, and manage $CORINE runtime credits.
01 — Product quickstart
From wallet connection to a running agent.
Start with one narrow mandate, a minimally funded agent wallet, and conservative authority. Expand only after you have reviewed real executions.
“Buy $10 of SOL when RSI falls below 30, take profit at 12%, never spend more than $40 per day, and notify me on Telegram.” Clear prompts make the asset, trigger, action, authority, and reporting behavior reviewable before deployment.
02 — Accounts & wallets
Identity, capital, and runtime are separate.
Corine keeps authentication, each agent's trading funds, and product credits distinct. Moving one balance never silently changes another.
Identifies your account through a signed message. It remains your wallet and is not the address shown for a deployed agent.
Every deployed agent gets its own Solana address. Fund, send, withdraw, copy, and inspect it from that agent's page.
Pay for metered deployments, compute, and premium product surfaces. Credits are not SOL, USDC, or trading capital.
Fund only the exact address displayed on the intended agent page. A valid transfer to another agent or wallet cannot be reassigned automatically. For cross-chain routes, wait for destination settlement before starting the agent.
Product surfaces
03 — Deploy
Turn a mandate into bounded authority.
The live preview is the contract you review before deployment. If the inferred asset, trigger, action, or limits differ from your intent, rewrite the prompt before proceeding.
- Exact token, wallet, market, or FOMO username
- Observable trigger or schedule
- Trade, alert, tracking, or vault action
- Position size and exit behavior
- Deadline or cadence where relevant
- Which asset or side should be used
- Whether the agent trades or only notifies
- Maximum capital per action and per day
- Which wallet or profile should be followed
- What should pause or end the strategy
Advanced settings
Dip buys, DCA, limit orders, take-profit ladders, alerts, and other supported bounded strategies.
Wallet tracking, copy signals, market monitoring, research, and notify-only workflows.
Available yield, liquidity, prediction, launch, and connector-backed workflows.
Availability depends on the exact token or market, wallet funding, route health, product feature flags, and selected capabilities. A visible category is not a promise that every requested asset has an executable route.
04 — Operate agents
Fund, observe, pause, and stop with intent.
Dashboard is the fleet view; each agent page is the source of truth for that runtime's status, wallet, parsed strategy, executions, and controls.
Review the live status, performance or position view, triggers, caps, risk policy, daily spend, execution history, and unique wallet.
Deposit, send, receive, review holdings and prediction positions, inspect scoped caps, or kill every agent during an account-wide incident.
Pause is reversible. Stop is permanent. Stopping does not automatically withdraw the wallet. Use Kill all agents only as an account-wide incident control.
05 — Chat & Telegram
One conversation layer, scoped to your intent.
Use account-wide Chat for research and planning, or select a deployed agent to inspect its mandate, wallet, decisions, and activity directly.
Select an agent from the top selector. New execution events for that agent appear in the conversation as structured artifacts.
Choose listed skills and connectors for a conversation. A selected skill may activate only its required connector.
Search history, rename or archive threads, stop streaming, regenerate, and review structured action cards.
Trades and deployments prepared in Chat require confirmation. Conversation text is not proof of execution. Verify the action artifact, execution record, and confirmed transaction signature.
Link Telegram
Never paste a private key or seed phrase into web chat, Telegram, or a support conversation.
06 — $CORINE & credits
Buy the runtime asset. Credit verified purchases.
$CORINE purchases add runtime credits after on-chain verification. They do not add SOL or tokens to an agent wallet.
Purchase multipliers
The multiplier applies to each complete verified purchase. Separate purchases are not combined into a higher tier. If automatic crediting does not appear, use Recover a completed purchase on the Buy $CORINE page and paste the confirmed signature. Verification is idempotent.
Current metering
The in-product price shown at confirmation is authoritative. Running out of credits can pause a metered agent even when its on-chain wallet is funded.
07 — Markets & research
Research, test, trade, and automate.
Corine's market surfaces serve different jobs. Missing fields remain unavailable rather than being filled with invented data.
Daily-unlock token arena with rankings, price and holder intelligence, trades, theses, news, trader and clan leaderboards, Pump calls, exact-mint trading, and signal or copy-agent deployment.
Discover tokens, inspect launch stages, track wallets, manage holdings, trade, and deploy scan-and-buy or watch-and-notify automations.
Build node graphs, compile, backtest, inspect Monte Carlo, optimize, run walk-forward analysis, paper-test, and deploy after validation.
Browse available categories and Up/Down windows, inspect price history and order books, review Corine's read, place positions, track outcomes, and claim eligible winnings.
Verify the resolved FOMO profile or wallet before deploying. A copy agent mirrors only eligible observed activity and remains limited by its per-action cap, daily cap, risk policy, available balance, and supported routes. Historical source performance does not guarantee future results.
FOMO market data is cached to control upstream usage. Read the capture timestamp and refresh only when you need a newer snapshot. Repeated refreshes cannot create data that the source does not provide.
08 — Product safety
Interpretation proposes. Deterministic policy decides.
Product intelligence can prepare an action, but the configured authority and runtime checks determine whether it may proceed.
Per-transaction caps, daily caps, wallet balances, fee checks, and account-wide emergency controls bound spend.
Idempotency, trigger freshness, market-data freshness, route validation, and a failure circuit breaker reduce unsafe repetition.
Warning-level screening can be bypassed per agent after confirmation. Deterministic hard blocks cannot be disabled.
Allow risky tokens
Open the agent page, then Strategy → Safety gates → Allow risky tokens. The switch bypasses warning-level checks only for that agent. Turning it on can expose the full permitted trade amount to token-specific loss. To restore screening, turn it off.
No control eliminates market, smart-contract, custody, liquidity, bridge, oracle, or token risk. A submitted response is not final proof of success; treat the confirmed on-chain transaction and the reconciled execution record as authoritative.
09 — Troubleshooting
Diagnose the state before retrying.
Blind retries are dangerous in financial software. Start from the specific status, block reason, transaction signature, and wallet balance.
Email harsh@corine.xyz, message @harshdev1, or join the Corine Telegram community. Include the public wallet address, agent ID, transaction signature, and timestamp when relevant. Never include a private key, seed phrase, or secret credential.
01 — The one idea
Nine gates, one order, no way around.
Every trade the SDK executes runs through a single function. It passes nine deterministic gates in a fixed order, then dispatches to a fill venue. A forker adds a venue by implementing an interface, and it still sits behind every gate. That is the moat, and the safety guarantee.
02 — Under five minutes
Configure with your keys, run a guarded trade.
Provide your RPC and your signer. Everything else has a safe default: an in memory store, a console notifier, and the Jupiter price, quote, and fill leg. Caps are required, so there is no way to run an uncapped trade.
import { createCorine, LocalSigner, SOL_MINT, USDC_MINT } from "@h4rsharma/corine-core";
const corine = createCorine({
rpc: { endpoint: process.env.RPC_URL }, // your RPC
signer: LocalSigner.fromBase58(process.env.SECRET_KEY), // your key, stays local
});
const res = await corine.execute({
inputMint: SOL_MINT,
outputMint: USDC_MINT,
amountUsd: 10,
side: "buy",
maxPerTxUsd: 100, // required
dailyCapUsd: 500, // required
});
// "executed" | "blocked" | "failed" | "noop"
console.log(res.status, res.txHash ?? res.reason);
An over cap or kill switched trade returns status: "blocked" with a machine readable blockedBy, and the fill venue is never reached. No funds move on a blocked path.
03 — The runtime
One call to configure, one method to trade.
createCorine(config) returns a runtime. The only way to move funds is corine.execute(), which always runs the spine. There is no raw, ungated execute exported anywhere in the package.
type BlockReason = | "kill_switch" | "over_caps" | "over_daily_cap" | "below_min" | "insufficient_sol" | "stale_trigger" | "stale_price" | "rug" | "not_whitelisted" | "inflight" | "internal";
04 — The seams
Pluggable infrastructure. Your keys, your providers.
The runtime depends on interfaces, never on a concrete provider or endpoint. Each ships a working default, and you swap in your own with minimal friction. No Corine secret lives in the package.
Read chain state and broadcast. You supply the endpoint.
Custody. Sign in process, or prompt a wallet.
Price, quote, and the optional rug check.
Kill switch, idempotency, daily spend, audit.
Where the runtime reports what it did.
Optional agent recall with explicit degraded states.
import { createCorine, LocalSigner, FileStore } from "@h4rsharma/corine-core";
const corine = createCorine({
rpc: { endpoint: process.env.RPC_URL },
signer: LocalSigner.fromBase58(process.env.SECRET_KEY),
store: new FileStore("./.corine/state.json"), // durable idempotency + caps
jupiter: { apiKey: process.env.JUPITER_KEY }, // optional, your key
});
05 — Autonomy
Deploy an agent. It can only propose.
An agent type decides when to trade. The runtime executes the proposal through the spine with the agent's caps, so a handler cannot trade directly. Ships with DCA, dip buyer, limit order, and laddered exit, plus a pluggable registry for your own.
const agent = await corine.agents.deploy({
userId: "me",
strategy: {
name: "BONK DCA",
agentType: "DCA",
outputMint: "DezXAZ8z7PnrnRJjz3wXBoRgixCa6xjnB7YaB1pPB263",
amountUsd: 5,
intervalSeconds: 3600,
caps: { maxPerTxUsd: 10, dailyCapUsd: 50 }, // mandatory
},
});
// call on your own schedule; returns a GuardedResult or null
await corine.agents.runOnce(agent.id);
06 — Terminal
The same spine, from your shell.
The CLI trades through the identical guarded spine. Human readable by default, structured on every command with --json, so agents and scripts consume it too. Your keys stay local. Money moving actions confirm by default.
npm install -g @h4rsharma/corine-cli
Configuration
The CLI reads configuration from the environment. Network reads need an RPC endpoint; execution commands also require a local signer. help and docs work without either.
Global flags
$ corine buy --out EPjF…Dt1v --usd 999 --yes ✗ over_caps: Amount $999 exceeds the per-trade cap of $100. $ corine kill on Kill switch ON — all trades halted.
$ corine buy --out EPjF…Dt1v --usd 999 --json --yes
{"ok":false,"command":"buy","data":{"status":"blocked"},
"error":{"code":"over_caps","message":"Amount $999 exceeds the per-trade cap of $100."}}
Every command supports --json. Money-moving JSON commands require --yes, return a non-zero exit code on blocked or failed outcomes, and never wait for interactive input. The CLI signs locally. Preserve CORINE_STATE_FILE across restarts because it contains idempotency, daily-spend, and kill-switch state.
07 — Honest by policy
The safety model, without overclaims.
The guarantee this runtime makes is narrow and real. You cannot execute a trade that skips the gate stack. Everything else is your configuration and your disclosure.
Using a local signer is custodial. The process can sign on the user's behalf without a per transaction prompt. This SDK never calls itself non custodial, and never claims funds are safe. The caps and the kill switch are backstops on a custodial key, not a replacement for custody.
- No trade skips the gate stack
- Caps are mandatory, kill switch is unconditional
- A deterministic key never double executes
- No live price means refuse to trade blind
- Market risk. Caps limit size, not loss
- A compromised key or store
- A dishonest data source you chose
- Durability you did not configure
08 — Boundaries
What is open, what stays hosted.
The open package is the complete, real runtime, not a teaser. You can install it, bring your keys, and run a guarded trade with nothing else. The runtime never requires billing. A trade is never credit gated.
- The guarded spine and gate stack
- The Jupiter fill leg and pluggable venues
- The agent runtime and type registry
- Pluggable infrastructure interfaces with defaults
- The CLI, docs, llms.txt, SKILL.md, MCP
- $CORINE runtime payments
- x402 monetization
- Managed database, queues, dashboard
- Any API key or private endpoint