Integration docs
Contract: InkwellBounty (contracts/inkwell_bounty.py) on StudioNet. Chain ID 61999, RPC https://studio.genlayer.com/api.
Writes
create_bounty(title, task_type, brief, source_url, lang_from, lang_to, requirements_json, deadline, claim_window)payable — locks reward.claim_bounty(bounty_id)— one active claim; poster cannot claim own.submit_work(bounty_id, content, is_url)— only in CLAIMED/NEEDS_FIXES; max 2 per claim.request_review(bounty_id, submission_id)— poster or claimant only; RETRY/UNREADABLE do not consume an attempt.appeal(bounty_id, submission_id)payable — 0.001 GEN bond, 24h window. Poster appeals PASS; writer appeals FIX/FAIL. Uphold forfeits, flip returns.payout(bounty_id)— poster may settle immediately; anyone after the 24h appeal window. Pays the bound accepted writer, never the current claimant.release_expired_claim / refund_expired / cancel_bounty— blocked while a review or appeal window is open.
Views
get_bounty, list_bounties(status, type, limit, offset), get_submission, get_activity, get_stats, get_profile- Bounty views include
claim_seq, submission_count, accepted_submission_id, accepted_writer, accepted_at; stats include the version and appeal limits.
Frontend must call through src/lib/genlayer.ts only. zod-validate every contract response. See repo docs/ARCHITECTURE.md.