BindCraft is the easiest way to get a useful binder design out of a generative protein model in 2026. It bundles BoltzGen, Boltz-2, and ProteinMPNN into a single pipeline with sensible defaults, so you do not have to run them separately or tune each stage by hand. This tutorial walks through the full workflow using SciRouter's managed API.
You will learn what BindCraft does internally, how to call it with a single HTTP request, how to interpret the ranked output, and what a reasonable follow-up wet-lab plan looks like.
What BindCraft actually does
Under the hood BindCraft is three models in a row:
- BoltzGen generates a candidate binder backbone conditioned on the target surface and the hotspot residues you specify.
- Boltz-2 co-folds the generated binder with the target to check whether the backbone is actually compatible with the intended interface. This replaces the old AlphaFold-based filtering step with a model that was explicitly trained on bound complexes.
- ProteinMPNN designs one or more sequences that are predicted to fold into the generated backbone, so you have something you can actually order as a gene fragment.
Each stage feeds into the next, and the final output is a ranked table of candidate sequences with interface confidence scores, predicted binding poses, and links to 3D structure files.
Step 1: Pick a target
For this tutorial we will use PD-L1 (PDB ID 5C3T), a well-studied immune checkpoint target. PD-L1 is a great choice for learning because it has a defined interface, plenty of published binders to compare against, and the structure is small enough to iterate quickly. If you want a longer walkthrough specifically on PD-L1, see our PD-L1 weekend project guide.
The hotspot residues for PD-L1 that touch the PD-1 interface are roughly residues 54, 56, 66, 115, 121, 123, and 124. Pick three or four of those and you have a target surface.
Step 2: Call BindCraft with curl
The simplest way to call BindCraft is a single POST to /v1/labs/binder/discover. Here is the whole request:
curl -X POST https://scirouter-gateway-production.up.railway.app/v1/labs/binder/discover \
-H "Authorization: Bearer sk-sci-YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"target_pdb_id": "5C3T",
"hotspot_residues": [54, 56, 66, 115, 121],
"num_designs": 40,
"min_length": 60,
"max_length": 100
}'The response is a job ID. BindCraft is async because a full run takes several minutes. You poll for status until the job finishes.
curl https://scirouter-gateway-production.up.railway.app/v1/labs/binder/discover/JOB_ID \
-H "Authorization: Bearer sk-sci-YOUR_API_KEY"Step 3: Call BindCraft with Python
If you prefer Python, the SciRouter SDK wraps all of the above into a single call that handles polling automatically.
from scirouter import SciRouter
client = SciRouter(api_key="sk-sci-YOUR_API_KEY")
result = client.labs.binder.discover(
target_pdb_id="5C3T",
hotspot_residues=[54, 56, 66, 115, 121],
num_designs=40,
min_length=60,
max_length=100,
)
for i, design in enumerate(result.ranked_candidates[:10]):
print(f"#{i+1} score={design.score:.3f} seq={design.sequence}")If the campaign succeeds, you will get back up to 40 candidates ranked by BindCraft's internal scoring function. The top 10 are usually the most worth ordering.
Step 4: Read the output
Each candidate in the response includes:
- A sequence that ProteinMPNN designed to fold into the BoltzGen backbone.
- A score between 0 and 1 that combines Boltz-2 interface confidence and binder self-consistency.
- A predicted binding pose in PDB format, so you can visualize the interface in PyMOL or ChimeraX.
- A set of per-residue interface contact annotations that tell you which residues are predicted to touch which hotspot.
As a rule of thumb, candidates with a BindCraft score above 0.7 are worth taking seriously. Below 0.5, the model itself is not confident and the wet-lab hit rate drops sharply.
Step 5: Pick winners and order
For a first campaign we recommend picking the top 8 to 12 unique candidates that span different backbone topologies. You do not want all alpha helix bundles or all beta sheet binders. Diversity helps if the model is systematically wrong about one topology class.
Order your chosen sequences as gene fragments from Twist, IDT, or GenScript, clone them into a standard expression vector, and test binding by biolayer interferometry or surface plasmon resonance. Most academic labs can run a 10-candidate campaign from design to first data in two or three weeks.
What to try after your first campaign
- Re-run with more designs (80 to 160) to give the ranker more to choose from.
- Swap the hotspot set to target a different epitope on the same protein.
- Add a length constraint that matches your expression host (E. coli, mammalian, cell-free).
- Compare BindCraft output against a parallel RFdiffusion run to diversify your candidate pool.
Bottom line
BindCraft is the shortest path between “I have a target” and “I have candidate sequences to order.” A single API call, a five-minute wait, and a ranked table of 40 possibilities. The rest is biology.