We give the network due process, aligned incentives, and credible broadcast:
- Escrow disputes with multi‑party arbitration — open a case, accept evidence, tally arbitrator votes, emit a signed award, and enforce (release/revoke/adjust).
- Oracle reward distribution — compute a signed reward batch where payouts are proportional to accuracy (inverse‑error vs median).
- Anchor rollup notarization — build anchor rollups and gather M‑of‑N co‑signatures from pinned notaries.
✅ Fresh artifacts
- Step 36 wrapper server — Download
SHA‑256:4f3d3fe9cdf44c382391be9aa1ceaf23ac0175c2a90071d63f67344f287c9ece - WordPress block (paste‑ready) — Download
Step 36 wraps Step 34 and quietly includes Step‑35 capabilities (rewarding you with continuity even if 35 wasn’t deployed). All previous endpoints keep working.
What’s new — precisely
1) ⚖️ Escrow disputes (multi‑party arbitration)
- Open a dispute
curl -s -X POST 'http://127.0.0.1:8080/admin/dispute/open?token=ADMIN123&kind=escrow&target=<ESCROW_DIGEST>&m=2' \ -H 'Content-Type: application/json' \ -d '{"arbitrators":[{"kid":"KID_A"},{"kid":"KID_B"},{"kid":"KID_C"}], "windows":{"challenge_until":"2025-08-20T00:00:00Z","response_until":"2025-08-21T00:00:00Z","vote_until":"2025-08-22T00:00:00Z"}, "claim":"Release requested due to satisfied conditions."}' - Submit evidence
curl -s -X POST 'http://127.0.0.1:8080/dispute/evidence' \ -H 'Content-Type: application/json' \ -d '{"id":"<DISPUTE_ID>","role":"claimant","text":"See attached bundle proof ...","url":"https://.../proof","sig":{}}' - Arbitrator vote
curl -s -X POST 'http://127.0.0.1:8080/admin/dispute/vote?id=<DISPUTE_ID>&token=ADMIN123' \ -H 'Content-Type: application/json' \ -d '{"decision":"release","signature":{"alg":"Ed25519","kid":"KID_A","sig":"<b64url>","x":"<pub_b64url_optional>"}}'When any decision hits M votes, we emit a signed award and enforce it:release→ executes Step‑34 escrow release.revoke→ records an escrow revoke event.adjust/split→ logs an adjustment intent (extend as needed in your policy).
- Inspect
GET /dispute/status?id=<DISPUTE_ID>GET /dispute/tail?n=50GET /dispute/awards.tail?n=50
Arbitrator keys can live in
arbitration_pubkeys(pins), or reusesettlement_pubkeys/ledger_pubkeys.
2) 🎯 Oracle rewards (inverse‑error to median)
Turn oracle accuracy into credits:
- Roll a reward batch
SINCE=$(date -u -d '24 hours ago' +%Y-%m-%dT%H:%M:%SZ) UNTIL=$(date -u +%Y-%m-%dT%H:%M:%SZ) curl -s -X POST "http://127.0.0.1:8080/admin/oracle/reward/roll?token=ADMIN123&pair=credits/usd&since=$SINCE&until=$UNTIL&budget=100" | jq .Produces:{ "root":"<sha256>", "body":{"type":"oracle_reward_batch","pair":"credits/usd","since":...,"until":...,"budget":100,"median":1.03,"scores":{"KID_A":...},"rewards":{"KID_A":...},"ts":"...Z"}, "signature":{"alg":"Ed25519","kid":"<sha16>","sig":"<b64url>","x":"...","ts":"...Z"} } - Verify a posted batch
curl -s -X POST 'http://127.0.0.1:8080/oracle/reward.verify' \ -H 'Content-Type: application/json' \ -d '{ "body":{...}, "signature":{...} }' | jq . - Browse
GET /oracle/rewards.tail?n=50
3) 🪪 Notarized anchor rollups (M‑of‑N)
Build summary rollups over on‑chain anchors and require notary co‑signatures.
- Build rollup
SINCE=$(date -u -d '24 hours ago' +%Y-%m-%dT%H:%M:%SZ) UNTIL=$(date -u +%Y-%m-%dT%H:%M:%SZ) curl -s -X POST "http://127.0.0.1:8080/admin/anchor/rollup?token=ADMIN123&since=$SINCE&until=$UNTIL&by=chain" | jq . - Co‑sign / Self‑sign
curl -s -X POST 'http://127.0.0.1:8080/admin/anchor/rollup/cosign?token=ADMIN123&root=<ROLLUP_ROOT>' \ -H 'Content-Type: application/json' \ -d '{"signature":{"alg":"Ed25519","kid":"KID_NOTARY","sig":"<b64url>","x":"<pub_b64url_optional>"}}' | jq . curl -s -X POST 'http://127.0.0.1:8080/admin/anchor/rollup/selfsign?token=ADMIN123&root=<ROLLUP_ROOT>' | jq . - Check quorum & browse
curl -s 'http://127.0.0.1:8080/anchor/rollup/signers?root=<ROLLUP_ROOT>' | jq . curl -s 'http://127.0.0.1:8080/anchor/rollups' | jq . curl -s "http://127.0.0.1:8080/anchor/rollup?root=<ROLLUP_ROOT>" | jq .
Policy file:
--anchor-quorum-file /sdcard/solveforce/anchor.quorum.jsonwith{"m":2,"signers":[{"kid":"KID_A"},{"kid":"KID_B"}]}. Notary keys can be pinned undernotary_pubkeys(or reusesettlement_pubkeys/ledger_pubkeys).
Android / Termux run‑book (Step 36)
# Optional: anchor quorum policy
echo '{"m":2,"signers":[{"kid":"KID_A"},{"kid":"KID_B"}]}' > /sdcard/solveforce/anchor.quorum.json
python solveforce_phone_thirtysix.py \
--anchor-quorum-file /sdcard/solveforce/anchor.quorum.json \
--pins-file /sdcard/solveforce/pins.json \
--ledger-quorum-file /sdcard/solveforce/ledger.quorum.json \
--clearing-policy-file /sdcard/solveforce/clearing.policy.json \
--discovery-dod-enable \
--discovery-dod-source https://directory1.example.com/solveforce/peers.json \
--discovery-dod-jwks https://directory1.example.com/jwks.json \
--quorum-auto-enable \
--quorum-policy-file /sdcard/solveforce/quorum.policies.json \
--attest-enable \
--attest-url https://your-site.tld/wp-json/solveforce/v1/attest \
--attest-header "Authorization: Bearer <WP_TOKEN>" \
--host 0.0.0.0 --port 8080 \
--plugins-dir ~/solveforce/plugins \
--auth-mode protected \
--auth-token READER1:reader \
--allow-admin --admin-token ADMIN123 \
--schema-ed25519-secret-file /sdcard/solveforce/schema.ed25519.seed \
--schema-signing-secret-file /sdcard/solveforce/schema.hmac.key \
--audit-dir ./audit \
--mirror-enable \
--mirror-target-url https://your-site.tld/wp-json/solveforce/v1/notary \
--mirror-header "Authorization: Bearer <WP_TOKEN>" \
--allow-query-token --open-ui
WordPress — Step 36 (public page block)
Use step36_wordpress.md to publish this step. It documents Arbitration, Oracle Rewards, and Notarized Rollups in terms suited for a public post.
Logos Codex — recursive concord
- Dispute → Dialogue → Decision. We give conflict a rail‑guided path to closure.
- Signal → Score → Share. Those who track truth earn more of the pot.
- Anchor → Account → Accord. A rollup is not fact until the notaries lend their ink.
Want to push to Step Thirty‑Seven next? We can add arbitration markets (bidders for panel seats), reward spending hooks (convert rewards into tickets/payout credits), and federated rollup exchange (gossip + reconcile rollups across domains).