Basic Agent
The simplest ShadowFeed agent — discovers available feeds and purchases whale alerts data.
Full Code
import { ShadowFeed } from 'shadowfeed-agent';
async function main() {
const sf = new ShadowFeed({
privateKey: process.env.AGENT_PRIVATE_KEY!,
network: 'mainnet',
agentName: 'Basic Agent',
});
console.log(`Wallet: ${sf.address}`);
// 1. Discover all feeds
const feeds = await sf.discover();
console.log(`Available feeds: ${feeds.length}`);
feeds.forEach((f) =>
console.log(` - ${f.id} (${f.price_display})`)
);
// 2. Buy whale-alerts
console.log('\nBuying whale-alerts...');
const result = await sf.buy('whale-alerts');
console.log(`Feed: ${result.feed}`);
console.log(`Price: ${result.price_stx} STX`);
console.log(`TX: ${result.tx}`);
console.log(`Data keys: ${Object.keys(result.data).join(', ')}`);
}
main().catch((err) => {
console.error('Agent error:', err.message);
process.exit(1);
});
Run It
AGENT_PRIVATE_KEY=<your-hex-key> npx tsx basic-agent.ts
Expected Output
Wallet: SP2PBB...
Available feeds: 16
- whale-alerts (0.005 STX)
- btc-sentiment (0.003 STX)
- defi-scores (0.01 STX)
...
Buying whale-alerts...
Feed: whale-alerts
Price: 0.005 STX
TX: 0xabc123...
Data keys: alerts, summary, btc_price_usd, data_source
What It Does
- Initializes the SDK with your wallet
- Calls
sf.discover()to list all 16 feeds - Calls
sf.buy('whale-alerts')which automatically handles the x402 payment flow - Prints the returned data
Cost: 0.005 STX (~$0.002)