ArcSentry is a decentralized escrow protocol built on Arc Network. It allows two parties - a Client and a Specialist - to execute deals in a trustless environment without intermediaries.
Funds (USDC) are locked in a smart contract called a Vault. The Vault only releases funds when both parties agree, or when an admin arbitrator resolves a dispute. Neither party - nor ArcSentry itself - can unilaterally move funds once a vault is funded.
Quick facts
ChainArc Testnet (Chain ID: 5042002)
TokenUSDC (6 decimals)
Gas tokenUSDC (native on Arc)
Explorertestnet.arcscan.app
StatusTestnet - unaudited
How it Works
A vault moves through a defined lifecycle. Each stage has a specific set of actions available to the Client and Specialist.
01
Client creates the vault
The Client calls createVault() on the Factory contract, specifying the Specialist wallet, USDC amount, and a description of the deliverable. The vault is deployed as a standalone contract. Status: Draft.
02
Specialist accepts
The Specialist reviews the terms and calls acceptVault(). This commits them to the deal. No funds move at this stage. Status: Accepted.
03
Client funds
The Client approves the vault contract to spend their USDC, then calls fundVault(). USDC is transferred from the Client's wallet into the vault contract. Status: Funded.
04
Work is delivered
The Specialist completes the deliverable. They call requestRelease() to signal completion. Status: Release Requested.
05
Client approves
The Client reviews the work and calls releaseFunds(). USDC is transferred to the Specialist. Status: Completed.
Vault States
Every vault exists in one of eight states at any given time.
Status
Description
Draft
Vault created, waiting for Specialist to accept. No funds at risk.
Accepted
Specialist accepted. Waiting for Client to fund.
Funded
USDC locked in vault. Work in progress.
Release Requested
Specialist signaled completion. Waiting for Client to approve.
Disputed
Either party raised a dispute. Funds frozen pending admin review.
Completed
Client released funds. USDC sent to Specialist. Terminal state.
Refunded
Specialist approved refund. USDC returned to Client. Terminal state.
Cancelled
Cancelled before funding. No funds moved. Terminal state.
Actions Reference
The following on-chain actions are available to each party, depending on the vault state.
acceptVault()Specialistwhen: Draft
Commit to the deal terms. Transitions vault to Accepted. No gas cost beyond the transaction fee.
fundVault()Clientwhen: Accepted
Lock USDC in the vault. Requires prior ERC-20 approval for the vault contract to spend the exact USDC amount. Transitions to Funded.
requestRelease()Specialistwhen: Funded
Signal that the work has been delivered and request payment. Transitions to Release Requested.
releaseFunds()Clientwhen: Release Requested or Disputed
Approve and release USDC to the Specialist. Irreversible. Transitions to Completed.
requestRefund()Clientwhen: Funded, Release Requested, or Disputed
Signal a refund request. Emits an event but does not change vault status. Specialist must call approveRefund() to complete it.
approveRefund()Specialistwhen: Funded, Release Requested, or Disputed
Approve the refund. USDC is returned to the Client. Transitions to Refunded.
dispute()Either partywhen: Funded or Release Requested
Escalate to admin arbitration. Funds are frozen. Transitions to Disputed.
cancelVault()Either partywhen: Draft or Accepted
Cancel the deal before any funds are locked. Transitions to Cancelled. Only available before Funded state.
resolveDispute(winner)Admin onlywhen: Disputed
Resolve a dispute. Pass 0 to refund Client, 1 to release to Specialist.
Dispute Resolution
Either party can raise a dispute on any funded vault. Once raised, the vault enters Disputed state and funds are frozen - no party can unilaterally move them.
How disputes work
An admin arbitrator reviews the deal terms, description, and any evidence provided by both parties. The arbitrator calls resolveDispute() with either 0 (refund Client) or 1 (release to Specialist).
Consensual resolution during a dispute
Parties are encouraged to resolve disputes between themselves. During Disputed state, the Client can still call releaseFunds() and the Specialist can still call requestRelease(). The Specialist can also call approveRefund() if the Client has signaled a refund. Consensual resolution is faster and does not require admin involvement.
Important: Raising a dispute does not guarantee a refund. The arbitrator decides based on the evidence. Frivolous disputes waste everyone\'s time.
Fees and Gas
ArcSentry charges no platform fees during testnet. All costs are limited to Arc Network gas fees, which are paid in USDC.
Platform fee0% during testnet
Gas tokenUSDC (native on Arc)
Typical gas per txUnder $0.01 USDC
Approve + FundTwo transactions required
Mainnet feesTo be announced before launch
Security
Audit status
The ArcSentry smart contracts are currently unaudited. This is a testnet deployment intended for testing and demonstration only. Do not use with real funds or on mainnet.
Non-custodial design
ArcSentry never holds user funds. Every USDC is locked in the individual vault contract. The ArcSentry team cannot access, freeze, or move vault funds except through the admin dispute resolution function, which only applies to vaults in Disputed state.
Contract verification
All deployed contracts are verified on the Arcscan block explorer. You can read the full contract source code directly on-chain.
Arc Network is an EVM-compatible Layer 1 blockchain built by Circle, the company behind USDC. On Arc, USDC is the native gas token - there is no separate gas coin.
This design means every transaction on Arc Network costs a small amount of USDC, making gas costs predictable and denominated in a stable currency. For ArcSentry users, this means vault creation, funding, releasing, and refunding all cost fractions of a cent in USDC.
Chain ID
5042002
RPC
rpc.testnet.arc.network
Explorer
testnet.arcscan.app
Faucet
faucet.circle.com
FAQ
Can ArcSentry take my funds?
No. ArcSentry cannot move vault funds unilaterally. The only admin function is resolveDispute(), which only applies to vaults in Disputed state and only sends funds to one of the two parties.
What if the Specialist disappears after being accepted but before the Client funds?
Either party can cancel the vault before it is funded. No funds are at risk in Draft or Accepted states.
What if the Client refuses to release after work is delivered?
The Specialist can raise a dispute. The admin arbitrator will review the evidence and resolve in favor of the appropriate party.
Can I create a vault for any amount of USDC?
Yes, as long as the amount is greater than zero and you have sufficient USDC balance to fund it.
What wallet should I use?
Rabby or MetaMask. ArcSentry prompts your wallet to add Arc Testnet automatically on first connection.
Where do I get testnet USDC?
Use the Circle USDC testnet faucet at faucet.circle.com. Select the Arc Network option.
Ready to try it?
ArcSentry is live on Arc Testnet. No fees, no risk - testnet USDC only.