# Private Asset Smart Contract Call in p0xeidon Let's use calling an exchange transaction on UniSwap as an example: ## Calling Smart Contract on Normal EVM ![](https://i.imgur.com/BKp9Evh.png) When calling smart contract, Alice has secret stored at metamask. She uses metamask to sign the transaction and send it to an EVM chain. ## Calling Private Asset Smart Contract ![](https://i.imgur.com/V2XsdsA.png) Alice has two kinds of addresses, a public one, which has EVM address format, and a private one, which is shieled address. Alice's public address secret kept in metamask, and Alice's shielded address secret kept in Manta Signer. When calling Private Asset Smart Contract, Alice uses metamask to sign the public part and uses Manta Signer to sign the private part. In reality, metamask will call Manta Signer and Manta signer will prompt out a window to let Alice to sign (No need the user to remember the sequence). ## Privacy Guarantee In the above figure, everything in black in public, more specifically: 1. Alice's public address 2. The transaction itself, exchange 1 pETH for 3000 pUSDC, Everything in orange is private: 1. Alice's shielded address involved in this transaction 2. Alice's balances in this shielded addresses In addition, there is no linkage between a public address and a shielded address at all. Any public address can pay transaction fees for any private addresses. We have a fee relayer design to further reduce the privacy leakage from gas fee. ## Unified Wallet It is totally possible to integrate Metamask and Manta Signer into a single wallet. We are talking to a few wallet provider about integrating the private asset management into their wallet. The private asset management part is written in pure rust and can be compiled to WASM. This makes integration to browser extension based wallet not difficult.