Skip to main content



You can create a deeplink that will prompt the user to make a payment to an address.

The deeplink will look like this celo://wallet/pay?{...queryParams} where the query parameters can be:

  • address (required): The address that will be the recipient of the payment.
  • displayName (optional): The URL-encoded name of the recipient. If you leave this empty the address will be shown instead.
  • comment (optional): A URL-encoded text that explains the reason for the payment.
  • token (optional): The token you want the payment to be in. Can be cUSD, cEUR or CELO. If you pass a different value or nothing the app will use cUSD.
  • amount (optional): The amount to send. If you don't pass a value the user will have to input the amount if token is cUSD or not work at all if token is CELO.
  • currencyCode (optional, recommended if amount is set): The fiat currency in which the user will see the payment amount. Users of the app can choose which currency they see values in the app by default so if you set the amount it's strongly recommended to set a value for this so you make sure you receive the expected amount. Possible values are the ones listed in the LocalCurrencyCode enum here

To URL encode a text you can use the encodeURI function or a web tool like

Example payment deeplink:


Smallest possible payment deeplink: