
# Uni Wrap – Quick, Composable Development on Uniswap
## The Uni Wrap
The Uni wrap aims to make Uniswap ubiquitous – bringing the power of Uniswap into web browsers, mobile, gaming and more. The wrap contains functions that are foundational to DeFi, such as swapping or pooling liquity. This makes it one of the most important wraps we've ever built!
## Comparison with the Uniswap JS SDK
The Uni wrap provides the same functionality as the official Uniswap SDK. But while the official JS SDK can only be used in TypeScript or JavaScript environments, the Uni wrap can be used in any app, written in any language.
### Uniswap JavaScript SDK

*Uniswap's official JavaScript SDK only lets developers integrate Uniswap protocol in JS environments, like the web browser.*
### Uni Wrap

*The Uni wrap, powered by Polywrap tech, can be used on any platform – games, web, mobile and more!*
## Example Code
### Setting up the Polywrap client
Like integrating any other web3 protocol with Polywrap, a developer would first install a language-specific Polywrap client library (e.g. JavaScript client for JS apps).
<!-- Code for configuring a Polywrap client -->
The Polywrap client is then configured with the Ethereum wrap. The Ethereum wrap is a port of Ethers, a popular library to interact with Ethereum. Below is example TypeScript code showing how to set up the client.
```ts=
client = new PolywrapClient(
new ClientConfigBuilder().addPackage(
uri,
ethereumProviderPlugin({
connections: new Connections({
networks: {
binance: new Connection({
provider: "https://bsc-dataseed1.binance.org/",
signer: new Wallet("0x4f3edf983ac636a65a842ce7c78d9aa706d3b113bce9c46f30d7d21715b23b1d"),
})
},
defaultNetwork: "binance",
})
}),
).build()
);
```
### Invoking the Uni Wrap
With the client configured, the developer can run any function on the Uni wrap with ease.
The client is directed to a URI where it can download and execute any deployed wrap, including Uni Wrap.
In the code snippet below, the client fetches the Uni v3 Wrap from `wrap://ens/uniswap.wraps.eth:v3` and calls the `fetchPoolfromTokens` method.
```ts=
await client.invoke({
uri: "wrap://ens/uniswap.wraps.eth:v3",
method: "fetchPoolFromTokens",
args: {...}
});
```
## Uniswap Hacker Docs
In April 2023, Uni Wrap became part of Uniswap's official [hacker home](https://www.uniswapfoundation.org/hacker-home). The Uniswap team put together this page as a resource for builders integrating Uniswap.

We're excited to see all the unique ways that Uniswap's developer ecosystem uses the Uni Wrap! You can receive technical support integrating Uniswap directly from Polywrap engineers in our [Discord community](https://discord.gg/hUxDVvBq).
## Resources
- [Uni Wrap source code](https://github.com/polywrap/uniswap/tree/main/v3)
1. [Uni Wrap documentation](https://uniswap.docs.wrappers.io/)