MiniPay Mini App Integration
Integrate Daimo Pay into your MiniPay Mini Apps in two ways:
- Deposit from anywhere to MiniPay. Support Coinbase, Binance, or other chains into your mini app in seconds.
- Send from MiniPay mini app and call contracts on other chains.
Deposit
Enable fast deposits in your MiniPay Mini App with Daimo Pay.
- Fast. Deposits complete in seconds.
- Sponsored fees. Users don’t need to pay the network fees to deposit.
- 1:1 stablecoin deposits. Send 1000 USDT from Tron, Solana, or Base and receive exactly 1000 USDC in your mini app.
Integration steps:
- Configure your provider to prevent MiniPay's injected wallet from interfering:
provider.tsx
<DaimoPayProvider
key={theme} // Force re-render when theme changes
payApiUrl={payApiUrl}
customTheme={currentTheme}
options={{ disableMobileInjector: true }}
>
- Add the Daimo Pay deposit button to your mini app. Configure the destination chain and token where funds should arrive. For the complete list of configuration options, see our SDK reference.
Typescript
'use client'
import { DaimoPayButton } from '@daimo/pay'
import { celoUSDT } from '@daimo/pay-common'
import { getAddress } from 'viem'
export default function Home() {
return (
<DaimoPayButton
appId="pay-demo" /* Example app ID you can use for prototyping */
intent="Deposit"
toChain={celoUSDT.chainId} /* Deposit to the Celo network */
toToken={getAddress(celoUSDT.token)} /* Deposit to USDT */
toAddress="PAYMENT_RECIPIENT_ADDRESS_HERE"
onPaymentStarted={(e) => console.log(e)} /* Logs when user initiates payment */
onPaymentCompleted={(e) => console.log(e)} /* Logs when payment completes */
/>
)
}

Users can now deposit funds from any wallet or exchange directly into your MiniPay mini app
Send from MiniPay
Enable users to send funds or interact with contracts outside of Celo. This allows cross-chain payments and interactions that feel native within your MiniPay mini app.
Use case example: Accept payments from any asset in a user's MiniPay wallet and settle to USDC on Optimism.
Integration steps:
-
Add the
DaimoPayButton
component with theconnectedWalletOnly
prop to focus the interface on the user's MiniPay balance only. -
Configure your destination chain and settlement token.
You can also trigger smart contract calls on the destination chain as part of the payment. For this and other configuration options, see our SDK reference.
Typescript
'use client'
import { DaimoPayButton } from '@daimo/pay'
import { optimismUSDC } from '@daimo/pay-common'
import { getAddress } from 'viem'
export default function Home() {
return (
<DaimoPayButton
appId="pay-demo" /* Example app ID you can use for prototyping */
intent="Deposit"
toChain={optimismUSDC.chainId}
toToken={getAddress(optimismUSDC.token)}
connectedWalletOnly /* Enable to focus only on MiniPay's user balance */
toAddress="PAYMENT_RECIPIENT_ADDRESS_HERE"
onPaymentStarted={(e) => console.log(e)} /* Logs that will appear when the user initiated the payment */
onPaymentCompleted={(e) => console.log(e)} / * Logs that will appear when the user completed the payment */
/>
)
}
