This repository contains all the contracts of Parallel Tokens with associated contract.
- TokenP contract is the ERC20 stablecoin.
- BridgeableTokenP is an OFT (layerZero standard) contract that unlock the power of TokenP to be bridgeable between specific chains.
- FlashParallelToken is the flashloan contract on top of TokenP's contracts.
USDp is live on the 24 chains listed below.
| Contract | Explore |
|---|---|
| USDp | 0x9B3a8f7CEC208e247d97dEE13313690977e24459 |
| FlashParallelToken | 0xC9B6279baa19dBB8bCc3250c89cAa093AaBA0bfc |
| BridgeableUSDp | 0x78BB4882b77D74aD9B04Ab71fE8e61f72595823C |
| Contract | Explore |
|---|---|
| USDp | 0x1250304F66404cd153fA39388DDCDAec7E0f1707 |
| FlashParallelToken | 0xC15Fd01A21E8f6625f709b16f6b3562d2848Da5f |
| BridgeableUSDp | 0x9aFDB5A5eC2BBDDdAa4573BAA25CAA4e4e4a2CA9 |
| Contract | Explore |
|---|---|
| USDp | 0x76A9A0062ec6712b99B4f63bD2b4270185759dd5 |
| FlashParallelToken | 0x08417cdb7F52a5021bB4eb6E0deAf3f295c3f182 |
| BridgeableUSDp | 0x4Dde0e308CFB60515218C6ad2DF1134Fc48531FC |
| Contract | Explore |
|---|---|
| USDp | 0x90337e484B1Cb02132fc150d3Afa262147348545 |
| FlashParallelToken | 0x3EBE332d2AA8cCB5dDc051c9925D9A41708e54D9 |
| BridgeableUSDp | 0x76A9A0062ec6712b99B4f63bD2b4270185759dd5 |
| Contract | Explore |
|---|---|
| USDp | 0x76A9A0062ec6712b99B4f63bD2b4270185759dd5 |
| FlashParallelToken | 0x08417cdb7F52a5021bB4eb6E0deAf3f295c3f182 |
| BridgeableUSDp | 0x4Dde0e308CFB60515218C6ad2DF1134Fc48531FC |
| Contract | Explore |
|---|---|
| USDp | 0x08417cdb7F52a5021bB4eb6E0deAf3f295c3f182 |
| FlashParallelToken | 0x2cb56dF31b909854B01D4B1EAd5676cf90e885E7 |
| BridgeableUSDp | 0xDa818995DdEee3AC36BF492133E1FeAE1FA377E6 |
| Contract | Explore |
|---|---|
| USDp | 0x048C4e07D170eEdEE8772cA76AEE1C4e2D133d5c |
| FlashParallelToken | 0xc0e62F863bbD9dab9d2F79e4EcC248e60c4fE3FA |
| BridgeableUSDp | 0x7b54f3D993d3bcA077946034Ea710F9c07420C72 |
| Contract | Explore |
|---|---|
| USDp | 0x9eE1963f05553eF838604Dd39403be21ceF26AA4 |
| FlashParallelToken | 0x9e0DCF7a33bBde6689560C5c807dd2a3dF991277 |
| BridgeableUSDp | 0x9fFaCB3dB5cB74BdD4C68af3b7CF203130c699ec |
| Contract | Explore |
|---|---|
| USDp | 0x048C4e07D170eEdEE8772cA76AEE1C4e2D133d5c |
| FlashParallelToken | 0xc0e62F863bbD9dab9d2F79e4EcC248e60c4fE3FA |
| BridgeableUSDp | 0x7b54f3D993d3bcA077946034Ea710F9c07420C72 |
| Contract | Explore |
|---|---|
| USDp | 0x9eE1963f05553eF838604Dd39403be21ceF26AA4 |
| FlashParallelToken | 0x9e0DCF7a33bBde6689560C5c807dd2a3dF991277 |
| BridgeableUSDp | 0x9fFaCB3dB5cB74BdD4C68af3b7CF203130c699ec |
| Contract | Explore |
|---|---|
| USDp | 0x9eE1963f05553eF838604Dd39403be21ceF26AA4 |
| FlashParallelToken | 0x9e0DCF7a33bBde6689560C5c807dd2a3dF991277 |
| BridgeableUSDp | 0x9fFaCB3dB5cB74BdD4C68af3b7CF203130c699ec |
| Contract | Explore |
|---|---|
| USDp | 0x9eE1963f05553eF838604Dd39403be21ceF26AA4 |
| FlashParallelToken | 0x9e0DCF7a33bBde6689560C5c807dd2a3dF991277 |
| BridgeableUSDp | 0x9fFaCB3dB5cB74BdD4C68af3b7CF203130c699ec |
| Contract | Explore |
|---|---|
| USDp | 0x9eE1963f05553eF838604Dd39403be21ceF26AA4 |
| FlashParallelToken | 0x9e0DCF7a33bBde6689560C5c807dd2a3dF991277 |
| BridgeableUSDp | 0x9fFaCB3dB5cB74BdD4C68af3b7CF203130c699ec |
| Contract | Explore |
|---|---|
| USDp | 0x9eE1963f05553eF838604Dd39403be21ceF26AA4 |
| FlashParallelToken | 0x9e0DCF7a33bBde6689560C5c807dd2a3dF991277 |
| BridgeableUSDp | 0x9fFaCB3dB5cB74BdD4C68af3b7CF203130c699ec |
| Contract | Explore |
|---|---|
| USDp | 0xBE65F0F410A72BeC163dC65d46c83699e957D588 |
| FlashParallelToken | 0x15452454A9735D68df430879B2941316a09295B1 |
| BridgeableUSDp | 0xC3BEF21Ea7dEB5C34CF33E918c8e28972C8048eD |
| Contract | Explore |
|---|---|
| USDp | 0x4DeF531c3060686948f00EcC7504f2E0b71EDa14 |
| FlashParallelToken | 0x76A9A0062ec6712b99B4f63bD2b4270185759dd5 |
| BridgeableUSDp | 0xB3DbecE41acDD6aD76d037b8Da2e53C58826746c |
| Contract | Explore |
|---|---|
| USDp | 0xC2f8B5d893217462aE9c9879c9285A5a3AAbcb8F |
| FlashParallelToken | 0x46B053Ce47F16390574Bb8f54cAccd04C1E3Faf2 |
| BridgeableUSDp | 0x9E79eC4BC3574f2865636aECFF44B60A723A9eE7 |
| Contract | Explore |
|---|---|
| USDp | 0x8fCf9118fdD359f6277cDd143c2Da206e64140F3 |
| FlashParallelToken | 0x46B053Ce47F16390574Bb8f54cAccd04C1E3Faf2 |
| BridgeableUSDp | 0x9E79eC4BC3574f2865636aECFF44B60A723A9eE7 |
| Contract | Explore |
|---|---|
| USDp | 0x8fCf9118fdD359f6277cDd143c2Da206e64140F3 |
| FlashParallelToken | 0x46B053Ce47F16390574Bb8f54cAccd04C1E3Faf2 |
| BridgeableUSDp | 0x9E79eC4BC3574f2865636aECFF44B60A723A9eE7 |
| Contract | Explore |
|---|---|
| USDp | 0x8fCf9118fdD359f6277cDd143c2Da206e64140F3 |
| FlashParallelToken | 0x46B053Ce47F16390574Bb8f54cAccd04C1E3Faf2 |
| BridgeableUSDp | 0x9E79eC4BC3574f2865636aECFF44B60A723A9eE7 |
| Contract | Explore |
|---|---|
| USDp | 0x8fCf9118fdD359f6277cDd143c2Da206e64140F3 |
| FlashParallelToken | 0x46B053Ce47F16390574Bb8f54cAccd04C1E3Faf2 |
| BridgeableUSDp | 0x9E79eC4BC3574f2865636aECFF44B60A723A9eE7 |
| Contract | Explore |
|---|---|
| USDp | 0x8fCf9118fdD359f6277cDd143c2Da206e64140F3 |
| FlashParallelToken | 0x46B053Ce47F16390574Bb8f54cAccd04C1E3Faf2 |
| BridgeableUSDp | 0x9E79eC4BC3574f2865636aECFF44B60A723A9eE7 |
| Contract | Explore |
|---|---|
| USDp | 0x8fCf9118fdD359f6277cDd143c2Da206e64140F3 |
| FlashParallelToken | 0x46B053Ce47F16390574Bb8f54cAccd04C1E3Faf2 |
| BridgeableUSDp | 0x9E79eC4BC3574f2865636aECFF44B60A723A9eE7 |
| Contract | Explore |
|---|---|
| USDp | 0x8fCf9118fdD359f6277cDd143c2Da206e64140F3 |
| FlashParallelToken | 0x46B053Ce47F16390574Bb8f54cAccd04C1E3Faf2 |
| BridgeableUSDp | 0x9E79eC4BC3574f2865636aECFF44B60A723A9eE7 |
| Contract | Explore |
|---|---|
| USDp | 0xe8a3DA6f5ed1cf04c58ac7f6A7383641e877517b |
| FlashParallelToken | 0x8B899796b4a442e7723E02f8b5B65a39F27EDAf1 |
| BridgeableUSDp | 0xFeFc8635edf0fAAD83312A713Cb67722D049C9Bc |
| Contract | Explore |
|---|---|
| USDp | 0xA7eb076F57960E265B91514c03d1d1281055a75c |
| BridgeableUSDp | 0xA8FE9843B4Cc2aAB136209B49E2c3E2A7ebD5CFA |
- Every restricted access is managed by an AccessManager contract following the OpenZeppelin standard
- The owner of BridgeableTokenP will be the AccessManager contract or a multisig.
- When updating the FlashloanFeeRecipient current fees are not sent to the current recipient before update (to prevent that this function could be restricted with a timelock role on the AccessManager).
- In BridgeableTokenP, LZ messages can be received (causing tokens to be credited) even when the contract is paused. DAO must unlink peers with others chains when pausing a BridgeableTokenP.
- Fee rate changes can lead to unexpected number of received tokens if fees are updated during an ongoing bridge.
- When feesRate=0 in the BridgeableToken, bridge can be done repeatedly to DOS swaps from LZ->Principal token. However, user will still pay fees to LZ.
Audited by Bailsec in March/April 2025:
Formal Verification by Certora in March/April 2025:
Install foundry follow the instructions.
bun installIn order to interact with non local networks, you must create an .env that has:
PRIVATE_KEY="PRIVATE_KEY"
ALCHEMY_API_KEY="ALCHEMY_API_KEY"
MAINNET_ETHERSCAN_API_KEY="MAINNET_ETHERSCAN_API_KEY"For additional keys, you can check the .env.example file.
Warning: always keep your confidential information safe
bun run compilebun run testbun run slitherYou will find other useful commands in the package.json file.
If you're interested in contributing, please see our contributions guidelines.
For any question or feedback you can use discord. Don't hesitate to reach out on Twitter as well.
The primary license for this repository is the MIT license. See LICENSE.
Minus the following exceptions:
- tests files are under UNLICENSED license
- mocks contracts are under UNLICENSED license
Each of these files states their license type.