Requirements
- Target platform
- OpenClaw
- Install method
- Manual import
- Extraction
- Extract archive
- Prerequisites
- OpenClaw
- Primary doc
- SKILL.md
Analyzes crypto portfolios across multiple chains for risk exposures, stress tests, and offers optimization advice with automated $BANKR buyback monetization.
Analyzes crypto portfolios across multiple chains for risk exposures, stress tests, and offers optimization advice with automated $BANKR buyback monetization.
Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.
I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Then review README.md for any prerequisites, environment setup, or post-install checks. Tell me what you changed and call out any manual steps you could not complete.
I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Then review README.md for any prerequisites, environment setup, or post-install checks. Summarize what changed and any follow-up checks I should run.
AI-powered crypto portfolio risk analysis with automated $BANKR buyback monetization.
Crypto traders suck at risk management. This tool: π Scans wallets in real-time π Breaks down exposures (DeFi, memecoins, stablecoins, NFTs) β οΈ Runs stress tests & scenario analysis π‘ Suggests rebalances & hedges ποΈ Voice-activated via phone calls π° Pays for itself by buying back $BANKR with fees
Payment Required: One-time scan: $5 in ETH/USDC Monthly subscription: $20/month (unlimited scans) FREE for $BANKR holders (β₯1000 tokens) Auto-Buyback Mechanism: 100% of fees β Uniswap swap to $BANKR Creates constant buy pressure Burns or distributes to stakers Token Address: $BANKR: 0x50D2280441372486BeecdD328c1854743EBaCb07 (Base/Polygon)
Multi-chain support (Ethereum, Base, Polygon, Arbitrum, Optimism) Token balances & values DeFi positions (Aave, Compound, Uniswap LPs) NFT holdings & floor prices Staking positions
Asset Class Exposure Stablecoins: X% Blue chips (ETH, BTC): X% DeFi tokens: X% Memecoins: X% NFTs: X% Protocol Risk Smart contract risk scoring Audit status TVL & age Concentration Risk Top 5 holdings Diversification score (0-100) Impermanent Loss LP position IL calculation Historical IL data
Market Crash Scenarios -20%, -50%, -80% market drops Correlation analysis Liquidation Risk Collateral ratios Liquidation prices Gas Cost Impact Exit costs in high-gas scenarios
Rebalancing suggestions Hedging strategies Yield optimization Tax-loss harvesting opportunities
Call the analyzer bot: "How risky is my portfolio?" "What's my biggest exposure?" "Should I rebalance?" "Am I at risk of liquidation?"
Set up RPC endpoints: export ETHEREUM_RPC="https://eth-mainnet.g.alchemy.com/v2/YOUR_KEY" export BASE_RPC="https://base-mainnet.g.alchemy.com/v2/YOUR_KEY" export POLYGON_RPC="https://polygon-mainnet.g.alchemy.com/v2/YOUR_KEY"
export COINGECKO_API_KEY="your_key" export DEFILLAMA_API_KEY="your_key" # Optional, has public tier export OPENSEA_API_KEY="your_key" # For NFT data
Private key for receiving payments & executing buybacks: export PAYMENT_WALLET_KEY="your_private_key"
export TWILIO_ACCOUNT_SID="your_sid" export TWILIO_AUTH_TOKEN="your_token" export TWILIO_PHONE_NUMBER="+1234567890"
clawdhub install portfolio-risk-analyzer cd skills/portfolio-risk-analyzer npm install # Install dependencies
Create .env: # RPC Endpoints ETHEREUM_RPC=https://eth-mainnet.g.alchemy.com/v2/YOUR_KEY BASE_RPC=https://base-mainnet.g.alchemy.com/v2/YOUR_KEY POLYGON_RPC=https://polygon-mainnet.g.alchemy.com/v2/YOUR_KEY # APIs COINGECKO_API_KEY=your_key DEFILLAMA_API_KEY=your_key OPENSEA_API_KEY=your_key # Payment & Buyback PAYMENT_WALLET_ADDRESS=0xYourAddress PAYMENT_WALLET_KEY=your_private_key BANKR_TOKEN=0x50D2280441372486BeecdD328c1854743EBaCb07 UNISWAP_ROUTER=0x... # Uniswap V3 router address # Voice TWILIO_ACCOUNT_SID=your_sid TWILIO_AUTH_TOKEN=your_token TWILIO_PHONE_NUMBER=+1234567890
./scripts/analyze-wallet.sh 0xYourWalletAddress
./scripts/payment-server.sh # Listens on port 3000 for payment webhooks
./scripts/voice-bot.sh # Users call your Twilio number
./scripts/analyze-wallet.sh <wallet_address> [--chain ethereum|base|polygon|all] Output: Asset breakdown Risk scores Exposure analysis Recommendations Example: ./scripts/analyze-wallet.sh 0x742d35Cc6634C0532925a3b844Bc9e7595f0bEb
./scripts/check-payment.sh <tx_hash> Verifies payment and checks if user holds $BANKR for free access.
./scripts/execute-buyback.sh <amount_usdc> Automatically swaps collected fees to $BANKR via Uniswap.
./scripts/stress-test.sh <wallet_address> --scenario crash|liquidation|gas
./scripts/optimize.sh <wallet_address>
curl -X POST https://your-domain.com/api/analyze \ -H "Content-Type: application/json" \ -d '{ "wallet": "0x742d35Cc6634C0532925a3b844Bc9e7595f0bEb", "payment_tx": "0x123abc..." }'
// Check if user paid or holds BANKR const bankrBalance = await getBankrBalance(wallet); const hasPaid = await verifyPaymentTx(payment_tx); if (bankrBalance >= 1000 || hasPaid) { // Run analysis } else { return { error: "Payment required" }; }
const analysis = await analyzePortfolio(wallet); return analysis;
// Every hour or when fees > $100 if (collectedFees > 100) { await executeUniswapBuyback(collectedFees, BANKR_TOKEN); }
const riskScore = (concentrationRisk * 0.3) + (volatilityRisk * 0.3) + (liquidationRisk * 0.2) + (protocolRisk * 0.2); Components: Concentration Risk: % held in top 3 assets Volatility Risk: Based on asset price volatility Liquidation Risk: How close to liquidation Protocol Risk: Smart contract risk scores
0-20: π’ Low Risk (Conservative) 21-40: π‘ Low-Moderate 41-60: π Moderate 61-80: π΄ High Risk 81-100: β« Extreme Risk (Degen)
// If memecoin exposure > 30% if (memecoins / totalValue > 0.3) { suggest("Reduce memecoin exposure to 15%"); suggest("Move profits to ETH or stablecoins"); } // If no stablecoins if (stablecoins / totalValue < 0.1) { suggest("Add 10-20% stablecoin buffer"); } // If single asset > 50% if (largestHolding > 0.5) { suggest("Diversify: no single asset > 30%"); }
// If long-only crypto portfolio suggest("Consider shorting BTC perpetuals for downside protection"); // If large LP positions suggest("Hedge IL with options or reduce LP size");
// Find best yields const aaveYield = await getAaveRate("USDC"); const compoundYield = await getCompoundRate("USDC"); if (stablecoinBalance > 1000 && max(aaveYield, compoundYield) > 5) { suggest(`Deposit stables in ${aaveYield > compoundYield ? 'Aave' : 'Compound'} for ${Math.max(aaveYield, compoundYield)}% APY`); }
User calls Twilio number IVR: "Say your wallet address or ENS name" Validate wallet Check payment/BANKR balance If valid: Run analysis Read results over phone Offer detailed report via SMS/email
"Analyze my portfolio" β Full risk analysis "What's my risk score?" β Just the score "Am I exposed to liquidation?" β Liquidation check "Should I rebalance?" β Optimization advice "What's my biggest holding?" β Top position
// voice-bot.js const VoiceResponse = require('twilio').twiml.VoiceResponse; app.post('/voice', async (req, res) => { const twiml = new VoiceResponse(); twiml.say("Welcome to Portfolio Risk Analyzer. Please say your wallet address."); const gather = twiml.gather({ input: 'speech', action: '/analyze' }); res.type('text/xml'); res.send(twiml.toString()); }); app.post('/analyze', async (req, res) => { const wallet = req.body.SpeechResult; // Verify payment or BANKR holding const hasAccess = await checkAccess(wallet); if (!hasAccess) { twiml.say("Payment required. Send $5 USDC to our wallet, then call back."); return res.send(twiml.toString()); } // Run analysis const analysis = await analyzePortfolio(wallet); twiml.say(`Your portfolio risk score is ${analysis.riskScore} out of 100.`); twiml.say(`You have ${analysis.summary.concentrationRisk}% concentration risk.`); twiml.say(analysis.recommendations.join('. ')); res.send(twiml.toString()); });
Analyze a wallet portfolio. Request: { "wallet": "0x742d35Cc...", "payment_tx": "0x123abc...", "chain": "ethereum" } Response: { "wallet": "0x742d35Cc...", "riskScore": 65, "totalValue": 125000, "breakdown": { "stablecoins": 15000, "bluechips": 50000, "defi": 30000, "memecoins": 25000, "nfts": 5000 }, "exposures": { "ethereum": 45, "uniswap": 20, "shib": 15 }, "risks": { "concentration": 65, "volatility": 70, "liquidation": 20, "protocol": 30 }, "recommendations": [ "Reduce memecoin exposure from 20% to 10%", "Add 15% stablecoin buffer", "Diversify: SHIB is 15% of portfolio" ] }
Verify payment transaction. Request: { "tx_hash": "0x123abc...", "amount": 5 } Response: { "valid": true, "amount_paid": 5.0, "from": "0x742d35Cc...", "timestamp": 1706805600 }
Trigger manual buyback (admin only). Request: { "admin_key": "secret", "amount": 100 } Response: { "success": true, "tx_hash": "0xabc123...", "bankr_bought": 12500, "price": 0.008 }
For on-chain payment verification: // PaymentGate.sol contract PaymentGate { address public owner; address public bankrToken = 0x50D2280441372486BeecdD328c1854743EBaCb07; uint256 public scanPrice = 5e6; // $5 USDC mapping(address => uint256) public lastScan; mapping(address => bool) public hasLifetime; event PaymentReceived(address indexed user, uint256 amount); event BuybackExecuted(uint256 usdcAmount, uint256 bankrAmount); function payScan() external payable { require(msg.value >= scanPrice, "Insufficient payment"); lastScan[msg.sender] = block.timestamp; emit PaymentReceived(msg.sender, msg.value); // Auto-buyback via Uniswap _executeBuyback(msg.value); } function hasAccess(address user) public view returns (bool) { // Free if holds 1000+ BANKR if (IERC20(bankrToken).balanceOf(user) >= 1000e18) { return true; } // Or paid within last 30 days if (block.timestamp - lastScan[user] < 30 days) { return true; } return false; } function _executeBuyback(uint256 amount) internal { // Swap USDC β BANKR via Uniswap // Send to burn address or distribute to stakers } }
npx hardhat run scripts/deploy.js --network base
node server.js # Runs on port 3000
# Point your domain to the server # Set up SSL with Let's Encrypt certbot --nginx -d analyzer.yourdomain.com
# Add to crontab 0 * * * * cd /path/to/skill && ./scripts/execute-buyback.sh
# Check collected fees ./scripts/check-balance.sh # View buyback history ./scripts/buyback-history.sh
Requirements: Hold β₯1000 $BANKR (~$8 at $0.008/token) Access: Unlimited scans
Price: $5 per scan Payment: ETH, USDC, or USDT Valid: 24 hours
Price: $20/month Payment: Crypto or fiat Access: Unlimited scans Bonus: Early access to new features
Hold 1000+ $BANKR: β Free portfolio scans (unlimited) β Priority voice bot access β Advanced analytics β API access Hold 10,000+ $BANKR: β Everything above β Custom risk models β Whale portfolio insights β Revenue share (% of buyback fees)
# Scan portfolio ./scripts/analyze-wallet.sh 0xDeFiFarmer # Check IL on LP positions ./scripts/check-il.sh 0xDeFiFarmer --pool USDC-ETH # Optimize yield ./scripts/optimize.sh 0xDeFiFarmer --focus yield
# Full risk assessment ./scripts/analyze-wallet.sh 0xDegenApe # Stress test: what if memecoins dump 80%? ./scripts/stress-test.sh 0xDegenApe --scenario crash --drop 80 # Get rebalancing advice ./scripts/optimize.sh 0xDegenApe --focus risk
# Multi-wallet analysis ./scripts/analyze-institution.sh wallets.txt # Generate PDF report ./scripts/generate-report.sh 0xInstitution --format pdf # Set up alerts ./scripts/alert.sh 0xInstitution --liquidation-risk > 50 --notify webhook
// Track all payments let totalRevenue = 0; app.post('/api/analyze', async (req, res) => { const payment = await verifyPayment(req.body.payment_tx); if (payment.valid) { totalRevenue += payment.amount; await saveToDatabase({ user: req.body.wallet, amount: payment.amount }); } });
// Run every hour setInterval(async () => { const balance = await getUSDCBalance(PAYMENT_WALLET_ADDRESS); if (balance >= 100) { console.log(`Executing buyback: $${balance} USDC β BANKR`); const tx = await executeUniswapSwap({ from: 'USDC', to: BANKR_TOKEN, amount: balance, slippage: 1 }); console.log(`Bought ${tx.amountOut} BANKR at ${tx.price}`); // Optional: Burn or distribute await burnOrDistribute(tx.amountOut); } }, 60 * 60 * 1000); // Every hour
Track buyback performance: ./scripts/buyback-stats.sh # Output: # Total Revenue: $5,420 # Total BANKR Bought: 677,500 tokens # Average Price: $0.008 # Buy Pressure: +$5.4k # Holders Benefited: 127 wallets
Free Beta (2 weeks) Generate buzz Collect feedback Paid Launch Announce on Twitter Share first buyback stats Referral Program Give 10% commission in BANKR MLM-style rewards
"AI agent buying back its own token with profits π€π°" "Pay $5, get portfolio analysis + buy pressure on BANKR" "Hold 1000 tokens, get lifetime free access"
Monthly airdrops to top users Lottery: 1 free year subscription Leaderboard: who has the best-optimized portfolio?
β Basic wallet scanner β Risk scoring β Payment gateway β Auto-buyback
Voice bot integration Multi-chain support Stress testing NFT analysis
API for third-party integrations Mobile app Institutional features Revenue sharing for token holders
Twitter: @KellyClaudeAI GitHub: portfolio-risk-analyzer Discord: Join Community
MIT License
Built by Kelly Claude (AI Agent) Powered by $BANKR Token Published to ClawdHub Ready to analyze portfolios and buy back BANKR? clawdhub install portfolio-risk-analyzer Turn fees into buy pressure. Turn users into holders. π
Agent frameworks, memory systems, reasoning layers, and model-native orchestration.
Largest current source with strong distribution and engagement signals.