# How does PYUSD.to work?

At its core, [PYUSD.to](https://pyusd.to) is a [NextJS](https://nextjs.org/) app that uses [Uniswap](https://uniswap.org/) to perform swaps.

Uniswap is an AMM (automated market maker) protocol on Ethereum. We use the [Uniswap Alpha Router](https://github.com/Uniswap/smart-order-router) to find the optimal swap path and to generate transaction calldata, which we then ask your wallet to sign.

The app also uses a database to store personalized URLs (<https://pyusd.to/mono-koto> for example). The app is currently hosted with [Vercel](https://vercel.com/).

Other tools and libs used: [Typescript](https://www.typescriptlang.org/), [TailwindCSS](https://tailwindcss.com/), [Viem](https://viem.sh/), [Wagmi](https://wagmi.dev/), [RainbowKit](https://www.rainbowkit.com/), [Kysely](https://kysely.dev/), [PostgreSql](https://www.postgresql.org/), [ShadCN](https://ui.shadcn.com/) + [Radix](https://radix-ui.com/), [React Icons](https://react-icons.github.io/react-icons/), [and much more](https://github.com/mono-koto/pyusd.to/blob/main/package.json).
