Skip to main content

Smart Agent

A smarter agent that buys the cheapest feed first, then conditionally purchases additional feeds based on market conditions.

Strategy

  1. Buy btc-sentiment (0.003 STX — cheapest feed)
  2. If Fear & Greed < 30 (extreme fear) → buy whale-alerts to check for smart money accumulation
  3. If Fear & Greed > 70 (extreme greed) → buy liquidation-alerts to check risk
  4. Always buy gas-prediction for trade timing

Full Code

import { ShadowFeed } from 'shadowfeed-agent';

async function main() {
const sf = new ShadowFeed({
privateKey: process.env.AGENT_PRIVATE_KEY!,
network: 'mainnet',
agentName: 'Smart Agent',
});

console.log(`Smart Agent | Wallet: ${sf.address}\n`);

// Step 1: Check sentiment (cheapest feed — 0.003 STX)
console.log('Step 1: Checking BTC sentiment...');
const sentiment = await sf.buy<{
fear_greed_index: number;
overall_label: string;
market_trend: string;
}>('btc-sentiment');

const fgi = sentiment.data.fear_greed_index ?? 50;
const label = sentiment.data.overall_label ?? 'neutral';
const trend = sentiment.data.market_trend ?? 'neutral';
console.log(` Fear & Greed: ${fgi} (${label})`);
console.log(` Market Trend: ${trend}\n`);

// Step 2: Conditional buying
if (fgi < 30) {
console.log('Extreme fear detected — checking whale accumulation...');
const whales = await sf.buy('whale-alerts');
console.log(` Whale data keys: ${Object.keys(whales.data).join(', ')}`);
console.log(` Signal: Smart money may be accumulating\n`);
} else if (fgi > 70) {
console.log('Extreme greed detected — checking liquidation risk...');
const liqs = await sf.buy('liquidation-alerts');
console.log(` Liquidation data keys: ${Object.keys(liqs.data).join(', ')}`);
console.log(` Signal: Watch for potential correction\n`);
} else {
console.log(`Market is ${label} — no extra signals needed.\n`);
}

// Step 3: Always check gas for optimal trade timing
console.log('Step 3: Checking gas/fees for timing...');
const gas = await sf.buy('gas-prediction');
console.log(` Gas data keys: ${Object.keys(gas.data).join(', ')}`);

console.log('\nSmart Agent complete.');
}

main().catch((err) => {
console.error('Agent error:', err.message);
process.exit(1);
});

Run It

AGENT_PRIVATE_KEY=<your-hex-key> npx tsx smart-agent.ts

Cost Analysis

ConditionFeeds BoughtTotal Cost
Extreme fear (FGI < 30)sentiment + whales + gas0.011 STX
Extreme greed (FGI > 70)sentiment + liquidations + gas0.014 STX
Neutral marketsentiment + gas0.006 STX

The agent optimizes spending by only buying expensive feeds when conditions warrant it.