{"name":"history","oldName":"get_recent_transactions","title":"Recent transactions","category":"wallets","useWhen":"Run to see a wallet's recent activity or get a real transaction ID. Never make one up.","benefit":{"kind":"accuracy","text":"Gives real transaction IDs. Models can make up realistic-looking fake ones, and every lookup after that fails."},"description":"Lists a wallet's latest transactions, newest first, whether each worked, and a plain error name for failures.","price":"$0.01","priceText":"25 free calls a day, then $0.01 USDC per call (x402)","http":{"method":"POST","path":"/api/tools/history","body":"JSON object with the inputs below"},"mcp":{"method":"tools/call","name":"history"},"inputs":[{"name":"wallet","type":"string (base58 address)","required":true,"lookingFor":"The wallet to read the transactions of.","whereToGet":"The user's address (from their wallet app) or your agent's public key. Not a .sol name or ticker."},{"name":"how_many","type":"integer 1-50","required":false,"lookingFor":"How many transactions to return.","whereToGet":"Default 10."},{"name":"before","type":"string (signature)","required":false,"lookingFor":"Start below this transaction, to page further back.","whereToGet":"next_before from the previous answer."},{"name":"network","type":"\"mainnet-beta\" | \"devnet\"","required":false,"lookingFor":"Default \"mainnet-beta\" (real money).","whereToGet":"\"devnet\" only for test wallets."}],"outputs":[{"field":"wallet","type":"string","is":"The wallet that was read.","howWorkedOut":"Your input, cleaned up."},{"field":"count","type":"number","is":"How many transactions came back.","howWorkedOut":"Length of the list."},{"field":"failed_count","type":"number","is":"How many of them failed (failed transactions still pay fees).","howWorkedOut":"Entries with an error."},{"field":"transactions[].tx_id","type":"string","is":"The transaction's ID. Pass it to explain_tx.","howWorkedOut":"getSignaturesForAddress."},{"field":"transactions[].time","type":"string | null","is":"When it happened (UTC).","howWorkedOut":"Block time in ISO 8601. null if the node doesn't know."},{"field":"transactions[].slot","type":"number","is":"The slot it landed in.","howWorkedOut":"getSignaturesForAddress."},{"field":"transactions[].result","type":"\"success\" | \"failed\"","is":"Whether it worked.","howWorkedOut":"failed when the RPC reports an error."},{"field":"transactions[].error","type":"string | null","is":"The failure's short name, e.g. InsufficientFundsForRent.","howWorkedOut":"why_failed run on the raw error. The raw error text when unknown."},{"field":"transactions[].memo","type":"string | null","is":"Memo text attached to the transaction, if any.","howWorkedOut":"getSignaturesForAddress."},{"field":"next_before","type":"string | null","is":"Pass as before to read the next, older page. For amounts and the other side of each transaction, use trace.","howWorkedOut":"The oldest transaction returned; null when there are no more."}],"notes":[],"inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"wallet":{"type":"string","description":"The wallet to read the transactions of. The user's address (from their wallet app) or your agent's public key. Not a .sol name or ticker."},"how_many":{"default":10,"description":"How many transactions to return. Default 10.","type":"integer","minimum":1,"maximum":50},"before":{"description":"Start below this transaction, to page further back. next_before from the previous answer.","type":"string","minLength":64,"maxLength":100},"network":{"default":"mainnet-beta","description":"Default \"mainnet-beta\" (real money). \"devnet\" only for test wallets.","type":"string","enum":["mainnet-beta","devnet"]}},"required":["wallet"]}}