Contracts & Faucet
The following contracts are deployed on Arbitrum Sepolia. These addresses should
stay aligned with smart-contract/.env and frontend/.env.local.
| Contract | Address | Notes |
|---|---|---|
| PulsarProtocol proxy | 0x204488318C0E75978B3c851382Aa83f3065a8f5A | Main entry point for mint, redeem, swap, and KYC. |
| PulsarProtocol implementation | 0x14c54E6cade1A13c73685c239aE895A7d37DC3df | Verified UUPS implementation. |
| IDRX mock | 0x03b53A71C5517907006EAb512A31C1eD5a56Ae64 | Testnet stablecoin with 2 decimals. |
| UniswapV2Factory | 0x4254378E95dBD9816a1a18428A81B4E1fBe5C296 | Custom factory on Arbitrum Sepolia. |
| UniswapV2Router02 | 0xFEf655B2A0742134242711b80899d0b543A74223 | Router used for liquidity and swaps. |
| IDRXFaucet | 0x286954bE9b8a2B52f2A61432Fa448C5287e4dDEA | Testnet IDRX faucet. |
| WETH | 0x980B62Da83eFf3D4576C647993b0c1D7faf17c73 | External Arbitrum Sepolia dependency. |
IDRX faucet
Mint testnet IDRX from the faucet
This button calls drip() on the IDRXFaucet contract. Each wallet can claim 100,000 IDRX once every 24 hours.
Ready to mint 100,000 testnet IDRX once every 24 hours.
Manual Foundry call:
cast send 0x286954bE9b8a2B52f2A61432Fa448C5287e4dDEA "drip()" \
--rpc-url "$RPC_URL" \
--private-key "$PRIVATE_KEY"
Network
- Chain: Arbitrum Sepolia
- Chain ID:
421614 - Hex chain ID:
0x66eee - Explorer: sepolia.arbiscan.io
Frontend environment mapping
The frontend expects public contract addresses through environment variables:
NEXT_PUBLIC_PULSAR_PROTOCOL_ADDRESS=0x204488318C0E75978B3c851382Aa83f3065a8f5A
NEXT_PUBLIC_IDRX_ADDRESS=0x03b53A71C5517907006EAb512A31C1eD5a56Ae64
NEXT_PUBLIC_RPC_URL=...
NEXT_PUBLIC_BACKEND_URL=...
NEXT_PUBLIC_WALLETCONNECT_PROJECT_ID=...
Smart contract environment mapping
The smart contract scripts use:
PULSAR_PROTOCOL_PROXY=0x204488318C0E75978B3c851382Aa83f3065a8f5A
PULSAR_PROTOCOL_IMPL=0x14c54E6cade1A13c73685c239aE895A7d37DC3df
IDRX=0x03b53A71C5517907006EAb512A31C1eD5a56Ae64
UNISWAP_V2_FACTORY=0x4254378E95dBD9816a1a18428A81B4E1fBe5C296
UNISWAP_V2_ROUTER=0xFEf655B2A0742134242711b80899d0b543A74223
WETH=0x980B62Da83eFf3D4576C647993b0c1D7faf17c73
Verification checklist
Before a demo or review session, verify:
PulsarProtocol.router()equals the deployed Uniswap V2 router.UniswapV2Router02.factory()equals the deployed factory.PulsarProtocol.idrx()equals the mock IDRX token.- The frontend env points to the same protocol and IDRX addresses.
- The faucet has enough IDRX balance.
- At least one pStock has been minted and has a usable pool.