{"tool":"crypto-portfolio","title":"Solana Portfolio","what":"Every token a Solana wallet holds, valued in USD: SOL and all fungible SPL and Token-2022 balances with symbol, name, amount, price and value, sorted by value, plus the total portfolio value and the NFT count. One call instead of dozens of RPC reads.","endpoint":"https://yruz.one/api/crypto/portfolio","methods":["GET with query parameters","POST with a JSON body (same fields)"],"price":{"model":"fixed","usdc":"0.005"},"params":[{"name":"address","required":true,"description":"Solana wallet address","example":"CWfaj5vDppWCp4q1X4iPYGWpCGY2Rerj9DQWqxTnz1Pp"},{"name":"min_usd","required":false,"description":"hide tokens worth less than this, default 0","example":null}],"valid_request":{"get":"https://yruz.one/api/crypto/portfolio?address=CWfaj5vDppWCp4q1X4iPYGWpCGY2Rerj9DQWqxTnz1Pp","post":{"url":"https://yruz.one/api/crypto/portfolio","body":{"address":"CWfaj5vDppWCp4q1X4iPYGWpCGY2Rerj9DQWqxTnz1Pp"}}},"how_to_pay":["1. Send the request without payment: the answer is HTTP 402 with the exact price (x402 v2 in the PAYMENT-REQUIRED header, x402 v1 in the JSON body).","2. Sign one offer of \"accepts\" with an x402 client (USDC on Base eip155:8453 or on Solana mainnet; the facilitator pays the network fee).","3. Resend the identical request (same method, parameters and body) with PAYMENT-SIGNATURE (v2) or X-PAYMENT (v1).","4. The answer carries the receipt in PAYMENT-RESPONSE. Any changed parameter needs a new 402."],"response_shape":{"product":"string","result":{"address":"string","total_value_usd":"number","token_count":"number","tokens":[{"mint":"string","symbol":"string","name":"string","amount":"number","decimals":"number","price_usd":"number","verified":"boolean","value_usd":"number"}],"hidden_below_min_usd":"number","nft_count":"number","sources":["string"],"as_of":"string","duration_ms":"number"},"payment":{"payment_id":"string","transaction":"string"}},"refusals":{"400":"invalid input: the message names the field and the expected format; nothing is charged","402":"payment required, or the payment was refused (reason in \"error\"); nothing is charged","403/404":"not your item, or the asked item does not exist; nothing is charged","409/422":"not allowed right now (state or destination safety); nothing is charged","503":"a source or the payment rail is unavailable; nothing is charged, retry after Retry-After"},"mcp":{"server":"https://yruz.one/mcp/x402","payment":"params._meta[\"x402/payment\"] = PaymentPayload"},"related":{"tools":[{"tool":"crypto-token","url":"https://yruz.one/api/crypto/token","why":"risk-check a token in the wallet","usd":"0.005","how":"https://yruz.one/api/instructions?tool=crypto-token"},{"tool":"crypto-tx","url":"https://yruz.one/api/crypto/tx","why":"explain a transaction","usd":"0.003","how":"https://yruz.one/api/instructions?tool=crypto-tx"},{"tool":"crypto-price","url":"https://yruz.one/api/crypto/price","why":"live prices","usd":"0.002","how":"https://yruz.one/api/instructions?tool=crypto-price"}],"more_x402_apis":{"402index":"https://402index.io","x402scan":"https://www.x402scan.com","agent402":"https://agent402.tools","x402_protocol":"https://www.x402.org"},"all_yruz_tools":"https://yruz.one/api/instructions"}}