Skip to content
Tobu8888Public

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Latest commit

 

History

40 Commits

Folders and files

Repository files navigation

ARCone

Cross-border USDC payouts with withholding tax handled in the same transaction, running on Arc.

A Thai company paying an overseas contractor has to withhold 3% at source and keep a record it can file. A bank wire gives back a reference number, and the tax record gets rebuilt by hand afterwards. ARCone does both at once: the contract takes the gross amount, sends 97% to the contractor, routes 3% to a treasury address, and emits an event carrying gross, withheld, net and memo. The filing trail is the transaction.

Non-custodial throughout: the payer signs every transfer, no key leaves their device, and the app never holds funds.

Repository layout

Path What it holds
contracts/ Solidity sources written in Arc Studio, with the foundry config used to build them
app/ React frontend sources from the Arc Studio export
tools/ Deployment, payout and export scripts (Node, ethers v6)
docs/tools.md What each script does, with worked examples
docs/arc-notes.md RPC limits, gas costs and other findings measured on Arc
docs/verification.md How to check the mainnet deployment without trusting this README
docs/source-matches-chain.md Proof that the sources here compile to the deployed bytecode
DEPLOYMENTS.md Every deployed address, with the transactions behind them
examples/ A payout batch file and a withholding export taken from testnet
brand.md, *.png, *.svg Logo files the app loads directly from this repo

Working with the tools

cd tools
npm install
node check-rpc.js mainnet
node verify-deployment.js mainnet 0x0F225c0FfB0bD7c5C50732Ab9e9D9BD91Ca79ea4

Scripts that spend money take a key file path and do a dry run unless --yes is passed. Key files stay outside the repository; tools/.gitignore keeps wallet.json and .env out of commits.

Status

Both contracts are live on Arc mainnet with real USDC through them: a payout that split withholding off, and an invoice created and paid. The web app opens on Arc mainnet and can switch to Arc testnet, where the faucet button appears and the testnet contracts are used instead.

Paying a list of contractors and exporting withholding receipts work from the command line today (tools/batch-payout.js, tools/export-wht.js); neither is in the web app yet, and the contract still has no batch entry point, so a batch is one transaction per contractor sharing a single approval.

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages