Swisstronik Docs
  • 🇨🇭About Swisstronik
    • What is Swisstronik?
    • Swisstronik vs Ethereum
    • Useful links
  • 🌐General
    • Intel SGX
    • Governance
      • On-Chain Proposal
      • Formatting a Proposal
      • Submitting a Proposal
      • Governable Parameters
    • Community Pool
    • Accounts
    • Transactions
    • Gas and Fees
    • Coin & Tokens
  • ⚒️Development
    • Endpoints
    • Connect wallets
      • MetaMask (EVM) - Manual
      • Keplr (Cosmos)
      • Testnet Metamask (EVM) - Chainlist
      • Testnet MetaMask (EVM) - Manual
      • Testnet Keplr (Cosmos)
    • Get test coins
    • SwisstronikJS SDK
      • SwisstronikJS Functions
      • Swisstronik & Ethereum transactions
      • Transaction - code sample
      • Swisstronik & Ethereum calls
      • Call - code sample
    • Swisstronik CLI
      • Installation
      • Configuration
      • Key management
      • Queries
      • Sending SWTR
      • For SDI Issuers
    • Guides
      • Contract deployment - Hardhat
        • 1. Setting up the Hardhat environment
        • 2. Configure hardhat.config.js
        • 3. Write and compile the smart contract
        • 4. Deploy the smart contract
        • 5. Interact with the contract - Transaction
        • 6. Interact with the contract - Call
      • Contract deployment - Remix IDE
      • Deployment & Interaction PERC-20
        • ERC-20 & PERC-20
        • Sample PERC20 contract
        • Deployment & Interaction with contract
        • How to use encryption
      • Contract verification
      • SDI for dapp developers
    • Local testnet
    • Web3JS, Ethers, Viem and other third-party libraries
  • 🖥️Node setup
    • Setup SGX
      • Supported Hardware
      • Setup Intel SGX
    • Setup node
      • Mainnet
        • v1.0.1 Upgrade
      • Testnet
        • Install from .deb package
        • Configure node
        • Upgrade your testnet node
          • Swisstronik v3 Testnet
          • Swisstronik v4 Testnet
          • Swisstronik v5 Testnet
          • Swisstronik v5.1 Testnet
          • Swisstronik v6 Testnet
          • Swisstronik v7 Testnet
          • Swisstronik v8 Testnet
        • Seed Node
        • Live Peers
        • Genesis Mirror Download
    • CLI Cheatsheet
  • 🤝Delegators
    • What is a delegator?
    • Delegator Guide (CLI)
    • Delegators Security
Powered by GitBook
On this page
  • PERC-20 Tokens
  • EVM Tokens​
  1. Development
  2. Guides
  3. Deployment & Interaction PERC-20

ERC-20 & PERC-20

PreviousDeployment & Interaction PERC-20NextSample PERC20 contract

Last updated 8 months ago

PERC-20 Tokens

We introduce a new type of token – PERC20 (private ERC-20). It has two main differences from regular ERC-20 standards:

  • default balanceOf and allowance functions are disabled in favor of your own implementation function. You should implement some access control logic or use msg.sender to check who sent that call. If eth_call was sent from EOA and was signed, it will recover msg.sender from provided signature, otherwise, it msg.sender will be empty address

  • Transfer and Approval events are disabled, since they can leak sensitive information

You can find example of PERC-20 contract in the interaction guide: Sample PERC20 contract

EVM Tokens

Swisstronik is compatible with ERC-20 tokens and other non-fungible token standards (ERC-721, ERC-1155) that are natively supported by the EVM.

The main problem with the usage of the ERC-20 and other non-modified ERC token standards is that it will disable a lot of functionality such as private transfers and data protection (balance is visible to anyone)

Only OpenZeppelin versions up to 4.9.6 are supported. OpenZeppelin version 5 and above are not supported

⚒️
​