The bridge · testnets only
Sepolia USDC in, USDC.sep out — and back.
Lock Circle's test USDC in a vault on Ethereum Sepolia naming a HashKinetics account; once Ethereum has finalized the block (≈ 13 min) the bridge mints the same amount of USDC.sep to it on testnet-1. Burn USDC.sep with a Sepolia address as destination and the vault releases the USDC within a couple of minutes. 1:1, six decimals both sides, no bridge fee. Test value only — nothing here has a price.
Test USDC, a little Sepolia ETH, and a HashKinetics account
USDC on Sepolia: faucet.circle.com (20 per address per two hours). Sepolia ETH for gas: any Sepolia faucet. A HashKinetics account that exists on chain: the faucet creates one from your auth commit, or the wallet does it for you — a mint to an id that does not exist yet is held by the bridge until it does.
Vault 0x989Cb35485d16c7b19Dff890b617984EeD9970aF · USDC 0x1c7D4B196Cb0C7B01d743Fbc6116a902379C7238 · USDC.sep asset id 0c3c3f40884ef40aee41d2ae2b823c8cc1e2c0859172ef20ff899f015442c0f1 (issuer c58cf9224f21…). Contracts and the guide: bridge/contracts, docs/BRIDGE-GUIDE.md.
Approve, then lock
MetaMask or any injected wallet, on Sepolia. The page builds the two calls itself — approve(vault, amount) on USDC, then lock(amount, hkAccount) on the vault — and your wallet shows you exactly what it signs.
Burn USDC.sep with your Sepolia address as the destination
The destination is your address as exactly 20 bytes of hex, no 0x. The burn commits in one block; the service attests it and the vault releases the USDC — about two minutes. The burn's txid is the burnId; the vault pays each one at most once.
# from the machine that holds your account (CLI path) hk-node asset burn ~/my-account https://rpc.hashkinetics.org 0c3c3f40884ef40aee41d2ae2b823c8cc1e2c0859172ef20ff899f015442c0f1 5000000 <your Sepolia address, 40 hex> # two minutes later, +5 USDC on Sepolia — or watch the events list below
Your account pays the flat 100-micro protocol fee in the test asset, so keep a little of that. A burn with any other destination length is valid on HashKinetics but unbridgeable: the service records it and never attests it. If the vault is paused or the day's cap is used up, the release waits in the queue — it is never lost.
An HK-issued asset as an ERC-20 on Sepolia
Burn HKT on testnet-1 naming a Sepolia address and wHKT.sep is minted there about a minute later — no finality wait, a HashKinetics commit is final. Burn it back here and the issuer re-mints HKT after Ethereum finality.
hk-node asset burn ~/my-account https://rpc.hashkinetics.org f2b88facb835a9e331b51772cf98cbcb95d6c86233324d252fd4c9edd8fbbcea 4000000 <your Sepolia address, 40 hex>
wHKT.sep 0x24159bE1577f3016AD64beA7D1430e5F2313DB26 · HKT asset id f2b88facb835a9e331b51772cf98cbcb95d6c86233324d252fd4c9edd8fbbcea. Wrapping the real HKN after TGE is a policy decision for counsel; this is the machinery, rehearsed on test assets.
Bridge events
reading the vault's and the wrapped token's logs…
The HashKinetics side of every hop is a txid on the public RPC: hk_getTx, hk_getAsset for supply and burned, or the explorer. The first loops, with every txid: receipts.
And what happens then
Recipient account missing on HK → the mint is held and retried until it exists. Sepolia reorg before finality → never eligible, nothing minted. Vault paused (any attestor can pause; only the owner unpauses) or daily cap reached → the release is queued and drained when the vault reopens. Service crash between "submitted" and "recorded" → that item is held for a human, never retried by itself — the gate proves this with a kill -9 mid-flow. Nothing on this page can move funds without your wallet's signature.
What this is, and is not
A proof-of-concept bridge between two testnets, built so that the shape of the real one — deposit ids in consensus, an operator committee, a light-client path — can be argued from receipts instead of slides. Circle's test USDC and Sepolia ETH have no value; USDC.sep is our name for "Sepolia-backed test USDC", never "USDC" alone. Nothing on this page is an offer of anything. Mainnet value never flows through this path before X2, an audit and a real committee.