# Wallet API sequence
```plantuml
@startuml
autonumber
actor "User" as user
participant "Web\ndApp" as app
participant "Paymaster\nService" as pm
participant "Wallet" as wallet
user->app: click
note over app: sequence of\n(target,data)
group opt: paymaster
app->pm++: pm_getStubPaymasterData
return paymaster,\nSTUB paymasterData
end
app->wallet++: wallet_fillTransaction
note over wallet: fills STUB signature,\ngas prices
note over wallet: OPTIONAL: wallet-specified\npaymaster (if no app-specific pm)
wallet->bundler++: estimateUserOperation
return userop filled\nwith gas limits
return transaction with gas limits
group opt: paymaster
app->pm++: pm_getPaymasterData
return updated paymasterData
end
app->wallet++: wallet_sendTransaction
note over wallet: Prompt user to sign
wallet->bundler: sendUserOperation
note over wallet: monitor and update gas prices\n if needed
```