StableBonds Documentation

StableBonds is built on viem, wagmi, and Circle Web3 Services (WaaS). There is no proprietary SDK — all on-chain interactions use standard EVM tooling on Arc Testnet.

viem 2.49wagmi 2.xCircle WaaS SDKArc TestnetUSDC ERC-20Circle CCTP
1

Connect to Arc Testnet

Arc Testnet (Chain ID 5042002) uses USDC as its native gas token. Connect using viem — the arcTestnet chain config is included in viem/chains.

// StableBonds uses viem + wagmi — no custom SDK required
// Install dependencies
npm install viem wagmi @circle-fin/web3-services-sdk

// Configure a public client on Arc Testnet
import { createPublicClient, http } from 'viem';
import { arcTestnet } from 'viem/chains';

const client = createPublicClient({
  chain: arcTestnet,               // Chain ID: 5042002
  transport: http('https://rpc.testnet.arc.network')
});

// Verify connection
const block = await client.getBlockNumber();
console.log('Connected to Arc. Block:', block);
2

Read USDC Balance

USDC on Arc Testnet is a standard ERC-20 token deployed at0x3600000000000000000000000000000000000000. Read balances using the standard balanceOf call. USDC uses 6 decimal places.

// Read your USDC balance on Arc Testnet
import { createPublicClient, http, formatUnits, parseAbi } from 'viem';
import { arcTestnet } from 'viem/chains';

const USDC_ADDRESS = '0x3600000000000000000000000000000000000000';

const client = createPublicClient({
  chain: arcTestnet,
  transport: http('https://rpc.testnet.arc.network')
});

const USDC_ABI = parseAbi([
  'function balanceOf(address account) view returns (uint256)'
]);

const rawBalance = await client.readContract({
  address: USDC_ADDRESS,
  abi: USDC_ABI,
  functionName: 'balanceOf',
  args: ['0xYourWalletAddress']
});

// USDC uses 6 decimals
const balance = formatUnits(rawBalance, 6);
console.log('USDC Balance:', balance);
3

Schedule a Bond Payment

Two-step process: first approve the vault to spend your USDC, then call deposit to lock funds into a yield-bearing bond. The vault address is 0x3522E90D3496D530F7bd2767bE818Cd2F6846b0A.

// Schedule a payment bond via the StableBonds vault contract
// The vault is deployed at: 0x3522E90D3496D530F7bd2767bE818Cd2F6846b0A
import { createWalletClient, http, parseUnits } from 'viem';
import { arcTestnet } from 'viem/chains';
import { privateKeyToAccount } from 'viem/accounts';

const VAULT_ADDRESS = '0x3522E90D3496D530F7bd2767bE818Cd2F6846b0A';
const USDC_ADDRESS  = '0x3600000000000000000000000000000000000000';

const account = privateKeyToAccount('0xYourPrivateKey');
const walletClient = createWalletClient({
  account,
  chain: arcTestnet,
  transport: http('https://rpc.testnet.arc.network')
});

// Step 1 — Approve vault to spend USDC
const approveHash = await walletClient.writeContract({
  address: USDC_ADDRESS,
  abi: parseAbi(['function approve(address spender, uint256 amount) returns (bool)']),
  functionName: 'approve',
  args: [VAULT_ADDRESS, parseUnits('1000', 6)]   // 1,000 USDC
});

// Step 2 — Deposit into vault to start earning yield
const depositHash = await walletClient.writeContract({
  address: VAULT_ADDRESS,
  abi: parseAbi(['function deposit(uint256 amount, address recipient, uint256 maturityDays)']),
  functionName: 'deposit',
  args: [parseUnits('1000', 6), '0xVendorAddress', 90n]  // 90-day bond
});

console.log('Bond created. Tx:', depositHash);
4

Circle Smart Account Authentication

StableBonds uses Circle Web3 Services (WaaS) for user authentication. Users sign in via Passkey (Touch ID / Face ID / Windows Hello) — no seed phrase, no browser extension required. The resulting Circle Smart Account gets gasless transactions on Arc.

// Sign in with Circle Smart Account (Passkey / WebAuthn)
// StableBonds uses Circle WaaS — no seed phrase required

import { W3SSdk } from '@circle-fin/web3-services-sdk';

const sdk = new W3SSdk({
  appId: process.env.NEXT_PUBLIC_CIRCLE_APP_ID
});

// Trigger passkey login (Touch ID / Face ID / Windows Hello)
await sdk.execute(userToken, encryptionKey, [
  { type: 'createWallet' }   // creates Circle Smart Account
]);

// Once logged in, the Smart Account address is available
// and all transactions are gasless on Arc (fees sponsored by Circle)
5

Contract Addresses — Arc Testnet

All contracts below are deployed on Arc Testnet (Chain ID: 5042002). Verify on testnet.arcscan.app.

ContractChain IDAddress
USDC (ERC-20)50420020x3600...0000
StableBonds Vault50420020x3522...6b0A
Circle CCTP Token Messenger50420020x8FE6...2DAD
Gasless on Arc: When using a Circle Smart Account, all transactions on Arc Testnet are 100% gas-sponsored. Users never need to hold native gas tokens — USDC is the only asset required.

Newsletter Subscription

Sign up for institutional product updates, compliance advisories, and technical release notes.

Platform:
Fully Operational
StableBonds

Corporate treasury infrastructure and automated yield streaming built natively on the Arc blockchain network. Fully compliant USDC & EURC business payment workflows.

SOC 2 Type II CertifiedISO 27001 Security StandardMiCA Compliant Asset Protocols
Audit Attestations:Hacken: VerifiedCertiK: Grade A
© 2026 StableBonds Inc. All rights reserved.

StableBonds is an enterprise treasury management platform. USDC and EURC are regulated digital dollars issued by Circle Internet Financial. Payments settle in real-time on Arc blockchain infrastructure.

US (English)
Transaction fee:~0.01 USDC