Walkthrough 1: Freelancer Payment
An end-to-end example of vericoding with ICME PreFlight and Certora.
Two rule sets from one policy
Step 1: Compile the guardrail rules
curl -s -N -X POST https://api.icme.io/v1/makeRules \
-H 'Content-Type: application/json' \
-H "X-API-Key: $ICME_API_KEY" \
-d '{
"policy": "1. Only the client agent can release payment to the freelancer.\n2. Only the client agent can file a dispute.\n3. Only the freelancer agent can submit completed work.\n4. If a dispute is active, no agent can release payment.\n5. If more than 14 days have passed since the payment was deposited, no agent can file a dispute.\n6. No agent can release payment to any address other than the designated freelancer.\n7. No agent can withdraw more than the original payment amount."
}'Step 2: Compile the contract rules
Step 3: Test the guardrails
Step 4: Generate the verified smart contract
The generated contract
The formal verification spec
Why two rule sets?
Where the ZK proofs fit
Try it yourself
Last updated

