# ERC-20 & PERC-20

### PERC-20 Tokens

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

* &#x20;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](/swisstronik-docs/development/guides/deployment-and-interaction-perc-20/sample-perc20-contract.md)

### EVM Tokens[​](https://docs.evmos.org/protocol/concepts/tokens#evm-tokens) <a href="#evm-tokens" id="evm-tokens"></a>

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

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)

{% hint style="info" %}
**Only OpenZeppelin versions up to 4.9.6 are supported. OpenZeppelin version 5 and above are not supported**&#x20;
{% endhint %}


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.swisstronik.com/swisstronik-docs/development/guides/deployment-and-interaction-perc-20/erc-20-and-perc-20.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
