The universal payment button, for humans and agents.
Accepts payments from any chain, any token, in a single tap. You settle in USDC on Base, with chain abstraction built in.
Chain abstraction, made invisible
The customer never picks a chain, never bridges, never switches networks. uPay routes everything behind one tap.
Drop in one component or a single script tag. Five lines and you accept crypto.
Any wallet, any chain. Unified Balance pools their USDC across chains into one spendable balance.
You receive USDC, instantly. The dashboard reflects it as soon as it lands.
Five lines to accept any coin on any chain
A React component or a server-side session. uPay handles wallet connection, routing, and settlement. You handle the order.
Get your API key →import { UPayButton } from 'upay-base-sdk'
<UPayButton
apiKey="pk_test_..."
amount={40}
/>Safe by architecture
uPay never touches custody. Funds move directly from the customer's account to yours.
uPay never holds funds. Settlement is account-to-account, verifiable on-chain.
Unified Balance pools a customer's USDC across chains into one instantly spendable balance, no bridging screen.
Settlement lands on Base, with chain abstraction handled automatically.