Claims vs COA / Onyx Biolabs
Onyx Biolabs: claims vs COA
Website claim: 99% purity. “…ts search $ 0.00 0 Cart Welcome Offer • 25% Off First Order ≥99% Purity Standards Analytical Purity. Uncompromising Quality. Settin…” Source (read 2026-09-25)
73
certificates read
34 / 38
vials outside ±3% of label
16
beyond ±10% (major)
0 / 73
below advertised purity
| Product | Label → measured | Purity | Main impurity | Lab | COA |
|---|---|---|---|---|---|
| Adamax | 10mg → 11.02mg Overfilled +10.2% | 99.665% Meets 99% | 0.33% not itemised | — | Open |
| BPC-157/TB-500 | BPC-157: 10mg → 11.68mg Overfilled +16.8% TB-500: 10mg → 10.77mg Over label +7.7% | 99.787% Meets 99% | 0.21% not itemised | — | Open |
| BPC-157/TB-500 | BPC-157: 5mg → 5.74mg Overfilled +14.8% TB-500: 5mg → 5.76mg Overfilled +15.2% | 99.689% Meets 99% | 0.31% not itemised | — | Open |
| BPC-157/TB-500 | BPC-157: 5mg → 5.16mg Over label +3.2% TB-500: 5mg → 5.73mg Overfilled +14.6% | 99.777% Meets 99% | 0.22% not itemised | — | Open |
| BPC-157/TB-500 | BPC-157: 10mg → 11.33mg Overfilled +13.3% TB-500: 10mg → 11.54mg Overfilled +15.4% | 99.716% Meets 99% | 0.28% not itemised | — | Open |
| CJC-1295 (No DAC)/Ipamorelin | Ipamorelin: 5mg → 5.78mg Overfilled +15.6% CJC-1295 (No DAC): 5mg → 5.78mg Overfilled +15.6% | 99.963% Meets 99% | 0.04% not itemised | — | Open |
| CJC-1295 (No DAC)/Ipamorelin | Ipamorelin: 5mg → 5.83mg Overfilled +16.6% CJC-1295 (No DAC): 5mg → 5.71mg Overfilled +14.2% | 99.639% Meets 99% | 0.36% not itemised | — | Open |
| Glow | BPC-157: 10mg → 11.51mg Overfilled +15.1% TB-500: 10mg → 11.37mg Overfilled +13.7% GHK-Cu: 50mg → 54.64mg Over label +9.3% | 99.714% Meets 99% | 0.29% not itemised | — | Open |
| Klow | TB-500: 10mg → 11.69mg Overfilled +16.9% BPC-157: 10mg → 11.72mg Overfilled +17.2% KPV: 10mg → 11.99mg Overfilled +19.9% GHK-Cu: 50mg → 54.42mg Over label +8.8% | 99.882% Meets 99% | 0.12% not itemised | — | Open |
| PT-141 | 10mg → 11.57mg Overfilled +15.7% | 99.635% Meets 99% | 0.36% not itemised | — | Open |
| Retatrutide | 30mg → 33.31mg Overfilled +11.0% | 99.563% Meets 99% | 0.44% not itemised | — | Open |
| Retatrutide | 15mg → 16.8mg Overfilled +12.0% | 99.648% Meets 99% | 0.35% not itemised | — | Open |
| Retatrutide 15mg | 15mg → 19.8mg Overfilled +32.0% | 99.308% Meets 99% | 0.69% not itemised | freedom-diagnostics | Open |
| Tesamorelin | 20mg → 26.39mg Overfilled +32.0% | 99.608% Meets 99% | 0.39% not itemised | — | Open |
| Tesamorelin 5mg | 5mg → 6.17mg Overfilled +23.4% | 99.275% Meets 99% | 0.72% not itemised | freedom-diagnostics | Open |
| Tirzepatide | 30mg → 33.24mg Overfilled +10.8% | 99.6% Meets 99% | 0.40% not itemised | — | Open |
| 5-Amino-1MQ | 50mg → 47.2mg Under label -5.6% | 99.553% Meets 99% | 0.45% not itemised | — | Open |
| 5-Amino-1MQ | 50mg → 51.88mg Over label +3.8% | 99.369% Meets 99% | 0.63% not itemised | — | Open |
| BPC-157/TB-500 | BPC-157: 10mg → 9.84mg On label -1.6% TB-500: 10mg → 10.97mg Over label +9.7% | 99.719% Meets 99% | 0.28% not itemised | — | Open |
| Epithalon | 50mg → 53.73mg Over label +7.5% | 99.68% Meets 99% | 0.32% not itemised | — | Open |
| GHK-CU 100mg | 100mg → 90.48mg Under label -9.5% | 99.923% Meets 99% | 0.08% not itemised | freedom-diagnostics | Open |
| GHK-Cu | 100mg → 108.83mg Over label +8.8% | 99.647% Meets 99% | 0.35% not itemised | — | Open |
| Kisspeptin-10 | 10mg → 9.27mg Under label -7.3% | 99.517% Meets 99% | 0.48% not itemised | — | Open |
| OBL-2 TRZ | 30mg → 32.14mg Over label +7.1% | 99.233% Meets 99% | 0.77% not itemised | — | Open |
| OBL-2 TRZ | 60mg → 63.89mg Over label +6.5% | 99.727% Meets 99% | 0.27% not itemised | — | Open |
| Retatrutide | 40mg → 42.3mg Over label +5.8% | 99.595% Meets 99% | 0.41% not itemised | — | Open |
| Retatrutide | 40mg → 42.53mg Over label +6.3% | 99.569% Meets 99% | 0.43% not itemised | — | Open |
| Retatrutide | 60mg → 63.37mg Over label +5.6% | 99.59% Meets 99% | 0.41% not itemised | — | Open |
| SS-31 | 50mg → 51.52mg Over label +3.0% | 99.32% Meets 99% | 0.68% not itemised | — | Open |
| SS-31 | 10mg → 10.7mg Over label +7.0% | 99.459% Meets 99% | 0.54% not itemised | — | Open |
| Semaglutide | 15mg → 15.53mg Over label +3.5% | 99.642% Meets 99% | 0.36% not itemised | — | Open |
| Semax | 10mg → 10.52mg Over label +5.2% | 99.701% Meets 99% | 0.30% not itemised | — | Open |
| Tirzepatide | 15mg → 15.59mg Over label +3.9% | 99.747% Meets 99% | 0.25% not itemised | — | Open |
| Tirzepatide | 60mg → 58.06mg Under label -3.2% | 99.774% Meets 99% | 0.23% not itemised | — | Open |
| BPC-157 | Not measured | 99.853% Meets 99% | 0.15% not itemised | — | Open |
| BPC-157 | Not measured | 99.816% Meets 99% | 0.18% not itemised | — | Open |
| BPC-157 | — → 0.58mg Not checked | 99.654% Meets 99% | 0.35% not itemised | — | Open |
| Cagrilintide | 10mg → 10.16mg On label +1.6% | 99.639% Meets 99% | 0.36% not itemised | — | Open |
| DSIP | 10mg → 10.16mg On label +1.6% | 99.464% Meets 99% | 0.54% not itemised | — | Open |
| GHK-Cu | Not measured | 99.978% Meets 99% | 0.02% not itemised | — | Open |
| GHK-Cu | Not measured | 99.951% Meets 99% | 0.05% not itemised | — | Open |
| Glutathione | Not measured | 99.644% Meets 99% | 0.36% not itemised | — | Open |
| Glutathione | 1500mg → 1520.06mg On label +1.3% | 99.331% Meets 99% | 0.67% not itemised | — | Open |
| IGF-1 LR3 | Not measured | 99.923% Meets 99% | 0.08% not itemised | — | Open |
| Ipamorelin | Not measured | 99.938% Meets 99% | 0.06% not itemised | — | Open |
| KPV | Not measured | 99.957% Meets 99% | 0.04% not itemised | — | Open |
| KPV | — → 0.31mg Not checked | 99.678% Meets 99% | 0.32% not itemised | — | Open |
| Kisspeptin-10 | Not measured | 99.899% Meets 99% | 0.10% not itemised | — | Open |
| MOTS-c | Not measured | 99.933% Meets 99% | 0.07% not itemised | — | Open |
| MOTS-c | Not measured | 99.924% Meets 99% | 0.08% not itemised | — | Open |
| Melanotan-2 | Not measured | 99.896% Meets 99% | 0.10% not itemised | — | Open |
| NAD+ | Not measured | 99.272% Meets 99% | 0.73% not itemised | — | Open |
| NAD+ | 500mg → 488.47mg On label -2.3% | 99.549% Meets 99% | 0.45% not itemised | — | Open |
| PT-141 | Not measured | 99.916% Meets 99% | 0.08% not itemised | — | Open |
| Retatrutide | Not measured | 99.946% Meets 99% | 0.05% not itemised | — | Open |
| Retatrutide | Not measured | 99.942% Meets 99% | 0.06% not itemised | — | Open |
| Retatrutide | Not measured | 99.976% Meets 99% | 0.02% not itemised | — | Open |
| Retatrutide | Not measured | 99.947% Meets 99% | 0.05% not itemised | — | Open |
| Retatrutide | Not measured | 99.948% Meets 99% | 0.05% not itemised | — | Open |
| Retatrutide | Not measured | 99.866% Meets 99% | 0.13% not itemised | — | Open |
| Retatrutide | Not measured | 99.368% Meets 99% | 0.63% not itemised | — | Open |
| Retatrutide | Not measured | 99.664% Meets 99% | 0.34% not itemised | — | Open |
| Retatrutide | Not measured | 99.893% Meets 99% | 0.11% not itemised | — | Open |
| Retatrutide | Not measured | 99.654% Meets 99% | 0.35% not itemised | — | Open |
| Retatrutide | Not measured | 99.491% Meets 99% | 0.51% not itemised | — | Open |
| Selank | Not measured | 99.934% Meets 99% | 0.07% not itemised | — | Open |
| Selank | Not measured | 99.948% Meets 99% | 0.05% not itemised | — | Open |
| Semax | Not measured | 99.942% Meets 99% | 0.06% not itemised | — | Open |
| Tesamorelin | Not measured | 99.852% Meets 99% | 0.15% not itemised | — | Open |
| Tesamorelin | Not measured | 99.943% Meets 99% | 0.06% not itemised | — | Open |
| Tirzepatide | Not measured | 99.223% Meets 99% | 0.78% not itemised | — | Open |
| Tirzepatide | Not measured | 99.136% Meets 99% | 0.86% not itemised | — | Open |
| VIP | Not measured | 99.796% Meets 99% | 0.20% not itemised | — | Open |
How this is checked
- Vial content. Measured net peptide content against the size on the label. Within ±3% is on label, 3–10% is off label, beyond ±10% is a major deviation (under- or overfilled). When a certificate weighs several vials of the batch, the vial farthest from the label is the one judged, and with several purity results the lowest counts. Blends are only checked when the certificate lists each component.
- Purity. HPLC purity on each certificate against the purity the supplier promises site-wide on its own website. Up to 1 point below the claim is amber, more than that is red. Only a direct promise counts (“99%+ purity guaranteed”); explanations of what purity means, one product's figure and page code are not treated as a claim. A certificate that reports only a bound (“>99%”) is judged only when the bound meets the claim, and a specification line is never read as a result.
- Whose certificate. A certificate is only read once our client-identity review has looked at it, and one issued to a different company is left out — whether the automatic check or a manual review found it. A certificate issued to the company that runs the supplier's own website counts as the supplier's. A file hosted on another supplier's website is not counted for this one. The same rules decide which certificates appear on supplier and product pages. Only peptide certificates are read: bacteriostatic water, acetic acid and other diluents are left out, and so are product data sheets, which state a specification rather than a batch result.
- Main impurity. Shown when the certificate itemises it: a named impurity (TFA, deletion sequence, oxidation…) or the largest secondary peak in the HPLC peak table. Most certificates report only a purity figure, so the rest of the sample is not itemised.
- Trust Score. These checks are 10 of the 25 Transparency points: vial content 7 (full credit within ±3%, half up to ±10%, none beyond, over- and underfilled alike), purity 3 (98% is the bar when a supplier advertises no figure). Fewer than 5 readable results gives half credit rather than a guess.
- These are the supplier's own published certificates, read automatically from the PDF or image. Janoshik results tables are read twice from the image, cell by cell, and a figure the two readings disagree on is left out rather than guessed. A certificate covers one batch on one date. We have not tested these batches ourselves.