0x0.ai: Whitepaper v2
  • 0x0.ai: AI Smart Contract Auditor
    • 👀Overview
    • 📈Tokenomics
    • 📝Thesis
    • 🔮Vision
  • 0x0 Ecosystem
    • 🔎AI Smart Contract Auditor
    • Arcane Privacy Wallet
      • Moving assets Anonymously
      • Calculating the Shared Secret
      • Creating the View Tag
      • Deriving the Stealth Public Key
      • Identifying Relevant Transactions for Wallets
      • Accessing Privately Transferred Assets
      • Arcane Contract
      • Shielding Assets
      • Single Transfers
      • Multiple Transfers
      • Withdrawal or Unshielding
      • Relayers
    • 👻Spectre (Coming Soon)
  • 0x0 Income Sources
    • 🔥Buybacks and Burns
    • 💰ETH Rewards
  • Upcoming Plans
    • 📆Roadmap
    • 🆕Dapp Updates
    • 👂Community Feedback
Powered by GitBook
On this page
  1. 0x0 Ecosystem
  2. Arcane Privacy Wallet

Shielding Assets

PreviousArcane ContractNextSingle Transfers

Last updated 5 months ago

This is the only transaction that would be publicly linked to your address. As it consistis of you moving an asset like ETH or ERC20 from your public address into the Arcane Contract. During this transaction the asset is moved to a stealth address that your wallet controls.

There are two function that would enable this. For shielding ETH:

/**
 * @notice Shield a token by transferring it to a stealth address
 * @dev The ETH sent to this function would be made only accessible to the receiver/stealthAddress
 *
 * Emits an {Announcement} event indicating the transfer
 *
 * @param _receiver The stealth address to transfer the token to
 * @param _announcementData The transfer announcement data
 */
function shieldETH(
    address _receiver,
    AnnouncementData calldata _announcementData
) external payable;

For shielding ERC20:

/**
 * @notice Shield a token by transferring it to a stealth address
 * @dev The tokens sent to this function would be made only accessible to the receiver/stealthAddress
 *
 * Emits an {Announcement} event indicating the transfer
 *
 * @param _token The token to transfer
 * @param _receiver The stealth address to transfer the token to
 * @param _announcementData The transfer announcement data
 */
function shieldToken(
    address _token,
    address _receiver,
    uint256 _amount,
    AnnouncementData calldata _announcementData
) external;