How a pocket is chosen
One pocket a day, chosen by a published rule and never by hand. The rule runs in verifier/targets.py, the same file the keeper calls, and it can be run by anyone against the same public APIs.
The steps
The pocket ligand is picked from the structure itself rather than from an annotation service, because the binding-site endpoints we tried were not answering. The blocklist covers the usual buffer and cryoprotectant components (ethylene glycol, glycerol, sugars, sulfate, phosphate, acetate, the common ions and detergents), and the chosen component id is printed on the pocket's page so anyone can check the choice.
What gets published
The target file holds the PDB id, the chain, the component id and its SMILES, the box, the receptor sha256, the reference score with its five re-docks, the margin, the thresholds, the pinned settings and the bounty. Its own sha256 is the target hash, and it goes on chain in the open record: medf:open:PSAP-4V2O:<hash>:<escrow>. Change one byte of the file and every hash downstream stops matching.
curl -s https://medfrontier.xyz/api/v1/targets/PSAP-4V2O | jq '.target | {pdb, chain, box, receptor_sha256, reference}'