











A UniversalInterface
Wrappers let you compose web3 like never before. Simply include the Polywrap client in your app to seamlessly read and write to a variety of protocols from a secure WebAssembly VM.
Examples are for illustrative purposes only.


Add liquidity to Uniswap in TypeScript.

uniswap-pool.ts

uniswap-pool.py

uniswap-pool.rs
1await uniswap.add_liquidity({2 pool_address: "0x...",3 wei: "12...",4 ...5});
Add liquidity to Uniswap in TypeScript.

uniswap-pool.ts

uniswap-pool.py

uniswap-pool.rs
1await uniswap.add_liquidity({2 pool_address: "0x...",3 wei: "12...",4 ...5});
Add liquidity to Uniswap in TypeScript.

uniswap-pool.ts

uniswap-pool.py

uniswap-pool.rs
1await uniswap.add_liquidity({2 pool_address: "0x...",3 wei: "12...",4 ...5});
Add liquidity to Uniswap in TypeScript.

uniswap-pool.ts

uniswap-pool.py

uniswap-pool.rs
1await uniswap.add_liquidity({2 pool_address: "0x...",3 wei: "12...",4 ...5});

Break DownSoftware Silos
Instead of building a patchwork of SDKs in different languages, just build one wrapper that developers can easily integrate anywhere.

WRAPPERS AREWEB3-NATIVE SDKs

Portable
Write one SDK that can port your web3 logic to any execution environment.

User-Friendly
Integrating web3 is finally as easy as interacting with web APIs.

Secure
Sandboxing keeps users safe by isolating wrappers from application memory.