[Editor's Note: The following text is taken from Heroin User's Handbook, but the procedure has been floating around for years and I have no idea who "invented" it. I do not recommend using the part of this process that involves ether--unless you really know what you are doing.]
The impurities found in street heroin range from coffee to quinine to glass particles. Most impurities, like coffee, are harmless. You might even like some of them. Coffee, for example, is tasted after injecting heroin that has been cut with it. Some impurities, like glass and maybe even quinine, can be deadly. I strongly encourage you to remove the impurities from the heroin you buy. What follows is a recipe that works despite the fact that it has been widely distributed on the Internet.
Removing Particulate Matter
The use of cotton for filtration when heroin is cooked before being used is a small attempt at purifying the heroin ingested. But a much better job can be done with a little hydrochloric acid (HCl). Place about a gram of heroin in a small glass container (a test tube is best, but any glassware that will allow mixing will work). Add a couple of drops of 28% hydrochloric acid and allow it to react for a couple of minutes. Next, add 5 ml of distilled water and mix vigorously so that everything dissolves that can.
At this point in the process, the heroin is in solution. The non-soluble material in the container is garbage that you do not wish to ingest. Let the solution sit so that the particulate matter settles to the bottom and then pipette out the solution, leaving the particulate matter behind. The simplest kind of pipette is an eye-dropper. If a pipette is not available, it is possible to pour the solution out of one container into another, being careful not to allow any of the particulate matter to be transferred.
Removing Soluble Impurities
Add ammonium hydroxide to the solution, one drop at a time. This will cause a white precipitate to form. Continue adding the ammonium until you are certain that there is no more precipitate being formed. The solution is then gently mixed to assure that the ammonium is evenly distributed. At this point, the solution will have a milky look.
The solution is then added to about 100 ml of ethyl ether-a chemical with which great care must be taken, since it is quite combustible. This new solution is then vigorously mixed and left to sit. This will cause the water to settle at the bottom of the container; it is removed with a pipette and then discarded.
A mixture of 5 mL of HCl and 5 mL distilled water is created and added to the ethyl ether mixture. This is stirred vigorously for several minutes. Afterwards, a water layer will form at the bottom of the container. You then pipette this out and into a small container such as a petri dish.
Slowly add baking soda to the solution in the petri dish. This will cause the solution to bubble. When the bubbling stops, this process is finished. The resulting solution is then air-dried, which yields pure heroin and table salt (NaCl). The salt is harmless and may be ingested along with the heroin.