Nexis
Stablecoin Payments on a Sovereign Infrastructure
by coldplay0936 · submitted Jun 20, 2026
Community votes
0
Voting opens when this submission reaches the Top 10 stage.
Overall score
—/ 100
Weighted average across the 5 judging criteria.
Description
01/03
What the builder said.
Written by the team, rendered as the markdown they typed in the submission wizard.
Nexis
Sovereign, on-chain stablecoin payments and invoicing on OPN Chain.
Nexis lets anyone send tUSDT to up to 20 recipients in a single transaction instead of paying gas and clicking "confirm" twenty times over, and turns invoicing into something the chain itself enforces — an invoice names exactly one wallet allowed to pay it, and the amount, status, and history all live on-chain. No database, no intermediary, no central party who could quietly edit the record.
nexis-v2/
contracts/ Solidity contracts (BatchTransfer, Invoicing), tests,
deploy script — see contracts/README.md
frontend/ React + Vite dApp — see frontend/README.md
Why it's built this way
The core idea behind Nexis is that a payment record shouldn't depend
on anyone keeping a server running. Every transfer and every invoice
on this platform is fully readable, verifiable, and enforced by the
contracts themselves — BatchTransfer.sol for multi-recipient
settlement, Invoicing.sol for invoice creation, payment, and
cancellation. If the frontend disappeared tomorrow, the data and the
rules governing it wouldn't.
Get running in three steps
1. Deploy the contracts (you'll need a wallet funded with test OPN — free from https://faucet.iopn.tech)
cd contracts
npm install
cp .env.example .env # add your DEPLOYER_PRIVATE_KEY
npm run compile
npm test # 27 tests, all run locally — no network needed
npm run deploy
This prints two addresses:
BATCH_TRANSFER_ADDRESS = "0x..."
INVOICING_ADDRESS = "0x..."
2. Wire them into the frontend
Open frontend/src/contracts/config.js and paste those two addresses
into CONTRACTS.batchTransfer and CONTRACTS.invoicing.
3. Run the app
cd ../frontend
npm install
npm run dev
Open http://localhost:5173, connect a wallet, and everything is
live — batch transfers, invoice creation and payment, and the activity
ledger all read and write directly to the contracts you just deployed.
What's already configured and doesn't need touching
- OPN Chain Testnet: RPC
https://testnet-rpc.iopn.tech, chain ID984, explorerhttps://testnet.iopn.tech - tUSDT:
0x3e01b4d892E0D0A219eF8BBe7e260a6bc8d9B31b
Tooling
Built with the help of Claude (Anthropic) for contract development, the frontend build, and testing — directed, reviewed, and deployed by me.
Roadmap
02/03
What ships next.
The builder's own next-quarter plan. Use it to gauge follow-through and ambition.
Phase 1 - Q3
Notifications & query performance: Add share-link generation for invoices and permanent client-side caching of paid/cancelled invoices, cutting repeat on-chain reads. Build an event-driven relay service that watches InvoiceCreated and InvoicePaid events and notifies payers/payees automatically, removing the need to manually check the dashboard.
Phase 2 - Q3
Infrastructure hardening: Move off the public RPC endpoint to a dedicated provider with automatic fallback, add uptime monitoring, and switch invoice lookups from iterating every invoice ID to indexed event-log queries filtered by wallet address — keeping retrieval cost proportional to a user's own activity, not total platform volume.
Phase 3 — Q4
Security: Run static analysis (Slither, Mythril) on both contracts, followed by a community audit (Code4rena/Sherlock) ahead of a full professional audit once transaction volume justifies the cost. Stand up a public bug bounty in the meantime.
Phase 4 — Q4
Resilience at scale: Write and test a contract migration script now, before it's ever needed, so a future issue can be resolved by deploying a new version and migrating open invoices — preserving full immutability rather than adding an upgrade backdoor. Introduce a subgraph for indexed queries if invoice volume outgrows direct RPC calls.
On-chain proof
03/03
2 contracts on OPN Chain.
The chain itself confirmed every deployment is valid, signed by the builder's wallet, and inside the season's window.