# Overview

The Frictionless smart contracts are an [audited](https://docs.frictionless.markets/developer/smart-contracts/audit-and-security) suite of [smart contracts](https://gitlab.com/dfyclabs/protocol/dfyclabs-tokens/-/tree/main) available under the permissive [MIT license](https://gitlab.com/dfyclabs/protocol/dfyclabs-tokens/-/blob/main/LICENSE) which enable compliant digital securities transfer, payment and settlement on EVM-compatible blockchains, such as Avalance C-Chain, Ethereum or Polygon.

{% hint style="info" %}
The Frictionless smart contracts extend the T-REX specification [ERC-3643](https://www.erc3643.org) with specific features to operate private placements under MiFID II regulation.
{% endhint %}

### Features

* [x] Issuance of permissioned, secure, transferrable, digital securities and programmable cash waterfalls for a variety of OnChainAssets such as private credit & infrastructure funds, ETF's Treasuries, AMCs, Tracker Certificates, etc
* [x] Issuance of permissioned, secure, transferrable, deposit tokens in multiple FIAT currencies.
* [x] Payment and settlement of digital securities using deposit tokens
* [x] Conversion of ERC20 payment tokens to deposit tokens, enabling the risk-off of stablecoins for funds and Managers and the conversion of FX for USD-denominated stablecoins to specific FIAT deposit tokens.
* [x] Ability to automatically collect fee structures for payment, settlement and conversion of digital securities, deposit tokens and ERC20 stablecoins.
* [x] Frictionless FX Swap based on FX spot and forward rates between denominated FricitonlessFundDepositTokens.

### Smart Contract Architecture&#x20;

The Frictionless protocol is essentially a decentralised system of privacy-protecting proofs and permissioned tokens that can only be transferred under tight controls in accordance with the regulatory rules of the underlying funds and securities which are tokenized.

The Frictionless protocol extends the [ERC-3643](https://www.erc3643.org) specification with specific features to operate private placements under MiFID II regulation. The are six main pillars of the Frictionless protocol as illustrated in the diagram below.

<figure><img src="https://257329724-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fn1p8Xj3fTDixdW6ELAVY%2Fuploads%2FViRYZOXFkDWsE2wTbE5a%2Ffrictionless-protocol-img-src-Frictionless-Contracts-Architecture.drawio.png?alt=media&#x26;token=32af5e0d-ffa4-4c80-945f-b929e1520507" alt=""><figcaption><p>Frictionless protocol main smart contract pillars</p></figcaption></figure>

1. Identity Management - based on OnChainId all participants in the Frictionless protocol are permissioned with specific roles,  defining the actions and token classes they can interact with.
2. Compliance - based on the ERC-3643 specification, upgradable modules for compliance enable the compliant transfer of token classes in the protocol.
3. Frictionless Tokens - based on the ERC-3643 specification, these are the tokens circulated in the protocol to represent securities, assets, cash contributions, cash distributions and settlements.
4. Treasury Management - provides the smart contract functions to mint, transfer and burn token classes in the protocol.
5. Proof-of-Reserve - provides independent attestations over the currencies underpinning FrictionlessFundDepositTokens.
6. Transfer Agency - provides the controlled transfer of tokens between participants under strict compliance. This also includes the facility to swap tokens, such as stablecoins with FrictionlessFundDepositTokens or FX swaps of FrictionlessFundDepositTokens of various denominations.

The [Smart Contract Docs](https://docs.frictionless.markets/developer/smart-contracts/smart-contract-docs) cover these topics in depth with visual explanations of how each contract functions along with its NATSPEC documentation.


---

# 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.frictionless.markets/developer/smart-contracts/overview.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.
