How to Test Heroin and Pain Pills for Fentanyl and Adulterants (2026 guide)
Testing heroin or pills? Strips first
No reagent can detect fentanyl, nitazenes or xylazine. Those need test strips, and they need different strips for each.
Most of the risk in the illicit opioid supply comes from things a reagent cannot see. Fentanyl, its analogs, nitazenes and xylazine all produce no color change at the concentrations they show up in, so the reagents on this page tell you what the bulk of your sample is, and strips tell you what's hiding in it. Testing gives you information you wouldn't otherwise have. It cannot make a sample safe, and no test rules out every risk.
Test for fentanyl, nitazenes and xylazine first
Reagents cannot see any of the following. Each needs its own strip, and one strip does not cover another.
| Adulterant | Why it matters | What detects it |
|---|---|---|
| Fentanyl and analogs | The dominant cause of opioid overdose deaths. Unevenly distributed through a batch | FentKit — fentanyl test strips |
| Nitazenes | Up to roughly 1000 times more potent than morphine, some variants stronger than fentanyl. Increasingly sold as heroin or pressed into counterfeit opioid pills. May need more naloxone than a fentanyl overdose to reverse | Nitazene test strips — fentanyl strips do not detect these. See how to test for nitazenes |
| Xylazine ("tranq") | A veterinary sedative, not an opioid — naloxone will not reverse it. Deepens sedation and slows breathing alongside an opioid, and causes severe skin ulcers, abscesses and necrosis | Xyl test strips. See how to test for xylazine |
A reader who follows a fentanyl-strip-only routine is not testing for nitazenes at all. Nitazenes have been rising in the illicit supply since 2019, are being sold as heroin and pressed into counterfeit pills, and in reported overdoses people generally had no idea they were exposed. Our nitazene strips detect nitazene at and above 2000 ng/mL. If you test opioids, test for nitazenes.
- Not every analog is detected. Fentanyl strips cover a broad range of fentanyl analogs, but some analogs and some novel synthetic opioids read negative.
- A negative only describes the portion you tested. Fentanyl is unevenly distributed through powder and through pressed pills, so one clean strip does not clear the rest of the batch. Test more than one spot.
- Dilution decides the result. Any drug can push a strip toward a false positive if it's over-concentrated, or a false negative if it's over-diluted. Follow the ratio in the instructions rather than eyeballing it.
- Xyl strips are for opioids only. Where xylazine has turned up in cocaine or methamphetamine it has consistently been alongside fentanyl, so for non-opioids screening for fentanyl is the priority.
- A negative on all three strips is not a green light. It narrows things down. It does not tell you how strong what's left actually is.
What color should heroin turn?
Marquis is the primary test. Opiates give a strong purple — but so do all the other opiates, so read this as "consistent with an opiate," not as identifying heroin. Use a fresh sample of the drug for each reagent, in bright neutral daylight.
| Reagent | Color Reaction | When to read | What it means | What it does not rule out |
|---|---|---|---|---|
| Marquis — heroin | Deep purple, often reading purple-red then darkening toward purple-black | Within 10 seconds; discard the reading after about 40 seconds | Consistent with an opiate being the dominant compound | Codeine and morphine give the same purple. Fentanyl, nitazenes and xylazine produce no color at all and are completely invisible here |
| Marquis — codeine | Very dark purple | Within 10 seconds | Indistinguishable from heroin on Marquis | Nothing — Marquis cannot separate heroin, codeine and morphine. Anything claiming otherwise is wrong |
| Marquis — morphine | Deep purple-red | Within 10 seconds | Indistinguishable from heroin on Marquis | Same as above |
| Marquis — oxycodone | A range: no reaction, through light grey, to a dusky or violet purple | Within 40 seconds | Much weaker and paler than heroin. Acetaminophen in the pill makes a non-reaction more likely | Counterfeit pressed pills routinely contain fentanyl and read exactly like this. A "normal-looking" oxy reaction is not reassurance |
| Marquis — any bright, differently colored reaction | Orange, brown, yellow, green or bright red | Within 40 seconds | The dominant compound is not an opiate — an immediate red flag | Do not consume. Aspirin gives pink to deep red, DXM slow grey-black, amphetamines orange to brown |
| Mecke — heroin | Deep blue-green, darkening toward blue-black | Within 40 seconds | A concordant reaction: it agrees with Marquis that an opiate is present | Codeine and morphine give very dark blue-green as well. Agreement between reagents does not identify heroin specifically |
| Mecke — codeine or morphine | Very dark blue-green | Within 40 seconds | Indistinguishable from heroin on Mecke | Nothing |
| Mecke — oxycodone | A range: no reaction, through light blue-grey; sometimes a faint pink with acetaminophen present | Within 40 seconds | Weak and variable. Not a useful confirmation | Fentanyl in a counterfeit pill. Use strips |
| Froehde — heroin | Deep purple-red, then moving toward green | Watch the whole 40 seconds — the progression matters more than any single moment | A third concordant reaction consistent with an opiate | Morphine gives deep purple-red moving to slate; codeine gives very dark green moving to red-brown. These hue-and-timing differences are too subtle to rely on for identification |
| Froehde — acetaminophen | Sky blue | Within 40 seconds | Acetaminophen is present, which is common in both genuine and counterfeit pills | A sky-blue Froehde can dominate the plate even when several other things are in the sample, masking them |
| Any reagent — fentanyl or its analogs | No color change whatsoever | Never appears | Spot kits cannot detect fentanyl. There is no color to look for, at any read time | Only fentanyl test strips can screen for it |
| Any reagent — nitazenes | No usable color change | Never appears | Reagents cannot detect nitazenes, and neither can fentanyl strips | Needs separate nitazene strips |
| Any reagent — xylazine | No usable color change | Never appears | Reagents cannot detect xylazine, and fentanyl strips do not detect it either | Needs Xyl test strips |
Heroin, morphine and codeine all sit in the same purple range on Marquis and the same dark blue-green range on Mecke. Froehde's colors differ slightly in hue and in how they change over time, but not reliably enough to identify one opiate over another by eye.
What three concordant reactions give you is confidence that an opiate is the dominant compound in the sample. That is genuinely useful — it rules out a lot of things. It is not an identification of heroin, and it says nothing about potency, which is the variable that actually kills people. Separating one opiate from another needs lab analysis.
Marquis reagent color guide — the primary reference for opiates. Also available as the printed booklet in every Marquis Spot Test Kit, or as a web page at Marquis reaction booklet.
- Place a pinhead of sample — roughly a few milligrams — on a clean white ceramic plate. For pills, scrape powder from the side or interior with a knife point rather than testing the coating.
- Add one drop of reagent from above. Never touch the bottle tip to the sample; that contaminates the whole bottle.
- Watch from the instant the drop lands. Note the starting color, how it changes, and how long it takes.
- Read within about 40 seconds. After that the reaction keeps changing and is no longer meaningful.
- Use a fresh sample of the drug for each reagent. Do not add a second reagent to a spot you have already tested.
- Neutralise the plate with baking soda, then wash with soap and water.
None of these three is a two-part reagent — one bottle, one drop each.
- They cannot detect fentanyl, nitazenes or xylazine. These are active in microgram amounts and produce no color. This is the single biggest limitation on this page.
- They cannot tell one opiate from another. See the callout above.
- They say nothing about potency. Two bags giving identical purple can differ enormously in strength.
- They show what's most abundant. A strong purple from an opiate will overshadow a lighter reaction from a minor adulterant.
- Acetaminophen distorts pill results. It gives sky blue on Froehde and a reddish-purple on Liebermann, and it can dominate the final color of a pressed pill so that the blend can't be read at all.
- Black tar and sticky samples are hard to test. Reagent contact with the surface of a tar sample is poor and results are often faint or ambiguous.
Mecke reagent color guide — deep blue-green for opiates. Printed booklet included with the Mecke Spot Test Kit.
Froehde reagent color guide — watch the progression, not just the endpoint. Printed booklet included with the Froehde Spot Test Kit.
Cross-reference with more reagents
The Heroin & Pain Pills Spot Kit Package costs less than buying each kit individually.
- 10 × fentanyl test strips
- Enough to check several parts of your supply. The most important item in the box.
- Marquis reagent
- The primary test. Deep purple to purple-black is consistent with an opiate. Any bright, differently colored reaction is a red flag.
- Mecke reagent
- Deep blue-green darkening toward blue-black for opiates. A concordant second reading.
- Froehde reagent
- Deep purple-red moving toward green for heroin. Also gives a distinctive sky blue with acetaminophen, which is useful when you're testing pills.
Nitazene and Xyl strips are sold separately. Nothing in this package can detect fentanyl, nitazenes or xylazine except the strips.
Other things found in the illicit opioid supply
| Substance | Category | How to screen for it |
|---|---|---|
| Fentanyl and analogs | Synthetic opioid | Fentanyl test strips only — no reagent color exists |
| Nitazenes | Synthetic opioid | Nitazene strips only — fentanyl strips do not cover them |
| Xylazine | Veterinary sedative, not opioid | Xyl strips only |
| Codeine, morphine | Opiates | Marquis, Mecke and Froehde all react in the same ranges as heroin. Reagents cannot separate them — lab analysis required |
| Acetaminophen | Analgesic, very common in pills | Froehde (sky blue). It distorts other reagents' final colors |
| DXM | Dissociative cough suppressant | Marquis timing — a slow grey-to-black over roughly 15–30 seconds, often smoking, rather than an immediate purple |
| O-desmethyltramadol | Opioid metabolite sold as a research chemical | Cross-reference across Marquis, Mecke and Froehde; confirmation needs lab analysis |
| Aspirin | Analgesic cut | Marquis (pink to deep red) and Froehde (greyish purple or blue to purple) |
| Benzodiazepines, including novel ones | Sedatives, common in counterfeit pills | Not reliably detectable with these reagents — lab analysis |
| Quinine, caffeine, mannitol, inert cuts | Bulking agents | No reliable reagent test. A separation kit or lab analysis |
There's no purity test for heroin
We make QTest purity kits for several substances, but not for heroin or pharmaceutical opioids, so there's no way to read a percentage at home. That matters, because potency is the variable most likely to cause an overdose and it's exactly the thing none of the tests on this page measure.
The closest available option is a separation kit. Our Juno Separation Package includes the Marquis, Mecke and Froehde reagents and can separate a mixture so you can look at each component individually, which gives an approximate sense of how much of each is present. The Curiosity (Pro Level) Separation Package includes every reagent we sell. Fentanyl, nitazene and Xyl strips still have to be bought separately. Instructions are on the Skylab separation kit basics page.
For an actual answer on both identity and quantity, use our lab testing service.
Which test do I need?
The most important test. Read at five minutes. No reagent can do this.
Shop FentKitFentanyl strips miss these entirely. Needs its own strip.
Shop nitazene stripsNaloxone won't reverse xylazine. Opioids only — don't use these on stimulants.
Shop Xyl stripsMarquis, Mecke and Froehde plus ten fentanyl strips. Best value.
Shop the packageBuy strips, not a reagent. What a reagent can't see is what's most likely to kill you.
Shop FentKitsSeparation kits identify each component individually.
Shop JunoStep by step
- Test for fentanyl. Roughly 10 mg in half a teaspoon of water, dip, read at five minutes. Test more than one spot from a larger amount.
- Test for nitazenes. Same dilution ratios as the xylazine strip. Fentanyl strips do not cover nitazenes.
- Test for xylazine. Opioid samples only.
- Run Marquis. A pinhead of sample, one drop, watch from the instant it lands. Deep purple darkening toward purple-black within about ten seconds is consistent with an opiate.
- Run Mecke on a fresh sample. Deep blue-green to blue-black is concordant.
- Run Froehde on a fresh sample. Deep purple-red moving toward green. A sky blue instead means acetaminophen is dominating the reaction.
- Treat concordance as "an opiate," not "heroin." Three agreeing reactions narrow it down; they don't identify which opiate, and they say nothing about strength.
- Start low regardless. Use a fraction of your usual amount from a new batch, with naloxone present and someone else in the room.
- Record it. Photograph your results and consider reporting them to BunkLeaks so others benefit.
- Guessing at the dilution for a strip. Over-concentrated pushes toward false positives, over-diluted toward false negatives.
- Testing one spot of a large batch and treating the whole batch as cleared. Fentanyl is not evenly distributed.
- Dropping a second reagent onto a spot you've already tested. Use a fresh sample every time.
- Reading a reaction after 40 seconds, or reading only the endpoint when Froehde's value is in the progression.
- Dim or colored lighting. Bright neutral daylight is best; a dark blue-green and a purple-black are easy to confuse under warm light.
- Testing the coating of a pill instead of powder scraped from the interior.
- Too much or too little sample. A pinhead, roughly a few milligrams.
- Old reagent. Store cool and dark — a fridge or freezer is ideal — and replace Marquis or Mecke once it has darkened enough to obscure the reaction.
- Reading only one reagent, or treating a reagent result as a substitute for a strip. It isn't one.
Your result wasn't what you expected
- Have naloxone in the room and know how to use it. Give a dose, call emergency services, and give rescue breaths. Nitazene overdoses may need more than one dose, and if xylazine is involved naloxone will reverse the opioid part but not the sedation, so keep monitoring breathing after the person responds. Never use alone.
- Report it. Log the sample in BunkLeaks — an unexpected result in your area is a warning for everyone else in it.
- Find out what it actually is. Our lab testing service gives you a definitive answer where reagents can't, including which opiate and at what concentration.
- Rule out the test itself. Re-run with fresh reagent, a fresh sample, the correct strip dilution and better lighting before drawing conclusions.
- If you're going to use anyway, use far less than usual, don't mix with alcohol or benzodiazepines, don't use alone, and go slowly. A tolerance break makes the risk worse, not better.
Questions
Can a reagent tell me if there's fentanyl in my heroin?
No. Fentanyl is active in microgram amounts and produces no color change at the concentrations found in adulterated samples. There is no color to look for. Screening for it needs fentanyl test strips, and those don't cover nitazenes.
Can Marquis tell heroin from codeine or morphine?
No. All three fall in the same purple range. Mecke and Froehde don't separate them reliably either. Three agreeing reactions tell you an opiate is the dominant compound; they don't tell you which one. That needs lab analysis.
If my fentanyl strip is negative, am I in the clear?
No. A negative means fentanyl wasn't detected in the specific portion you dissolved, at the dilution you used. It doesn't cover the rest of the batch, it doesn't cover every analog, and it doesn't cover nitazenes or xylazine at all — those need their own strips.
Do I need a separate strip for nitazenes?
Yes. Fentanyl strips do not detect nitazenes. They're a distinct chemical class and need nitazene strips. Nitazenes are increasingly sold as heroin and pressed into counterfeit opioid pills.
Will naloxone work on xylazine?
Not on the xylazine itself — it's a sedative, not an opioid. Give naloxone anyway, because xylazine is almost always found alongside an opioid and naloxone will reverse that part. Expect the person to stay sedated after they respond, and keep monitoring their breathing.
Can I test counterfeit oxycodone pills?
You can, but read the result carefully. Oxycodone's own reactions are weak and variable — Marquis ranges from no reaction to a dusky violet, Mecke from nothing to light blue-grey — and acetaminophen distorts Froehde and Liebermann. Counterfeit pressed pills containing fentanyl commonly give the same expected-looking result as genuine ones, which is exactly why the strip matters more than the color here.
How much sample do I need?
Reagent tests need about a pinhead, a few milligrams. Strips need roughly 10 mg dissolved in about half a teaspoon of water — check the current ratio in the strip instructions, since it differs by strip type.
Does a clean set of results mean my sample is safe?
No. Reagent tests are presumptive, strips only cover what they're designed to cover, and neither tells you potency. Testing lowers your risk of an unpleasant surprise; it doesn't remove risk.
Ready to test?
Ten fentanyl strips plus Marquis, Mecke and Froehde. Orders ship within 24 hours.
Free shipping over $75 · Discreet packaging
More resources
- Our types of test kits
- How to test for fentanyl
- How to test for nitazenes — why fentanyl strips aren't enough
- How to test for xylazine
- Skylab separation kit basics
- Marquis color guide · Mecke color guide · Froehde color guide
- Reaction video library — watch colors develop in real time
- Spectrum color guide
- Lab testing service — identity and concentration
A sample that has been tested should not be considered safe. There is inherent risk when choosing to consume any substance.
Many factors are involved when conducting a test and examining reactions, and The Bunk Police does not assume responsibility for the interpretation of results. Reactions of individual samples can vary depending on lighting differences and the specific mixtures of substances being tested.
Bunk Police kits are intended for identifying unknown substances for harm reduction purposes only. The Bunk Police does not assume responsibility for the use or misuse of this information. Proceed at your own risk.


