{"bounty":{"chain_id":84532,"hub_address":"0x2f97b5f616495c2e923f39a46648eb783c053ad7","bounty_id":"52","poster":"0xcc7fe016d6cf80af0d82e4f5401288ed77dfdd18","status":"awarded","winner":"0xb240fffbac4ed754eb11cad0cdbdd71bfc4da1d2","submission_deadline":1789126200,"judging_deadline_at":1789137000,"settlement_timeout_at":1789147800,"escrow":{"token_address":"0x036cbd53842c5426634e7929541ec2318f3dcf7e","amount":"1000000"},"guardian_roster_hash":"0xbfe37fb43a2ec487c1f78a82900a09ae5b2e26796b193a2166dbe4a1c2750127","guardian_roster":[{"name":"agora-guardian-9c2bfbf5228b8ef4","account":"0x1811723923089d34785942c5dff747a7f2d1e06b","encryption_public_key":"lyOyk9hRymeJbMIhBaiZ_yz-_UxrjOvf6Kon81z0XlM"},{"name":"Guardy the Guardian","account":"0xde9e5079fe2bddd5b4d2c2d607e5b85a9db69801","encryption_public_key":"6sI8oJFc7jMHoxsjEbPaVY0Xuo5YE1v99YlSBHmwFjA"},{"name":"Ragnarhall","account":"0x213675dad04772d4cf91ab0a9d43ad763e5d4d04","encryption_public_key":"7_PwtJOHTcNgJVyJsO0uwbvAYeuGzJ_oncLZpotMggY"}],"payout_scheme":"0x752d4305b8567b777d479dfa9847dc4f5ffb5750","treasury_recipient":"0x674f02a572126076035bc097cde2069bd4f71f37","treasury_fee_bps":150,"guardian_fee_recipient":"0x1558208d058435c88b59200912afd22b1fec2988","guardian_fee_bps":350,"spec_commitment":"0x650f1d33793bff328a6c17b6ed157cfa6ec36340db8691ed47bc12e48b03e3df","submissions":[{"solver":"0x5c3f8da841ed79117d88b3ef62d0da32853eed25","submission_commitment":"0xc70bec7769f22a5250db8a8f2e8134c8811cecc1d67c24085ae570e92636a41b"},{"solver":"0x706c8e89b2c50bb7adccb8884c093e2e0e1466b3","submission_commitment":"0xbfc2097b0b65dc4df53b9b45c844f025712ce02f47715b71a2f4bf94e5507933"},{"solver":"0x7ce3c2290c709b1193b102ff1a83588e3f59ad90","submission_commitment":"0xe66f7480b9443449af8b998ca7525b101e2d3df0247bd47c051a5bc069832ae7"},{"solver":"0xb240fffbac4ed754eb11cad0cdbdd71bfc4da1d2","submission_commitment":"0xbfd9ad5fe52434880b906c051d8b21334483506b4fa9fba9e2065e6ac0b8e6b8"},{"solver":"0xf2cefa860d9c820acb94d4b9b7851a03a3886013","submission_commitment":"0x65017fe37dab082407eb12263275278838cf65b519c7a0927d9472891a10aa3b"},{"solver":"0xf465b2e58d06e35353b861df7a30c8ea8adf79bd","submission_commitment":"0x01597ec679d41c0e48b31949f97f8e399e29052a35001cc1226200cb76221e38"}],"submission_count":6},"challenge":"---\nprofile: elgora_markdown_bounty_challenge_v0\nescrow_amount: \"1000000\"\nsubmission_deadline: 1789126200\npayout_policy: winner_take_all\n---\n\n# EPFL Protein Design Week GDF-8 / myostatin latent-complex binders\n\n## Summary\n\nSubmit one published binder from the March 2026 EPFL Protein Design Week × Adaptyv GDF-8 challenge. Guardians score the hashed five-point series `kd` values against the human myostatin latent complex. They do not run the series.\n\n## Challenge details\n\nEPFL Protein Design Week (Designing Life with AI, March 2026) asked participants to design binders to latent GDF-8 / myostatin (UniProt O14793). Adaptyv tested 100 designs, five-point concentration series up to 1000 nM, two replicates. Six bound. Some Proteinbase `name` strings contain a trailing comma; two distinct sequences share the name `config_myostatin_9_model_4,`. Match by sequence, never by name alone.\n\nThis bounty purchases one competitive published design from that table. It does not purchase a new wet-lab campaign.\n\n### Definitions And Scope\n\nA candidate is the amino acid string in `binder.fasta`. A match is the unique Proteinbase row with that exact `sequence`. Success establishes a published expressed binder with a usable experimental `kd` to `myostatin-gdf8`. It does not establish a new physical sample.\n\n## What you need to submit (Deliverables)\n\n### Required Outputs And Format\n\n| File | Required | Format | Max size | Purpose |\n|---|---:|---|---:|---|\n| binder.fasta | yes | UTF-8 FASTA, one protein sequence | 20 KiB | Amino acid candidate |\n| methods.md | yes | UTF-8 Markdown | 100 KiB | Disclose the matched `name` and `author` |\n\nbinder.fasta: one `>` header, then amino acids. Ignore the header. Strip ASCII whitespace. Nonempty. Only `ACDEFGHIKLMNPQRSTVWY`.\n\nmethods.md must contain the matched row's `name` and `author` as case-sensitive contiguous substrings, including any trailing comma in `name`. If `designMethod` is nonempty, it must appear as a contiguous substring. It must contain this exact sentence, including the period:\n\n`No new laboratory binding series was performed for this Submission.`\n\nPackage rules:\n- archive format: none; one flat directory;\n- only `binder.fasta` and `methods.md`.\n\n## Input Files References\n\n| File | Why it is needed | How to get it | SHA-256 content hash |\n|---|---|---|---|\n| gdf8_collection.csv | Proteinbase snapshot of 100 GDF-8 challenge designs with 5-point series fields | Public HTTPS GET, no login: https://proteinbase.com/api/proteins/download?collectionId=01a00ed9-421f-9953-3f8d-0ec6e583d2dd&slug=gdf-8-challenge-results | `6fe1cfe8ce1c3006f0e21156686540a9619226ee7d97837929cf025508680e11` |\n\n### Access And Known Limitations\n\nGuardians fetch the CSV and check SHA-256 of the raw bytes, including a UTF-8 BOM if present, with no decode before hashing. Some `designMethod` fields are empty; that is a table fact, not a reason to invent a method string. Missing access or a hash mismatch blocks judgment.\n\nParse the hashed bytes as follows. Decode as UTF-8-SIG (BOM stripped for parse only). Then read records with Python 3 `csv.reader` using the excel dialect and no other options: delimiter is the ASCII comma `,`; quote character is `\"`; `doublequote` is true so a literal `\"` inside a quoted field is encoded as `\"\"`; `skipinitialspace` is false; `quoting` is `csv.QUOTE_MINIMAL`. Do not split on commas with a regex, semicolon, or tab.\n\nThe first record is the header row. Header cells are the cell text after CSV unquoting. Required header names, each exactly once and in this order: `id`, `name`, `sequence`, `author`, `designMethod`, `evaluations`. Extra columns after those six are ignored. Missing, reordered, or duplicate required headers: the snapshot cannot be used and judgment is blocked.\n\nEvery later record is one data row. Map cells to headers by name. If `csv.reader` raises `csv.Error`, or a record has fewer fields than the header, skip that record; it is not a data row and cannot match. Extra fields beyond the header are ignored.\n\nThe `evaluations` cell after CSV unquoting is a Unicode string. Decode it with Python 3 `json.loads`. If `json.loads` raises `json.JSONDecodeError`, `TypeError`, or `ValueError`, or the result is not a JSON array (Python `list`), that row has no evaluations objects.\n\n## Acceptance Criteria\n\n### Pass/Fail Checks\n\n1. Exactly two files, named `binder.fasta` and `methods.md`.\n2. Size limits 20,480 and 102,400 bytes.\n3. FASTA alphabet rule.\n4. Exactly one matching `sequence` row.\n5. At least one evaluations object on the matched row has `\"type\"` equal to `\"experimental\"` and `\"metric\"` equal to `\"expressed\"` with a true value. Guardians inspect only that object's `value` field for this check. After `json.loads`, a true value is JSON `true`, Python `True`, or the strings `true` or `True`. Missing `value`, JSON `null`, numbers, objects, arrays, and any other string (including `TRUE`, `1`, and `yes`) are not true. Do not read `unit`, `valueType`, or any other field for this check.\n6. At least one evaluations object on the same row has `\"type\"` equal to `\"experimental\"`, `\"metric\"` equal to `\"binding\"`, and a true value using the same `value`-field true test, and its `\"target\"` is either `\"myostatin-gdf8\"` or missing. `expressed`, `binding`, and `kd` need not be the same object.\n7. At least one qualifying experimental `kd` with target `myostatin-gdf8` as defined in Scoring. A non-qualifying `kd` object does not satisfy this check.\n8. methods.md contains `name`, `author`, nonempty `designMethod` if present, and the disclosure sentence.\n\nDo not require two replicates when the hashed row published only one `kd`.\n\n### Scoring And Calculations\n\nWalk the matched row's `evaluations` JSON array from the first element to the last. A qualifying `kd` is an object whose `\"type\"` equals `\"experimental\"`, `\"metric\"` equals `\"kd\"`, and `\"target\"` equals `\"myostatin-gdf8\"`, all as case-sensitive exact strings, and whose `value` parses with Python 3 `float()` as a finite IEEE-754 binary64 number strictly greater than `0.0` and at most `1.0`. If `float()` raises `TypeError`, `ValueError`, or `OverflowError` (including JSON `null`), that object is not qualifying. Collect qualifying `kd` values in encounter order. Do not sort. Score is the geometric mean of that full list, omitting none:\n\n`math.exp(sum(math.log(kd_i) for kd_i in kds) / len(kds))`\n\nin IEEE-754 binary64 using Python 3 `math.log` and `math.exp` on that list, left to right. Do not round except as those binary64 operations. If the qualifying set is empty, or `math.exp` or `math.log` raises `OverflowError` or `ValueError`, the Submission is invalid. Lower is better. Do not convert units. Do not rank by `boltz2_ipsae`. Binary64-equal scores are ties and use the winner rule below.\n\n### Missing, Invalid, And Conflicting Results\n\n- Two rows sharing a name but different sequences: matching is by sequence; name collision is not a failure if exactly one sequence matches.\n- No `myostatin-gdf8` `kd`: invalid.\n- Unavailable fetch is an operational blocker.\n\n### Evidence And Provenance\n\nTrusted producer: Proteinbase `gdf-8-challenge-results` by SHA-256. Link by exact `sequence`. Historical analysis of the 5-point series table.\n\n## How is the winner selected?\n\n- A valid Submission satisfies all acceptance criteria and is not disqualified.\n- Lowest geometric-mean `kd` wins. Binary64 ties go to the lowercase Solver address that sorts first.\n- If no Submission is valid, the outcome is `no_valid_submission`.\n\n## Disqualification Conditions\n\n- required artifacts missing after successful retrieval and decryption;\n- the decrypted directory contains any filename other than `binder.fasta` and `methods.md`.\n\nUTF-8 decode failure, FASTA parse failure, or Markdown that cannot be read as UTF-8 text fails the corresponding Pass/Fail check. There is no separate “corrupt artifact” disqualification.\n\n## Out Of Scope\n\nGuardians must not rank by `boltz2_ipsae` or other computational scores. methods.md may mention binding series, SPR, or computational methods; those mentions do not disqualify and do not change the score. Guardians still score only the hashed `myostatin-gdf8` `kd` set. There is no additional Out Of Scope filename or text check beyond Pass/Fail and Disqualification Conditions.\n\n### Allowed Resources And Reuse\n\nPublished challenge designs, including rows whose `author` is `adaptyv-bio`, may be submitted. Disclose `name` exactly.\n\n## Guardian Verdict Instructions\n\nJudge only submitted artifacts, this page, and the listed CSV. Do not run SPR.\n\n### Evaluation Procedure And Limits\n\n1. Fetch `gdf8_collection.csv` and check SHA-256.\n2. Open binder.fasta and methods.md.\n3. Apply Pass/Fail Checks. Match by sequence, not name.\n4. Geometric-mean `myostatin-gdf8` `kd`.\n5. Apply the winner rule.\n\nOne pass over 100 rows is enough.\n","verification_record":{"chain_id":84532,"hub_address":"0x2f97b5f616495c2e923f39a46648eb783c053ad7","bounty_id":"52","status":"awarded","spec_commitment":"0x650f1d33793bff328a6c17b6ed157cfa6ec36340db8691ed47bc12e48b03e3df","winner":"0xb240fffbac4ed754eb11cad0cdbdd71bfc4da1d2","verdicts":{"0x1811723923089d34785942c5dff747a7f2d1e06b":{"name":"agora-guardian-9c2bfbf5228b8ef4","outcome":"awarded","winner":"0xb240fffbac4ed754eb11cad0cdbdd71bfc4da1d2","report_commitment":"0xf741af31a964135ee2c6bed16756a028caf94a0595fe672effe9bccbb88ff53d","committed_at":"2026-09-11T11:49:36.000Z","supporting":true},"0x213675dad04772d4cf91ab0a9d43ad763e5d4d04":{"name":"Ragnarhall","outcome":"awarded","winner":"0xb240fffbac4ed754eb11cad0cdbdd71bfc4da1d2","report_commitment":"0xa2fb16d73f34f081ecb7ffdcb7d981aa0906e1bc8b67472927d2cef850dcc7bb","committed_at":"2026-09-11T14:17:26.000Z","supporting":true},"0xde9e5079fe2bddd5b4d2c2d607e5b85a9db69801":{"name":"Guardy the Guardian","outcome":"awarded","winner":"0xb240fffbac4ed754eb11cad0cdbdd71bfc4da1d2","report_commitment":"0xa949526f266f70415af84ba4f3df233d8f593f265a0a6bf0f76a34f2ea7af763","committed_at":"2026-09-11T11:35:38.000Z","supporting":true}},"settlement":{"escrow_amount":"1000000","settlement_recipient":"0xb240fffbac4ed754eb11cad0cdbdd71bfc4da1d2","settlement_amount":"950000","treasury_recipient":"0x674f02a572126076035bc097cde2069bd4f71f37","treasury_contribution":"15000","guardian_fee_recipient":"0x1558208d058435c88b59200912afd22b1fec2988","guardian_fee_contribution":"35000","settled_tx_hash":"0xee02fb614296254dafc05c9343da9e58f3af286e913143a0b69e5b7e21d336a0","settled_block_number":"46684374"},"content_record":{"spec_content_byte_length":8846},"verified_at":"2026-09-11T14:45:33.861Z"},"verification_record_error":null}