INRC: Bridging India's CBDC to DeFi — rupee stablecoin with Uniswap V4 liquidity pools.
INRC (Indian Rupee Stable Coin) is a blockchain-native INR stablecoin built to support India’s digital economy. It is designed to be backed by the Reserve Bank of India’s Central Bank Digital Currency (CBDC/e₹), giving each INRC token a direct link to sovereign digital currency. The project includes the INRC smart contracts (Solidity), an upgradeable ERC20 with features such as master minter controls, blacklist support, pausability, and gasless approvals (EIP-2612 permit). The integration with Uniswap V4 enables INRC liquidity pools and efficient swapping against other assets (e.g., USDT). Using Uniswap V4’s PoolManager and hooks, the system can support programmable liquidity, multi-chain deployment, and lower gas costs. The ecosystem includes a Next.js frontend, a backend service, and deployment scripts for networks such as Polygon Amoy, Sepolia, BNB, Base, and Arbitrum. INRC aims to serve businesses, market makers, and users who need an INR-denominated, CBDC-backed stablecoin with liquidity and interoperability across DeFi.
The project is split into three main parts: smart contracts (Hardhat + Solidity), backend (NestJS), and frontend (Next.js). Smart contracts INRC is built in Solidity 0.8.26 . The token is upgradeable via OpenZeppelin’s Initializable and proxy pattern. It extends a custom base token plus ERC20Burnable, EIP-2612 Permit (gasless approvals), and Ownable. Features like master minter, blacklist, pausability, configurable fees, and KYC-style controls are implemented in a modular way.
Uniswap V4 integration We use Uniswap v4-core (^1.0.2) for liquidity and swaps. Because Hardhat doesn’t pull in v4-core automatically, we added a small PoolTestHelpers.sol contract that imports PoolManager, PoolModifyLiquidityTest, and PoolSwapTest to force Hardhat to compile them. sqrtPriceX96 is computed from decimals so INRC (18) and USDT (6) can be priced 1:1 correctly.
Backend The API is built with NestJS 10, TypeORM/Sequelize, and MySQL. It uses ethers v6 and Web3 for chain interaction, JWT and Passport for auth (including Google OAuth), and SendGrid for email. The order/transaction layer handles INRC minting and CBDC-related order flows, with models for transactions and CBDC orders. The backend is containerized with Docker.
Frontend The UI is Next.js 14 with React 18, Bootstrap 5, SASS, Formik, and react-slick. It includes a landing page, wallet modal, roadmap, FAQ, and a business-focused section. Design assets are customized (e.g., Aileron fonts and rupee-themed imagery).

