Integrating USDC with Programmable Wallets

USDC Web3 Services Programmable Wallets Stablecoins Developer


Learn how to integrate USDC payments into your apps using Programmable Wallets

If you’re building a product that relies on payments, then you’re likely facing a long list of significant challenges.

Not only do you have the challenges of a traditional product team, such as creating a delightful user experience, inter-team dynamics, and hitting budgets, but you also face the unique challenges of a fintech team! Enabling cross-border payments, reducing chargebacks, dealing with slow and expensive transactions, and managing fraud are all part of your daily worries.

And on top of everything else, payments tech moves extremely fast, and the pressure is on to future-proof  your products.

It’s no doubt—building a successful product that relies on payments is a huge challenge.

If the above sounds familiar, integrating USDC as one of your payment rails should be part of your plan. It’s a powerful way to meet many of those challenges and position your product for what’s next. And by using Circle’s Programmable Wallets you can make integrating USDC into your product straightforward and easy.

In this article, we’ll look at enabling USDC payments using Programmable Wallets. We’ll see how this combination can help your product reach a global audience and how it can enable near-instant, low-fee payments with zero chargeback liability. And we’ll look in detail at how easy it is to integrate USDC and Programmable Wallets into your payments infrastructure.

First, let’s look at meeting the challenge.


USDC solves payments problems

You’ve probably already thought about integrating cryptocurrency payments into your app—and for good reason. According to Deloitte, more than 85% of merchants are prioritizing enabling digital currency payments. Implemented well, cryptocurrencies are fast, cheap, global, and can reduce fraud and eliminate chargebacks.

Among these cryptocurrencies, Circle’s USDC a leader, facilitating over $4.5 trillion worth of transactions in 2022 on Ethereum alone. USDC is a stable cryptocurrency (stablecoin) whose value is pegged to the US dollar. This means that 1 USDC is, and will always be, equal to and redeemable for $1 USD. USDC is popular throughout the world. Over $26 billion is in circulation and over 1.75M wallets hold USDC. And many traditional payment providers (such as Mastercard, Stripe, and Visa) are already building with USDC.

When you allow your users to pay in USDC, you gain all the advantages of cryptocurrencies, including:

  • Near-instant settlements
  • Low-cost transactions
  • Easy cross-border payments
  • Zero chargeback liability

And best of all, USDC is truly global, allowing your app to reach millions of potential users outside of the traditional banking system. For example, countries in South East Asia have populations with nearly 25% adoption of cryptocurrencies.

With its high usage, proven backing, and many benefits, accepting USDC for payments in your app is an easy choice.


Integrating USDC into your infrastructure

But how do you start accepting USDC as an alternative payment option in your app? Let’s look at how this can be done using Circle's Programmable Wallet APIs and SDKs.


The benefits of Circle’s Programmable Wallets

Programmable Wallets is a wallet-as-a-service solution that enables you to easily support USDC payments behind the scenes with a seamless user experience and minimal code.

It works by creating and embedding secure USDC wallets into your app as a natural part of your workflows (such as onboarding). For example, when users sign up for your app, you use the Programmable Wallet APIs and mobile-ready SDKs to create (and later manage) their crypto wallets. The process attaches the wallet to the user behind the scenes and abstracts away all the complexities of web3 payments for both you and the user.

Some of the benefits of Programmable Wallets include:

  • A clean web2 user experience that your users are already familiar with. USDC wallets are created as part of your workflows without any web3 jargon.
  • Easy access to wallets with an optional PIN and 2FA for security. No private keys or lengthy and random secret phrases are needed.
  • App owners manage the payments process for users, abstracting away the complexities of web3 and blockchain. The wallets are effectively embedded within your app and attached to your users.
  • All the benefits of USDC—zero chargebacks, a global user base, and cheap and near-instant transactions—without the complexity.
  • Easy troubleshooting and support. Programmable Wallets offers transaction logs, user-level monitoring, and error reporting.
  • And all of this without blockchain-specific code. Developers use the familiar tools of REST APIs, mobile SDKs, and dashboards. With Programmable Wallets, you can embed wallets into your app in just minutes.

Integrating USDC using Programmable Wallets

Integrating USDC with Programmable Wallets is simple. As mentioned above, it abstracts away the complexity of web3 for both users and developers. Developers don’t need knowledge of blockchain or crypto.

Before you start, however, you first have to decide if you or your users will control the private keys to the wallet (and its USDC).

The first option—developer-controlled wallets—creates wallets behind the scenes for users and allows your app to retain all control over the wallet. You as the app owner manage the interactions, sending and receiving of USDC, and more, all through the API and SDK. Your users don’t have to understand anything about web3 or blockchain, programmable wallets or even need to remember a PIN.

The second option—user-controlled wallets—allows you to accept USDC and store it securely using your app, but still allows the user to have full custody of the wallet. In this scenario, during the wallet creation process, the user sets a PIN and 2FA using security questions just as they do in many familiar web2 workflows. The PIN and 2FA give them control over the wallet and its USDC, but still allow you to onboard them to your app, create the wallet seamlessly for them, securely store their USDC, and help manage their activity.



Setting the PIN and 2FA for user-controlled wallets

For more information, you can read more about the differences between the two models in the Programmable Wallet documentation.

Regardless of your choice, Programmable Wallets creates and manages wallets and USDC using the tools your developers are already familiar with—REST APIs and iOS/Android SDKs—and just a few lines of code.


// Create a set of wallets
POST w3s/user/wallets { "blockchains": [ “ETH”, “AVAX”, “MATIC” ], "metadata": [ { “name”: “My First Wallet” } ], "idempotencyKey": "514916f1-ebc1-4257-890e-fddc192ebf92" }

Example code for creating a new wallet

Programmable Wallets gives you all the tools and services you need to handle user and wallet creation, the complexity of security, transaction monitoring, account recovery workflows, and more—all with simple API/SDK calls.



If you’re building an app that relies on payments, USDC and Programmable Wallets can give you an alternative payment option that provides you all the benefits of digital payments—but without the complexity of web3. With USDC and Programmable Wallets your apps can support payments that are fast and cheap with zero chargeback liabilities, a global user base, and a delightful user experience.

Sign up for an account to get started.

New call-to-action

*Programmable Wallets application programming interface (“API”) is offered by Circle Technology Services, LLC (“CTS”). CTS is not a regulated financial services company and the API does not include financial, investment, tax, legal, regulatory, accounting, business, or other advice. For additional details, please click here to see the Circle Developer terms of service.

Back to top