Tinyman is in ongoing development and the following FAQs will continue to be updated as the Tinyman protocol continues to be defined.
Tinyman enables users to trade/swap Assets (Tokens/Currencies) at market rates.
There are two classes of users of Tinyman: Swappers who trade assets and Poolers who provide asset liquidity for the trading Pools.
Poolers are individuals/organisations who hold reasonably large amounts of assets.
Swappers are individuals/organizations who wish to exchange tokens. They may be interested in doing this in an automated way with bots or they may use an app interface.
Pools are Accounts holding two different Assets contributed by Poolers. Swappers transfer assets to and from pools.
The exchange rate for a swap is determined from the ratio of the pair of Assets in the Pool and the amount to be swapped. The precise rate will be different for every transaction but will always ensure the total product of the Pool stays constant (+ fees). This type of exchange is known as a Constant Product Market Maker, a type of Automated Market Maker.
The smart contracts of the Pool ensure that only a group of transactions for the correct amounts succeed.
In return for providing assets, they receive a share of transaction fees.
A Pooler is issued an amount of Pool Token proportional to their Pool contribution. This can be cashed in at any time in return for a portion of the Pools assets.
Poolers only receive fees when they withdraw liquidity (assets) from the Pool by exchanging their Pool Tokens.
The assets are held in a contract account that only allows withdrawals in two cases:
- 1.As one transaction of a swap where an equal value of the other asset is deposited
- 2.As one transaction of a withdrawal where an equal value of Pool Tokens are deposited
Only the Pool Token holders have the right to withdraw assets and only in proportion to their contribution so they collectively own the Pool assets.
No, the Pool’s balance must be maintained so an equal value of both currencies must be withdrawn in exchange for Pool Tokens.
A Swapper may swap assets with the Tinyman pools using either of three methods:
- 1.Manually/programatically creating, signing and submitting a set of transactions that satisfy the smart contracts
- 2.Signing and submitting the transactions created by the helper functions of the Tinyman JS library
Using any of the 3 methods described above for Swappers.
Wallets that support atomic transactions for Ledger accounts can operate flawlessly with the Tinyman platform. At the moment only My Algo Wallet supports this. Hopefully other wallets will support this in the near future.
Certain Swappers will monitor discrepancies between Tinyman rates and rates on other exchanges and trade these to their profit until the rates are equalized. This is known as arbitrage trading.
Pools are created by submitting a specific set of transactions. The logic of the contracts ensures that only one Tinyman Pool can exist for a pair of assets.
Anyone can create a Pool by issuing the correct set of transactions.
Yes, the protocol is fully permissionless so no restrictions are in place. However it is not at all advisable to create pools with assets that have a low total supply. Pools should not be created with assets that represent collectables, NFTs or similar. The system is designed with the expectation that the minimum input and output amount of a swap is 1000 microunits. Swapping smaller amounts than this may lead to rounding errors that negatively affect users.
Yes. Algo is not an ASA but it may be used as one of the assets in a Pool.
No, AMM protocols like Tinyman are not suitable for swapping assets like NFTs.
The Pool creation contracts do not enforce an exchange rate as they have no knowledge of the current market rates. However, it is in the Pooler's interest to ensure the ratio of assets deposits matches the market rates. Pools can always be traded against from both sides so Swappers will take advantage of any rates that don't match the overall market.
The fee is paid in the currency of input/sell asset. The fee amount is added to the liquidity in the pool.
The platform earns fees at %0.05 of the input amount. Pool tokens are allocated to the protocol representing the platform's share of each swap.
The protocol fee account will eventually be controlled by a governance process encoded in smart contracts. Holders of a governance token will be able to participate in this process and control how the fee account’s assets are used. The details of this governance system are TBD. It will not be in place at the time of the initial product launch.
The protocol fees are claimable only by the creator of the Tinyman Validator app, a MultiSig account controlled by team members.
Yes they are standard assets and can be traded freely. Only the pool token is necessary to redeem liquidity from the associated Pool.
No. The contracts will be published with rules that forbid anyone to change them. The team will have no way of taking assets from Pool accounts or modifying any of the contract code.
No. The contracts themselves cannot be updated but the interface may be improved and may even interact with new contracts. If the team persuades the community that the new contracts offer advantages, the Poolers will want to move their assets to the new accounts. The old contracts will still exist and Swappers and Poolers will still be free to use them as they wish.
A Swap is made by transferring some of "Asset A" to a Pool and transferring some of "Asset B" from the Pool. Algorand smart contracts only allow or reject transactions but do not initiate any transfers themselves. The Tinyman SDK/Web App will prepare a group of transactions that will be approved by the Tinyman smart contracts.
The specific group of transactions needed for a Swap are as follows:
0: Pay - pay fees in Algo from Swapper to Pool
1: App Call - NoOp call to Pair App with args 'swap'
2: AssetTransfer - transfer sell asset from Swapper to Pool
3: AssetTransfer - transfer buy asset from Pool to Swapper
The app call transaction (1) verifies that the amounts of transactions 2 and 3 satisfy the constraint of the Pool.
The Pay transaction (0) is required to transfer enough Algos to the Pool to cover the fees of transactions 1 and 3.
Transactions 0 and 2 must be signed by the Swapper.
This will be a common occurrence in Pools with high volume. Tinyman handles this by including slippage tolerance in the preparation of the transactions to reduce the possibility of asking for more of an asset than allowed by the rate. If the initial set of swap transactions succeed, the minimum amount will be received. The Pool will likely hold some excess that can be reclaimed with a subsequent transaction. The excess is redeemed with a Redeem transaction group.
The specific group of transactions needed for a Redeem is as follows:
0: Pay - pay fees in Algo from Swapper to Pool
1: App Call - NoOp call to Pair App with args 'redeem'
2: AssetTransfer - transfer asset from Pool to Swapper
The app call transaction (1) verifies that the amount in transaction 2 is the same as the amount of excess stored in the Pool for the Swapper.
The Pay transaction (0) is required to transfer enough Algos to the Pool to cover the fees of transactions 1 and 2.
Transaction 0 must be signed by the Swapper.
The Swapper must Opt-In to the Tinyman Validation app once. They must also Opt-In to receive Assets that they have not previously received.
As with all Apps and Assets on Algorand, each Opt-In increases the minimum balance of Algos required. This is not a fee but a minimum balance that must be held.
The Tinyman SDK/Web App will calculate these based on the Swapper input amounts using information retrieved from the network on the current asset amounts held by the Pool account. The formula to determine the swap amounts including fees is publicly known and encoded in the SDK/Web App.
Tinyman does not "Verify" any Asset and does not play any role in the verification process. This process is done by Algorand. Tinyman only pulls this verification information from the Algorand Wallet. Beware that Algorand's official verification mark is different than the verification mark in http://algoexplorer.io.
CoinMarketCap defines impermanent loss as “the temporary loss of funds occasionally experienced by liquidity providers because of volatility in a trading pair.” To put this into perspective, if you are holding an LP token, and one of the assets depreciates in value in the short term, but gradually returns to the original price, then you would have lost value "impermanently." Alternatively, if the same asset appreciated in value before reverting to the mean, you would have had "impermanent gains." These metrics can help liquidity providers balance their portfolios for optimal ratios. For instance, if you think a token will appreciate, and then revert to the mean, you might provide liquidity before it appreciates, just to accumulate the fees for that duration. If you'd like to learn more about impermanent loss, the following articles may be useful: https://pintail.medium.com/understanding-uniswap-returns-cc593f3499ef https://blog.bancor.network/beginners-guide-to-getting-rekt-by-impermanent-loss-7c9510cb2f22
No, Tinyman has setup an integration with Moonpay with 0 fees/commission for Tinyman. This integration is provided purely as a convience for Tinyman users.