Pact
Search…
FAQ's
Welcome to the Home of Liquidity! Find answers to some of the most commonly asked questions from our community.

1. Why and how is Pact different to other protocols?

Users have fewer transaction costs, and a faster path to market. Pact aims to be the premier AMM (Automatic Market Maker) on Algorand, focusing on cheap and fast transactions, that have instant finality, are secure and eco-friendly.

2. What tokens is Pact compatible with?

  1. 1.
    Algorand Standard Assets (ASAs).
  2. 2.
    The native Algo token. Note that at this time, the 'wrapping' of assets is possible via other providers like Algomint - goBTC and goETH are great examples of wrapped assets which can be swapped and pooled in their ASA format.

3. Are there any fees involved?

Trading fees in the constant product pools can be either 0.01%, 0.05%, 0.3% or 1% of the value traded. Trading fees in the stableswap invariant pools are 0.04%. A portion of the trading fees can be accrued to the Pact treasury account - please check the detailed information available when adding liquidity to pools. In addition to this, all transactions require a small amount of Algo to power their processing on the blockchain.

4. Can tokens be wrapped on Pact?

Not at this stage.

5. Has Pact been audited or tested? Why is auditing important?

Pact smart-contracts have received audit certification with Runtime Verification, who are one of the leading auditors in the business (also having been engaged by the Algorand Foundation themselves).
Everything is done to ensure security and while audits are never infallible, this process gives more reassurance that our code is reliable, high-quality, and not malicious.

6. How has Pact been built on the backend?

Pact was built from scratch, using a constant product (x*y = k) automated market maker (AMM) architecture, strongly inspired by the Uniswap V2 model.

7. Why did my transaction fail? And what can I do when this happens?

There could be a number of reasons. Rectifying failed transactions relies upon re-submitting, exclusively. There is no ‘amending’ on blockchains. If something fails, the action must be re-tried.

8. What tokens are listed on Pact?

Anyone can create any pool made up of any token pairing. There is a visual indicator on all screens to show whether an asset has been verified or not. Pact has no influence over token listings.

9. How does an asset become classified as "verified"?

Verified assets are shown here: https://algoexplorer.io/assets. Pact will use this same database.

10. Are there any rules regarding the liquidity withdrawal?

No, there are no set rules. You are free to withdraw your liquidity tokens whenever you want. This propagates the freedom of transaction and ease of use that Pact advocates.

11. How can I report an issue or get more information?

Please direct questions, bug reports and general feedback to the feedback-ideas, questions and report-bugs channel in our official Discord: https://discord.gg/FngkBEastu​
We also welcome you to join the Pact Community channel on Telegram: https://t.me/pactfi​

12. How does Pact come up with the exchange rate ?

We use the formula below to calculate the exchange rate:
(where "a" is the amount of token X sent by swapper and "A" is the total amount of tokens X in the pool before the swap)
rcv = a * B / (A + a)
rcv_net = rcv * (1 - fee)
Then the “exchange rate” is lim a -> 0 (rcv / a) so just B/A
(In terms of how much a user shall receive "b" given "a" supplied)
b = a * B / (A + a) * (1 - fee)

13. How are the asset prices calculated?

Internally, a fixed pricing algorithm is used to calculate the spot $USD price of assets swapped via the Pact AMM pools. To achieve this the algorithm tracks every SWAP pool call, distinguishing between swaps with:
1) USDT or USDC, and
2) all other assets
*****
For swaps with either USDT or USDC (let’s call them STABLE), it assumes the stable coin has price of $1 and uses the following formula -
priceasset=priceSTABLEtotalSTABLE10decimalsassettotalSTABLE10decimalsSTABLEprice_{asset} = \frac{price_{STABLE} * total_{STABLE} * 10 ^{decimals_{asset}}}{total_{STABLE} *10 ^{decimals_{STABLE}} }
priceSTABLEprice_{STABLE}
is the price of STABLE (1$)
totalSTABLEtotal_{STABLE}
is a total number of STABLE in pool after SWAP
totalassettotal_{asset}
is a total number of asset in pool after SWAP
decimalsassetdecimals_{asset}
asset’s decimals
decimalsSTABLEdecimals_{STABLE}
STABLE’s decimals
*****
For swaps between other assets, the price will only be calculated if there has been a prior SWAP app call to the STABLE/A or STABLE/B pool, because in this case A/B already have an implicit price calculated. From here, the formula is similar:
priceA=priceBtotalB10decimalsAtotalA10decimalsBprice_A=\frac{price_B*total_B * 10^{decimals_A}}{total_A * 10^{decimals_B}}
priceBprice_B
is the price of B calculated from SWAP app call in STABLE/B pool
totalAtotal_A
is a total number of A in pool after SWAP
totalBtotal_B
is a total number of B in pool after SWAP
decimalsAdecimals_A
is A’s decimals
decimalsBdecimals_B
is B’s decimals
Note: If there are no STABLE/A or STABLE/B pools, then the price won't be calculated and the value will be set to "-"
Copy link
On this page
1. Why and how is Pact different to other protocols?
2. What tokens is Pact compatible with?
3. Are there any fees involved?
4. Can tokens be wrapped on Pact?
5. Has Pact been audited or tested? Why is auditing important?
6. How has Pact been built on the backend?
7. Why did my transaction fail? And what can I do when this happens?
8. What tokens are listed on Pact?
9. How does an asset become classified as "verified"?
10. Are there any rules regarding the liquidity withdrawal?
11. How can I report an issue or get more information?
12. How does Pact come up with the exchange rate ?
13. How are the asset prices calculated?