{"uid":"cap_XZQzFHs5JhbBT4qQlCkZm","slug":"selun-sagitta-systems-be4292b7","name":"Sagitta Systems Portfolio Rebalance Engine","description":"Portfolio rebalance engine. Call this after allocation or on a monitoring schedule with current holdings. Returns target-vs-current drift and the adjustments required to rebalance within policy constraints for the requested portfolio segment.","url":"https://selun.sagitta.systems/agent/x402/rebalance","method":"POST","headers":{},"bodySchema":{"type":"object","properties":{"holdings":{"type":"array","items":{"type":"object","required":["asset","usdValue"],"properties":{"name":{"type":"string"},"asset":{"type":"string"},"usdValue":{"type":"number"},"allocationPct":{"type":"number"}}},"minItems":1},"timeframe":{"enum":["<1_year","1-3_years","3+_years"]},"decisionId":{"type":"string"},"riskTolerance":{"enum":["Conservative","Balanced","Growth","Aggressive"]},"portfolioSegment":{"enum":["Bluechips","Memecoins","Gaming","Yield Farm"]}}},"responseSchema":{"type":"json","example":{"data":{"result":{"recommendations":[{"asset":"BTC","action":"reduce","targetAllocationPct":36,"currentAllocationPct":43}],"currentPortfolioUsd":10000},"status":"completed","endpoint":"/agent/x402/rebalance","productId":"rebalance","decisionId":"rebalance-001"},"success":true,"executionModelVersion":"Selun-1.0.0"}},"example":{"request":{"holdings":[{"name":"Bitcoin","asset":"BTC","usdValue":25000,"allocationPct":50},{"name":"Ethereum","asset":"ETH","usdValue":15000,"allocationPct":30},{"name":"USD Coin","asset":"USDC","usdValue":10000,"allocationPct":20}],"timeframe":"1-3_years","decisionId":"test-rebal-001","riskTolerance":"Balanced","portfolioSegment":"Bluechips"},"response":{"_truncated":true,"_originalSize":24998}},"exampleRequest":{"holdings":[{"name":"Bitcoin","asset":"BTC","usdValue":25000,"allocationPct":50},{"name":"Ethereum","asset":"ETH","usdValue":15000,"allocationPct":30},{"name":"USD Coin","asset":"USDC","usdValue":10000,"allocationPct":20}],"timeframe":"1-3_years","decisionId":"test-rebal-001","riskTolerance":"Balanced","portfolioSegment":"Bluechips"},"tags":["x402"],"displayCostAmount":"1","displayCostAsset":"USDC","priceDynamic":false,"priceHint":null,"priceStatus":"priced","priceSource":"settled","requiresHandshake":false,"reviewCount":0,"rating":{"score":"0.00","successRate":"0.00","reviews":0,"stars":null,"state":"unrated"},"availabilityStatus":"unknown","priceObserved":null,"sessionDeposit":null,"pricing":{"kind":"static","summary":"$1/call","primary":{"kind":"static","protocol":"x402","network":"base","amountUsd":"1","per":"call","confidence":"exact"},"accepted":[{"kind":"static","protocol":"x402","network":"base","amountUsd":"1","per":"call","confidence":"exact"}]},"paymentMethods":[{"uid":"pm_z7BR4He1jGTUSi_Yjy_ky","protocol":"x402","methodType":"crypto","chain":"base","mode":"charge","costAmount":"1","costPer":"request","priority":0,"asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","unit":"request","depositMicros":null,"planRef":null}],"brandName":null,"brandSlug":null,"brandBaseUrl":null,"brandDocsUrl":null,"whatItDoes":"Computes target-vs-current allocation drift and required trade adjustments to rebalance a portfolio segment within policy constraints.","exampleAgentPrompt":"Check my Bluechip portfolio for drift and tell me what rebalancing trades are needed — I'm holding BTC at 50% ($25k), ETH at 30% ($15k), and USDC at 20% ($10k), with a Balanced risk tolerance and a 1-to-3-year timeframe.","exampleUseCases":[{"title":"Rebalance memecoin segment after rally","prompt":"My Memecoins segment has gotten way out of whack after last week's rally — I'm holding DOGE at 60% ($12k), SHIB at 25% ($5k), and PEPE at 15% ($3k). Can you calculate the drift from my target weights and tell me exactly what trades I need to make to get back in balance? I have an Aggressive risk tolerance and a short-term timeframe under 1 year."},{"title":"Check yield farm allocation drift","prompt":"I want to know how far off my Yield Farm segment is from its target allocation — I'm currently sitting at AAVE 40% ($8k), Curve 35% ($7k), and Compound 25% ($5k). Run a drift analysis with Balanced risk tolerance and a 1-to-3-year timeframe and tell me what adjustments I need to rebalance within policy constraints."},{"title":"Gaming token portfolio rebalancing trades","prompt":"Can you figure out what rebalancing trades I need for my Gaming portfolio? I've got AXS at 45% ($9k), SAND at 30% ($6k), and MANA at 25% ($5k) right now, and I'm not sure how far that is from my target weights. Use a Conservative risk tolerance and a timeframe of 3 years or more, and give me the specific buy and sell adjustments I should make."}],"resultDescription":"Returns the drift between current and target allocations across portfolio holdings, along with specific adjustment recommendations required to rebalance within the policy constraints for the requested portfolio segment (e.g. Bluechips). Note: the actual rebalancing payload can be large; the response schema indicates whether the result was truncated and the original response size.","failureModes":["Missing required holdings array returns validation error","Holdings array with fewer than 1 item rejected","Invalid portfolioSegment or riskTolerance enum value returns 400","Truncated response (_truncated: true) means full rebalancing detail was cut off — original size available in _originalSize","Payment not processed results in x402 payment required error","Network timeout on large portfolios"],"whenToPreferThis":"Use this endpoint when you need to compute concrete rebalancing actions for a specific portfolio segment (Bluechips, Memecoins, Gaming, Yield Farm) with defined risk tolerance and timeframe constraints. Prefer this over generic allocation tools when you have actual current holdings with USD values and need policy-constrained drift analysis rather than just raw percentage differences. Best called after the market regime classifier and risk policy engine siblings have run.","instructions":null,"reviewSummary":null,"reviewSummaryHighlights":null,"reviewSummaryConcerns":null,"reviewSummaryGeneratedAt":null,"activationCount":0,"lastUsedAt":null,"lastSuccessfullyRanAt":null,"lastHealthCheckAt":"2026-09-15T00:33:05.860Z","isFirstParty":false}