• Discover
  • Partner with us
  • Chapters
  • Blog

Learn everything about Circle and USDC

Course Intro
Blockchain in a Nutshell
Introduction to Circle
Stablecoins
USDC
Wallets

Section Overview
Getting API Key
Introduction to Wallets
Getting App Id
Create a User
Acquire Session Token
Initialize User
Create Wallet
Submit Your Homework 1
Section Summary

Section Overview
Check Wallet Status
Getting Test USDC
Check Wallet Balance
Getting Native Test Token
Initiate Transaction
Validating Transaction
Submit Your Homework 2
Section Summary
Bonus: Complete a Challenge with WebSDK

Section Overview
Account Types
Create SCA
Transfer and Verify
Submit Your Homework 3
Section Summary

Section Overview
Working With Dev Controlled Wallets
Submit Your Homework 4
Section Summary

Section Overview
CCTP in a Nutshell
CCTP
Section Summary

Submit Your Final Project

Getting USDC Using ZKP2P and Turkish Lira
Resources

Section Review: Implementing Gas Station and Smart Contract Accounts

Welcome to this section review! In this chapter, you implemented the Gas Station feature using Smart Contract Accounts (SCAs) in your User-Controlled Wallets project. This summary recaps the steps, changes, and best practices you applied.

Key Update: Switching to Smart Contract Accounts

You began by modifying the existing User-Controlled Wallets project. The only code change required was in the API configuration—specifically within initializeUser in routes.js.

By default, accounts are created as Externally Owned Accounts (EOAs) unless otherwise specified. To use Smart Contract Accounts, you needed to include the account type parameter as "SCA".

Process Recap: Creating a New Smart Contract Wallet

Once you made that change:

  1. You ran the project using npm run dev.
  2. You accessed the front-end and created a new user.
  3. You collected the required credentials:
  • App ID (remains the same)
  • User ID
  • User Token
  • Encryption Key
  • Challenge ID

You stored these in your .env file just like the first time you created a wallet.

Setting Up the Wallet

After collecting the credentials:

  • You returned to the UI and filled out the wallet setup form.
  • You entered your App ID, User Token, Encryption Key, and Challenge ID.
  • Upon verifying the challenge, you completed PIN setup and recovery questions—finalizing the wallet creation.

In Circle's Dashboard, you could then view the user profile showing:

  • Account Type: Smart Contract Account (SCA)
  • Status: PIN and Security Questions enabled

Checking Wallet Status and Balance

Once the wallet was initialized:

  • You used the command npm run check-wallet-status to confirm the wallet’s live state and retrieve the Wallet ID and address.
  • You then checked the balance with npm run check-wallet-balance, confirming that the USDC was available and the native token (MATIC) balance was zero.

Initiating and Verifying Transactions

Next, you initiated a transaction with npm run initiate-transaction. This returned:

  • User Token
  • Encryption Key
  • Challenge ID

You then entered this data into the front-end and verified the challenge once more—not to create the wallet this time, but to authorize the transaction. Since it’s a User-Controlled Wallet, all actions must be confirmed by the user.

Developer vs. User Roles in Verification

As the developer:

  • You prepare the Challenge ID and present it to the user.
  • The user is responsible for verifying the challenge by entering their PIN and answering recovery questions.

Only after this user confirmation can any blockchain operation—like wallet creation or token transfer—be finalized.

Testnet vs. Mainnet Configuration

  • On the testnet, no additional configuration is needed for the Gas Station to work with Smart Contract Accounts.
  • On mainnet, additional setup is required. Refer to the official Circle documentation for those production steps.

What You’ve Learned

By this point in the course, you've mastered how to:

  • Create both EOAs and SCAs
  • Transfer tokens using user-controlled wallets
  • Sponsor user gas fees with the Gas Station
  • Secure operations using challenge-response verification
Previous
Next

Lesson discussion

Swap insights and ask questions about “Learn everything about Circle and USDC”.

Enroll to participate
Start the course to unlock the discussion. Enrolling helps us keep conversations relevant to learners.
WebsiteDiscoverPartner with UsBlogEvents
Discover
CoursesCircleRustSoliditySolanaWeb3 FundamentalsBlockchain Basics
CompanyAbout UsBrand GuidelineFAQsTerms of UsePrivacy PolicyGDPR NoticeCookies
Don't miss any update!

Disclaimer: The information, programs, and events provided on https://risein.com is strictly for upskilling and networking purposes related to the technical infrastructure of blockchain platforms. We do not provide financial or investment advice, nor do we make any representations regarding the value, profitability, or future price of any blockchain or cryptocurrency. Users are encouraged to conduct their own research and consult with licensed financial professionals before engaging in any investment activities. https://risein.com disclaims any responsibility for financial decisions made by users based on the information provided here.

© 2026 Rise In, All rights reserved