{"id":"EIP-5792","name":"Wallet Call API","status":"Final","chain":"both","category":{"id":"transaction-friction","name":"Transaction Friction","description":"Reducing clicks, signatures, and mental overhead"},"journeyStages":[{"id":"executing","name":"Executing Transactions","description":"Performing on-chain actions"}],"uxImpact":"EIP-5792 lets apps request wallet-mediated call batches and inspect capabilities/status. Atomicity is requested with atomicRequired and depends on the wallet's atomic capability per chain; render sequential/partial results and paymaster policy separately.","officialUrl":"https://eips.ethereum.org/EIPS/eip-5792","lastReviewed":"2026-09-18","lastUpdated":"2026-09-18","hasDetailedContent":true,"content":{"id":"EIP-5792","summary":"EIP-5792 defines wallet_sendCalls, wallet_getCallsStatus, and wallet_getCapabilities for wallet-mediated call batches. Atomicity is capability- and request-dependent: use atomicRequired: true only when the wallet advertises the atomic capability for the target chain, and show the status result.","applicability":{"whenToUse":["Your product addresses: dApps can't know what wallet supports.","Your product addresses: no standard for batched calls.","Your UI should wallet_getCapabilities() returns supported features.","You are designing a capability detection experience with visible states and recovery paths."],"whenToAvoid":["The wallet does not advertise the required capability for the target chain.","The flow cannot explain or recover from sequential or partially completed calls.","The app needs an all-or-nothing guarantee that the wallet has not returned."]},"designerTakeaways":["Query wallet_getCapabilities per target chain before showing batching, atomicity, or paymaster controls.","Use atomicRequired: true only when the wallet advertises the atomic capability.","Show the returned atomic result and provide a sequential or partial-execution recovery path."],"problemsSolved":[{"problem":"dApps can't know what wallet supports","oldWay":"Try features, catch errors, guess based on wallet name","newWay":"wallet_getCapabilities() returns supported features","impact":"high"},{"problem":"No standard for batched calls","oldWay":"Each smart wallet has different batch interface","newWay":"wallet_sendCalls gives supporting wallets a shared call-batch request shape; atomic execution remains capability-dependent","impact":"high"},{"problem":"Can't check call status after submission","oldWay":"Poll blockchain, hope for the best","newWay":"wallet_getCallsStatus() for bundled operation status","impact":"medium"}],"uxPatterns":[{"name":"Capability Detection","description":"Check wallet features before offering them","mockup":"concept/session-permissions","userFlow":["dApp connects to wallet","Calls wallet_getCapabilities","Parses supported features","Shows/hides UI based on capabilities","Only offers what wallet supports"]},{"name":"Batched Transaction","description":"Multiple operations in one request","mockup":"concept/bundled-defi","userFlow":["dApp builds array of calls","Uses wallet_sendCalls","Wallet shows combined preview","User approves once","Show the wallet's returned atomic result and update each call state"]}],"uiComponents":[{"name":"CapabilityChecker","description":"Queries and displays wallet capabilities","states":["checking","ready","no-support"],"props":["walletProvider","onCapabilities"]},{"name":"BatchCallBuilder","description":"UI for building batched operations","states":["building","ready","submitting"],"props":["calls[]","onSubmit"]},{"name":"CallStatusTracker","description":"Shows status of batched call","states":["pending","confirmed","failed"],"props":["callId","onStatusChange"]}],"antiPatterns":[{"pattern":"Assuming all wallets support batching","why":"EOAs without 7702 can't batch","instead":"Check capabilities, fall back gracefully","severity":"critical"},{"pattern":"Promising all-or-nothing without checking capability","why":"wallet_sendCalls permits sequential execution when atomicity is not required or unavailable.","instead":"Set atomicRequired: true only when the atomic capability is advertised; otherwise explain sequential or partial results.","severity":"critical"},{"pattern":"Ignoring capability responses","why":"Offering features wallet doesn't support","instead":"Hide unsupported features from UI","severity":"high"}],"keyTakeaways":["EIP-5792 standardizes wallet call submission, status, and capability discovery.","Query wallet_getCapabilities for the target chain before offering a feature.","The capability name is atomic; atomicity is requested with atomicRequired and reported in status.","Render a sequential or partial-execution path when atomic support is absent.","Paymaster service and other capabilities are wallet/service policies, not universal guarantees."],"technicalNotes":"EIP-5792 adds wallet_getCapabilities, wallet_sendCalls, and wallet_getCallsStatus. Calls can request atomicRequired; true requires the wallet to support atomic execution for that chain, while false permits sequential execution. The atomic capability is named atomic and can report supported, ready, or unsupported state. Paymaster service is a separate capability.","lastUpdated":"2026-09-18","sources":[{"label":"EIP-5792 official specification","url":"https://eips.ethereum.org/EIPS/eip-5792","type":"official-spec"}],"lastReviewed":"2026-09-18"},"sources":[{"label":"Official specification","url":"https://eips.ethereum.org/EIPS/eip-5792","type":"official-spec"},{"label":"Discussion","url":"https://ethereum-magicians.org/search?q=EIP-5792","type":"discussion"},{"label":"EIP-5792 official specification","url":"https://eips.ethereum.org/EIPS/eip-5792","type":"official-spec"}],"urls":{"canonical":"https://www.eipsfordesigners.com/standards/EIP-5792","markdown":"https://www.eipsfordesigners.com/standards/EIP-5792/content.md","agent":"https://www.eipsfordesigners.com/standards/EIP-5792/agent.md","api":"https://www.eipsfordesigners.com/api/standards/EIP-5792","official":"https://eips.ethereum.org/EIPS/eip-5792","discussion":"https://ethereum-magicians.org/search?q=EIP-5792"},"freshness":{"lastReviewed":"2026-09-18","lastUpdated":"2026-09-18"}}