Uniswap is a protocol for creating liquidity and trading ERC-20 tokens on Ethereum. It eliminates trusted intermediaries and unnecessary forms of rent extraction, allowing for fast, efficient trading. Where it makes tradeoffs - decentralization, censorship resistance and security are prioritized. Uniswap is open-source software licensed under GPL.
If you want to dive into details check out the docs.
First you’ll need an Ethereum Wallet and some ETH. Once completed, head over to the app to start using the protocol to provide liquidity or swap tokens. Remember that each transaction on Ethereum costs ETH (this is called the “gas fee” and it’s paid to miners to keep the network running).
Uniswap is an automated liquidity protocol. In practical terms this means there are template smart contracts that define a standard way to make liquidity pools and corresponding markets that are compatible with each other. There is no orderbook, no centralized party and no central facilitator of trade. Each pool is defined by a smart contract that includes a few functions to enable swapping tokens, adding liquidity and more. At its core each pool uses the function
x*y=k to maintain a curve along which trades can happen. The pools keep track of reserves(liquidity) and updates those reserves every single time someone trades. Because the reserves are automatically rebalanced, a Uniswap pool can always be used to buy or sell a token without requiring a counterparty on the other side of a trade.
For a more in-depth description. Check out the How Uniswap works from the documentation.
Prices are determined by the amount of each token in a pool. The smart contract maintains a constant using the following function:
x*y=k. In this case
x = token0,
y = token1,
k = constant. During each trade a certain amount of one token is removed from the pool for an amount of the other token. To maintain
k, the balances held by the smart contract are adjusted during the execution of the trade, therefore changing the price.
Websites that show token prices, like eitherscan.io or coinmarketcap.com, typically aggregate price data from multiple sources. Some of these sources can be inaccurate, especially regarding new or low volume tokens. If a website or app says a token is worth more than what is shown on Uniswap, it is due to the website’s or app’s inaccurate data sources. Always check the exchange rate on the Uniswap app before trading.
You might be trying to swap a fee on transfer or deflationary token. If so, you have to increase your allowed slippage to account for the fee taken during the swap. Click on the gear for settings and adjust slippage tolerance accordingly.
Otherwise, if your transaction is taking forever or stuck pending, the gas included might be too low and the transaction will not be processed. You probably need to speed up or cancel the transaction in you wallet.
Fix stuck transactions in MetaMask: https://metamask.zendesk.com/hc/en-us/articles/360015489251-How-to-Speed-Up-or-Cancel-a-Pending-Transaction
Fix stuck transactions in Trust wallet: https://www.publish0x.com/the-crypt/quick-guide-to-fixing-stuck-ethereum-transactions-xgdvgkv
If you speed up an approve, Uniswap can’t detect the new transaction. Open your wallet in the interface and click “clear all” then try refreshing the page.
If you can’t find a token in the default list, find the token address using etherscan and paste that address into the search field.
Uniswap pulls from the trustwallet asset repository on github. https://github.com/trustwallet/assets Add your token icon to that repo and it will appear on the frontend and on info.
Uniswap is compatible with any ERC-20 token in the Ethereum ecosystem. If you want your project to be searchable in their interface, you should seek to be added to a reputable token list or share a link to your token using query parameters. Once loaded via link, the token will be added to their interface.
Another option is to open a request using github issues.
The Uniswap team makes no guarantees nor provides any timeline for such requests. Nor will the team ever charge or request funds. We’ve added many UX features to make it easier to share a new token with communities - features such as local storage support and custom linking. Please make use of them.
Ethereum requires gas to execute each transaction. You can also check ETH gas station for the current prices required to complete transactions. Creating a Uniswap pool is a slightly costlier transaction because you are executing a more complex smart contract. Read more about how gas works in Ethereum.
There are many community built tools like https://www.uniswaproi.com/, https://www.zapper.fi/dashboard and https://zerion.io/. Uniswap provides no guarantees the information on these sites is correct.
Uniswap token pair contracts are ownerless. We have no special control over the pair contracts’ functionality; because of this, any tokens accidentally transferred to the token contract itself are lost forever.
Info.uniswap reads the details of new tokens when they’re added to the subgraph. There may be some circumstances where an old symbol or name isn’t updated if the token was updated with a proxy contract. A guide to fix this yourself is forthcoming. In the meantime, reach out with the details on our developer discord.
If a swap takes more than 20 minutes to execute, the router is programmed to fail the transaction. This is to protect the user from extreme swings in prices that can occur while the transaction is pending. If this happens, your tokens will still be in your wallet, but the gas fees paid are not recoverable. To keep this from happening, use a high enough gas price to have your transaction mined in under 20 minutes. This usually falls under “Standard” or “Fast” in most gas price calculators.