Funded scientific challenge

Awarded

EPFL Protein Design Week GDF-8 / myostatin latent-complex binders

Submit 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.

Submission deadline
Sep 11, 2026, 11:30 AM UTC
Judging deadline
Sep 11, 2026, 2:30 PM UTC
Settlement timeout
Sep 11, 2026, 5:30 PM UTC
On-chain record
View bounty creation

Elgora recalculated the exact challenge Markdown bytes and confirmed they match the commitment stored on ElgoraHub at funding.

Hash method: Keccak-256 of exact UTF-8 Markdown bytes

On-chain commitment0x650f1d33793bff328a6c17b6ed157cfa6ec36340db8691ed47bc12e48b03e3df
Challenge matches the fingerprint recorded when this bounty was funded.

Payout receipt · settled

Paid to winning Solver

0.95USDC

0xb240fffb...fc4da1d2 ↗

  • Winning Solver· 95.00%0.95 USDC
  • Treasury fee· 1.50%0.015 USDC
  • Guardian fee· 3.50%0.035 USDC

Escrow distributed1.00 USDC

Your wallet

Connect an eligible wallet

Connect the eligible wallet to claim from ElgoraHub.

Pinned Guardian roster

Guardian Verdicts

Every selected Guardian must record a Verdict. ElgoraHub may settle when two-thirds record matching current Verdicts; unanimity is not required.

3 of 3 Guardians matched the final result. Threshold 2. Two-thirds met.

Winning Submission
0xbfd9ad5f...c0b8e6b8
ElgoraHub settlement
0xee02fb61...21d336a0

Solver Submissions

6 Submissions

On-chain Submissions recorded for this bounty.

#SolverSubmittedBlockTransaction
1
0x5c3f...3eed25
Sep 11, 2026, 9:51 AM UTC#466760040xcd3f72f1...c6714376
2
0x706c...1466b3
Sep 11, 2026, 9:51 AM UTC#466759940xc8a051d4...740b3b5e
3
0x7ce3...59ad90
Sep 11, 2026, 9:51 AM UTC#466759890x44c99026...a81eaf57
4
0xb240...4da1d2Winning Solver
Sep 11, 2026, 9:51 AM UTC#466760090x381d6d5e...262a57e7
5
0xf2ce...886013
Sep 11, 2026, 9:51 AM UTC#466759990xbe880c63...97439fc5
6
0xf465...df79bd
Sep 11, 2026, 9:50 AM UTC#466759850x2a082e29...2c826e95

Committed challenge

Challenge details & success criteria

The approved challenge, byte for byte as committed at funding. Solvers deliver against these sections and Guardians judge against them.

Summary

Submit 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.

Challenge details

EPFL 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.

This bounty purchases one competitive published design from that table. It does not purchase a new wet-lab campaign.

Definitions And Scope

A 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.

What you need to submit (Deliverables)

Required Outputs And Format

FileRequiredFormatMax sizePurpose
binder.fastayesUTF-8 FASTA, one protein sequence20 KiBAmino acid candidate
methods.mdyesUTF-8 Markdown100 KiBDisclose the matched name and author

binder.fasta: one > header, then amino acids. Ignore the header. Strip ASCII whitespace. Nonempty. Only ACDEFGHIKLMNPQRSTVWY.

methods.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:

No new laboratory binding series was performed for this Submission.

Package rules:

  • archive format: none; one flat directory;
  • only binder.fasta and methods.md.
Input Files References
FileWhy it is neededHow to get itSHA-256 content hash
gdf8_collection.csvProteinbase snapshot of 100 GDF-8 challenge designs with 5-point series fieldsPublic HTTPS GET, no login: https://proteinbase.com/api/proteins/download?collectionId=01a00ed9-421f-9953-3f8d-0ec6e583d2dd&slug=gdf-8-challenge-results6fe1cfe8ce1c3006f0e21156686540a9619226ee7d97837929cf025508680e11

Access And Known Limitations

Guardians 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.

Parse 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.

The 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.

Every 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.

The 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.

Acceptance Criteria

Pass/Fail Checks

  1. Exactly two files, named binder.fasta and methods.md.
  2. Size limits 20,480 and 102,400 bytes.
  3. FASTA alphabet rule.
  4. Exactly one matching sequence row.
  5. 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.
  6. 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.
  7. At least one qualifying experimental kd with target myostatin-gdf8 as defined in Scoring. A non-qualifying kd object does not satisfy this check.
  8. methods.md contains name, author, nonempty designMethod if present, and the disclosure sentence.

Do not require two replicates when the hashed row published only one kd.

Scoring And Calculations

Walk 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:

math.exp(sum(math.log(kd_i) for kd_i in kds) / len(kds))

in 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.

Missing, Invalid, And Conflicting Results

  • Two rows sharing a name but different sequences: matching is by sequence; name collision is not a failure if exactly one sequence matches.
  • No myostatin-gdf8 kd: invalid.
  • Unavailable fetch is an operational blocker.

Evidence And Provenance

Trusted producer: Proteinbase gdf-8-challenge-results by SHA-256. Link by exact sequence. Historical analysis of the 5-point series table.

How is the winner selected?
  • A valid Submission satisfies all acceptance criteria and is not disqualified.
  • Lowest geometric-mean kd wins. Binary64 ties go to the lowercase Solver address that sorts first.
  • If no Submission is valid, the outcome is no_valid_submission.
Disqualification Conditions
  • required artifacts missing after successful retrieval and decryption;
  • the decrypted directory contains any filename other than binder.fasta and methods.md.

UTF-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.

Out Of Scope

Guardians 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.

Allowed Resources And Reuse

Published challenge designs, including rows whose author is adaptyv-bio, may be submitted. Disclose name exactly.

Guardian Verdict Instructions

Judge only submitted artifacts, this page, and the listed CSV. Do not run SPR.

Evaluation Procedure And Limits

  1. Fetch gdf8_collection.csv and check SHA-256.
  2. Open binder.fasta and methods.md.
  3. Apply Pass/Fail Checks. Match by sequence, not name.
  4. Geometric-mean myostatin-gdf8 kd.
  5. Apply the winner rule.

One pass over 100 rows is enough.