Sending or receiving a transaction on the ethereum network from your Casa app broadcasts a transaction to the blockchain, which is recorded and viewable using third-party tools like Etherscan. If you are used to simple transactions from one externally owned address (EOA) to another, or viewing transactions on other blockchains like bitcoin, these transactions might look different than you expect.
Sending from ETH Pay
ETH Pay is a single-key EOA, so these transactions will look similar to transactions from basic addresses on other blockchains.
A transaction from a Casa ETH Pay wallet, visible on Etherscan.
- From: The single-key address from the Pay wallet that sent the transaction.
- To: The receiving address entered in the app when the transaction was sent.
- Value: The amount of ether entered in the app when the transaction was sent.
- Transaction Fee: The amount of ether the Pay wallet paid to send the transaction.
- Gas Price: The price of gas at the time the transaction was sent.
Deploying a vault contract
Creating contract addresses on the ETH network is a type of "transaction," and is recorded on the blockchain as well. Creating a vault in your Casa app deploys the vault contract and creates your vault's receiving address.
This transaction is not visible in your Casa app, but if you go to your vault's contract address in Etherscan, you can view it by clicking "More Info" and then clicking the link after "at txn."
An example contract deployment transaction on Etherscan: https://etherscan.io/address/0xdda3c1944149ca4a81a5d4f29192ba45ba84b435
The fee to create the vault is paid by either by Casa or by your Pay wallet, depending on which type of relay you have selected.
Sending from a vault
When you send from a vault, your vault has to run the contract code to make sure it has the necessary signatures for the transaction. This can cause the transaction to look a bit confusing at first, but you can verify everything is as expected once you know where to look!
- From: This address belongs to the relay wallet (either Casa or your Pay wallet). The relay address is what "calls" the contract and causes it to run. This is not your vault's address. Your vault's address will appear on a later "From" section.
- To: This is your vault's contract address, not the recipient's address. Think of it like the "From:" relay address above is calling out "To:" your vault's address, where the code is, to start the code running.
- First transfer: This is where to verify the amount and address of your transaction. It shows "Transfer [amount of ETH] from [your address] to [the recipient's address]." If you ever need to verify the amount that was sent in the transaction or the address that received it, this is where to do it!
- Second transfer: This is a refund your vault pays back to your relay for the fee the relay incurred when it called the contract and created the "transaction" that made the code run. It is the fee you pay for the transaction. It shows "Transfer [ETH fee] from [your address] to [relay address from #1]."
- Value: This will normally be 0 ETH, because the relay address is not actually sending any ETH to your address. It is paying the fee to cause the contract at your address to run, but it is not actually sending any ETH to your address.
- Transaction Fee: This is the fee the relay paid to cause the contract code to run so your vault could send a transaction. This is what is being reimbursed from #4 above.
- Gas Price: This is the gas price, in GWEI, that was used to calculate the transaction fee.
When you perform a key rotation for your ETH vault in your Casa app, the contract code in your vault runs two operations, one to remove the key (or "owner," in the contract terms) that you are replacing, and one to add the new key.
The ETH network considers updates to contracts "transactions," and they incur a fee just like sending a transaction with multiple signatures from a vault's contract address does.
As you can see, this looks very similar to to the screenshot for sending from a vault! The main difference is that there is only one transfer of funds in the "To:" section (see #3), because your vault is only reimbursing the relay address (in the "From:" field) for the transaction fee. There is no separate transaction that sends ETH to a recipient.
If you click the "Logs" tab at the top of this image, you can view the internal logs generated when the transaction was updated.
- RemovedOwner: This is the key that was removed from the vault.
- AddedOwner: This is the new key added to the vault.
- ExecutionSuccess: This confirms the update succeeded. The "payment" line refers to the reimbursement being sent back to the relay for the update. It should match #3 in the previous image.
Using Etherscan, you can confirm that everything your Casa app tells you it is doing is really what is happening!