HLFC // goldfish notesHappy Lucky Fish Club
Disclaimer: Hobbyist reference — not veterinary diagnosis. Verify doses on current labels; if a bottle label disagrees with a figure here, follow the bottle. Weigh salt. Full text: About / Disclaimer.
Every goldfish keeper should have a copy of Dr. Erik Johnson's Koi Health & Disease: Everything You Need To Know (2nd edition). In the author's words, for goldfish you "use the word 'Goldfish' in place of 'Koi'" for most of it.

Medication reference

Each medication and its dosage options, for goldfish. Hydrogen peroxide (H₂O₂) amounts are for the common 3% drugstore solution. Per-liter and per-gallon figures are both given (1 US gallon = 3.785 liters); ppm = mg per liter. Where the site gives no number, the entry says per label or vet only — no dose is made up to fill the gap.

How to measure

Quick index

GroupMedications
Salts: stress support, external parasites, dropsy & bloatSalt (NaCl) · Epsom salt (MgSO₄)
Oxidizers: wounds, external parasites, disinfecting gearHydrogen peroxide (3%) · Potassium permanganate (PP)
Dyes & formalin: ich, fungus, external parasitesMethylene blue · Formalin + malachite green
Antiparasitics: flukes, internal parasites, anchor worm & licePraziquantel · Metronidazole · Insect growth regulators · Diflubenzuron (Dimilin) · Copper
Antibacterials: bacterial infections & ulcersKanamycin · nitrofurans · nifurstyrenate (Elbagin-type) · oxolinic acid · sulfa-trimethoprim · erythromycin · topical antibiotic cream
Combination: quarantine for new arrivalsQuarantine trio: erythromycin + formalin/malachite green chloride + metronidazole/praziquantel (Aquarium Co-op)
Anesthetic: humane euthanasiaClove oil
Disinfectants: gear, tanks & nets (never on fish)Sodium hypochlorite (bleach) · Potassium peroxymonosulfate (Virkon Aquatic)
ReferenceDo not combine · Conversion tables · Sources

Salts: stress support, external parasites, dropsy & bloat

MedicationDosage / use options
Salt (sodium chloride, NaCl)

A great place to start when you don't know what's wrong and can't get a skin scrape. Use plain salt with no additives, and weigh it (1 level tsp ≈ 5 g). Dosage range: 0.1%–0.6% (1–6 g per liter ≈ 3.8–22.7 g per gallon) for in-tank treatment; the 3% dip is separate.

  1. Light supportive salinity, 0.1% (1 ppt): 1 g per liter (≈3.8 g per gallon). For hospital tanks, slime support with flukes, alongside a labeled antimicrobial course, a one-sided eye bulge after a bump, and cuts or secondary infection risk.
  2. Ammonia burns: a 48-hour salt and water-change trial.
  3. 0.3% to reduce osmoregulatory stress (3 ppt): 3 g per liter (≈11.4 g per gallon). Also used for some mystery illnesses.
  4. Osmoregulatory support, 0.5% (5 ppt): 5 g per liter (≈18.9 g per gallon).
  5. 3% dip (slime strip / external parasites): 30 g per liter (≈113.6 g per gallon) in aerated, temperature-matched water. About 30 seconds for a crisis parasite strip; up to a few minutes for general parasites, watching continuously. Return the fish to clean water and expect an ammonia spike. Used for ich, costia, chilodonella, trichodina, flukes and gill rot, often followed by a multi-day treatment.
  6. Not for pineconing dropsy: use a small Epsom salt dose instead, not table salt.
  7. Top off evaporation with fresh water, not salted water. ppt is not ppm: 0.1% = 1 ppt = 1000 ppm.

Cautions (site): the 3% dip is ~3% by weight, not 3 ppm, and is a dip, not a bath to leave fish in. Stressed or ulcerated fish tolerate dips poorly. In ponds with chilodonella, hold a weighed therapeutic salinity from the table below — don't guess teaspoons as %.

Epsom salt (magnesium sulfate, MgSO₄)
  1. Dropsy (pinecone) and floating protocols without NaCl: small dose, e.g. 1/8 tsp per 5 US gallons (= 1/8 tsp per ≈18.9 L; ≈ 1/40 tsp per gallon ≈ 0.0066 tsp per liter). Do not escalate blindly — more is not better.
  2. Constipation / floating: Epsom-in-pea, carefully; or heat + Epsom without NaCl in a shallow recovery tub. Ammonia monitoring is mandatory.
  3. Laxative bath (constipation): 30 g per liter (≈113.6 g per gallon) for 30 minutes, in a separate container.
  4. Egg-bound bath: 1 g per liter (≈3.8 g per gallon) for 30 minutes, daily, in a separate container.
  5. Not table salt. The in-tank dose above is by teaspoon only — no gram figure. Steps for the baths: Protocols.

Oxidizers: wounds, external parasites, disinfecting gear

MedicationDosage / use options
Hydrogen peroxide (3%)
  1. Quick dip: 1 part 3% H₂O₂ to 9 parts tank water; dip 10–12 seconds. (≈100 ml H₂O₂ + 900 ml water makes 1 liter of dip; ≈379 ml H₂O₂ + ≈3.4 L water makes 1 gallon.)
  2. 10-minute dip (protozoans and flukes): 15 ml 3% H₂O₂ per liter of water (≈57 ml per gallon); dip 10 minutes. Watch for distress.
  3. Dosing during a water change: 2–4 ml per gallon (≈0.5–1.1 ml per liter) for 2 hours, then a 50% water change.
  4. Fish-safe tank dose: 0.125 ml per gallon (≈0.033 ml per liter).
  5. Deactivate potassium permanganate: 1.5 ml per gallon (≈0.40 ml per liter).
  6. Wound cleaning: clean a wound once with dilute peroxide, carefully — keep it off eyes and gills.

Cautions (site): high risk — overdose, or longer/stronger dips than these, destroys gills. For flukes, praziquantel is preferred when possible.

Potassium permanganate (KMnO₄, "PP")
  1. Short bath: 10 ppm (10 mg per liter ≈ 38 mg per gallon) for 30 minutes, closely watched.
  2. Longer bath: 2 ppm (2 mg per liter ≈ 7.6 mg per gallon), 4 hour minimum.
  3. Whole-tank treatment: 4 ppm (4 mg per liter ≈ 15 mg per gallon) for 8 hours. Bypassing the bio-media in the filter is best practice but not strictly necessary. Run lots of surface agitation. Repeat once a week, 4 times; on the last round keep the bio-media in.
  4. High-concentration dip: 100 ppm (100 mg per liter ≈ 379 mg per gallon) for 8–9 minutes. Every 4 days at 70°F or warmer; once a week at 64°F or cooler. High-risk dose.
  5. Neutralize: 3% hydrogen peroxide, same volume as the PP dose.
  6. Watch ammonia and nitrite: the treatment can kill off beneficial filter bacteria.
  7. Never mix with formalin.

Cautions (site): strong oxidizer — use only if you understand organic demand, the color endpoint, and neutralization. Mixing with formalin is a fire/explosion risk. Dose from a concentrated stock solution diluted to the target ppm. The water should stay pink; if it clears instantly, organics ate the dose — don't blindly redose. Not on fried gills. Uses on the site: flukes (with salt dips) and external bacterial disease such as columnaris.

Dyes & formalin: ich, fungus, external parasites

MedicationDosage / use options
Methylene blue
  1. Waterborne treatment for bacteria, fungi and protozoa (Diseases of Carp, treatment table).
  2. Harms the biofilter: damages the nitrifying bacteria, so it can't easily be used in a tank with a biofilter (Diseases of Carp).
  3. Don't combine with oxidizers such as potassium permanganate or hydrogen peroxide.
  4. Dose: per label.
Formalin + malachite green
  1. Dose: per label. Multi-day courses (often ~3 days) with water changes between doses. Label example (Aquarium Solutions/Hikari Ich-X, malachite green chloride): 1 tsp (≈5 ml) per 10 US gal = 0.5 ml per gallon ≈ 0.13 ml per liter, giving ≈15 mg/L formalin and ≈0.05 mg/L malachite green (Hikari Ich-X data sheet). Overdoses can kill fish.
  2. Uses (site): ich (target is the free-swimming stage; cycle length depends on temperature — days when warm, weeks when cold; some keepers add 3% salt dips while warming gently to ~72–74°F), velvet, costia and chilodonella (after a 3% salt dip), trichodina, flukes, and formalin-type products for epistylis. Part of the quarantine trio.
  3. Cautions: toxic; lowers oxygen; light-sensitive; not for fried gills; local regulations apply. Never mix with PP.

Antiparasitics: flukes, internal parasites, anchor worm & lice

MedicationDosage / use options
Praziquantel
  1. Dose: 2 mg per liter (≈7.57 mg per US gallon) of veterinary or lab-grade praziquantel (Dr. Erik Johnson, drjohnson.com). Products such as PraziPro: per label. Stir the powder vigorously into a liter of clean water, then add it to a high-flow area. Turn off carbon and UV during treatment. For flukes, Dr. Johnson suggests one repeat dose 4–5 days after the first.
    Water volumePraziquantel at 2 mg/L
    1 L2 mg
    1 US gal (3.785 L)≈7.6 mg
    10 US gal (37.85 L)≈76 mg
    50 US gal (189.3 L)≈379 mg
    100 US gal (378.5 L)≈757 mg
    500 US gal (1,892.5 L)≈3,785 mg (≈3.8 g)
    1,000 US gal (3,785 L)≈7,570 mg (≈7.6 g)
  2. Uses: flukes and some digeneans. Preferred over peroxide dips for flukes.
  3. Skin flukes (Gyrodactylus): live-bearing; worse in warm water and poor conditions. Praziquantel at the dose above; light salt (weighed) supports slime.
  4. Gill flukes (Dactylogyrus): egg layers — retreat and recheck over weeks (eggs hatch in ~4 days near 68–70°F). Bucket-to-bucket moves help leave eggs behind. Don't blast heat for bacteria until gill flukes are dealt with.
  5. Mixing: the powder is hard to wet — mix thoroughly.
  6. Also part of the quarantine trio (with metronidazole, as Fritz ParaCleanse).
Metronidazole
  1. Dose: per label. Complete the course.
  2. Uses: Hexamita / hole-in-head style lesions and some protozoa. Medicated food preferred; water doses have also been used.
  3. Also improve diet and water; reconsider carbon media if suspected as a contributor.
  4. Also part of the quarantine trio (with praziquantel, as Fritz ParaCleanse).
Insect growth regulators (pond arthropods)
  1. Dose: per label; start with vetted guidance — dose confusion is common in hobby lore.
  2. Uses: anchor worm (Lernaea) and fish lice (Argulus) in ponds, on a multi-week schedule, after manual removal and topical wound care.
  3. Cautions: restricted; availability and legality vary; toxic to invertebrates.
Diflubenzuron (Dimilin)
  1. Dose: per label.
  2. An insect growth regulator (see above) for anchor worm and fish lice in ponds.
  3. Cautions: may be unavailable, renamed or restricted. Prefer current labels and vet guidance.
Copper
  1. Dose: per label.
  2. Only with correct hardness/pH (site mention: black spot, digenean cysts).

Antibacterials: bacterial infections & ulcers

Medicated food often beats water antibiotics for internal bacteria. Availability and legality vary; resistance is real. Treat parasites first. Doses: per label or vet.

MedicationDosage / use options
KanamycinPer label. Bacterial courses; food or specific water regimens.
NitrofuransPer label. Bacterial courses; food or specific water regimens.
Nifurstyrenate-type preps (e.g. Elbagin)Per label. Mild antibacterial/antifungal; often used with salt in Japanese ranchu practice. Doses are usually written per large water volumes — convert carefully; verify current availability.
Oxolinic acidPer label / vet. Bacterial courses; may be restricted or vet-only.
Sulfa-trimethoprimPer label. Bacterial courses; food or specific water regimens.
ErythromycinDose: per label. In-food courses for skinny disease; also rule out parasites and mycobacteria if chronic. Also part of the quarantine trio (Fritz Maracyn) for bacterial infections.
Topical antibiotic creamRubbed well into a cleaned wound, 1–2× daily (prescription topicals via vet when needed). For ulcers and after anchor worm / lice removal. Don't squeeze lumps or boils.

Combination: quarantine for new arrivals

MedicationDosage / use options
Erythromycin + formalin/malachite green chloride + metronidazole/praziquantel (Aquarium Co-op Quarantine Trio: Fritz Maracyn, Aquarium Solutions/Hikari Ich-X, Fritz ParaCleanse)

Given to fish when you receive them, if you're worried about bringing disease into your fish room before adding new fish. Three products used together:

  1. Dose (Aquarium Co-op's instructions — ignore the box directions for this combo): 1 packet Maracyn + 1 packet ParaCleanse + 1 US tsp (5 ml) Ich-X per 10 US gallons. Per gallon: 0.1 packet of each + 0.5 ml Ich-X. Per liter: 1 packet of each per ≈37.9 L + ≈0.13 ml Ich-X per liter.
  2. Before dosing: keep the quarantine tank away from your other tanks, with its own nets, siphons and buckets; wash hands and arms with soap and hot water between tanks. Remove chemical filtration (such as activated carbon or Purigen) and turn off UV. Add extra surface agitation. Keep the filter and heater running.
  3. Soak 7 days without feeding and without water changes (if you must feed, wait until day 4–5 and feed very lightly). Aquarium lighting will not deactivate the medication. After the week, change 30% of the water, resume feeding, keep the water quality high and watch for any change in symptoms.
  4. Weak fish: give one med per week instead — Maracyn in week 1, Ich-X in week 2, ParaCleanse in week 3, each at the dose above.
  5. If you can clearly identify the disease, use only the matching medication, per its label.
  6. Ich-X at this dose gives ≈15 mg/L formalin and ≈0.05 mg/L malachite green (Hikari Ich-X data sheet).

Cautions: Fritz's ParaCleanse directions say it may inhibit nitrifying bacteria — watch ammonia and nitrite. An Ich-X overdose can kill fish. Ich-X contains formalin: never use the trio alongside potassium permanganate. Not on fried gills.

Anesthetic: humane euthanasia

MedicationDosage / use options
Clove oil
  1. Humane euthanasia only: sedate with a few drops mixed in warm water, then overdose once movement stops. The site gives no measured per-liter dose.
  2. Confirm death before disposal. Don't flush; dispose per local rules. Prefer vet guidance when possible.

Disinfectants: gear, tanks & nets (never on fish)

For cleaning nets, buckets, tanks and other gear after sick fish, and before gear moves between tanks. Neither is a fish medication: bleach never goes in water with fish, and the one fish-in Virkon Aquatic dose below is for advanced hobbyists only.

DisinfectantDosage / use options
Sodium hypochlorite (household bleach)

Gear, empty tanks and nets only — never with fish present. Use plain, unscented bleach (no scent, no "splash-less" or cleaner additives) and check the % sodium hypochlorite on the bottle, since strengths vary.

  1. Mix (club recipe): ½ US cup (≈118 ml) bleach per gallon of warm water = ≈31 ml per liter (about 2 tablespoons). For 5 gallons, 2½ cups (≈591 ml); for 10 gallons, 5 cups (≈1.18 L).
  2. Contact time: soak or keep wet for 20 minutes.
  3. Rinse well with clean water.
  4. Dechlorinate: give everything a final rinse or soak in dechlorinated water. On tap water, your regular dechlorinator does the job.
  5. Air dry completely, in the sun if you can.
  6. Strength check: with 6% bleach this recipe is ≈1,900 mg/L (ppm) sodium hypochlorite; with 8.25% bleach it is ≈2,600 mg/L.
  7. Sponges and filter media from a sick tank: replace them rather than trying to bleach them (club's notes).

Cautions: never mix bleach with ammonia or acids (vinegar, rust removers, toilet-bowl cleaners, ammonia-based glass cleaners) — toxic gas. Mix only with water. Wear gloves and work with good airflow. Chlorine kills fish and filter bacteria: rinse, dechlorinate and dry before anything goes back in a tank.

Potassium peroxymonosulfate (Virkon Aquatic)
Advanced hobbyists only

A powdered oxidizing disinfectant. Label actives: potassium peroxymonosulfate 21.41%, sodium chloride 1.50% (US label, EPA Reg. No. 39967-137). Use Virkon Aquatic only — not Virkon S (club's notes). Weigh it: small tanks need fractions of a gram, so use a scale that reads to 0.01 g. Koi sources use 5 g tablets and often UK gallons (1 UK gal = 4.546 L); figures below are converted to mg per liter and US gallons.

  1. Gear, nets and tank surfaces (label): 1% solution = 10 g per liter (≈37.9 g per gallon; the label's 1 scoop ≈ 1.3 oz per gallon). Dissolve the powder in water first. Keep surfaces visibly wet for 10 minutes; soak gear that moves between tanks for 20–30 minutes, then rinse with water. Mixed solution keeps up to 7 days; change a foot dip every 2–3 days or when dirty.
  2. No fish in the water (club's notes): 20 g per 1,000 L = 20 mg per liter (≈0.076 g per gallon).
  3. With fish in the water — koi-keeper range:
    • Routine: 1–2 mg per liter (≈3.8–7.6 mg per gallon; the common "one 5 g tablet per 1,000 gallons" is ≈1.1–1.3 mg/L), once a week, with a 5–10% water change before each redose.
    • Quarantine or suspected virus: 2–5 mg per liter (≈7.6–18.9 mg per gallon), every 3 days or twice a week — up to daily for one week in a suspected virus outbreak — with at least 10% water change weekly.
    • Club figure: 5 mg per liter (0.0189 g per gallon) — inside the range, at the top end (the quarantine / suspected-virus level), not a routine dose.
    • Upper limit reported in the manufacturer's koi trials: no harm to koi up to 10–12 mg/L. Don't go there on purpose.
  4. How to add it: dissolve in a bucket of tank water first, never drop powder or tablets straight in. Add slowly where the water circulates, pumps running. Turn UV off while dosing (UV breaks it down). Expect slight foaming if water changes are skipped — the fix is a lower dose and more water changes.
Water volumeRoutine, 1 mg/LUpper routine, 2 mg/LQuarantine top end, 5 mg/LNo fish, 20 mg/L
1 L1 mg2 mg5 mg20 mg
1 US gal (3.785 L)≈3.8 mg≈7.6 mg≈18.9 mg≈76 mg
10 US gal (37.85 L)≈38 mg≈76 mg≈0.19 g≈0.76 g
100 US gal (378.5 L)≈0.38 g≈0.76 g≈1.89 g≈7.6 g
Source (with fish)DoseSchedule
Bradan Biosecurity / DuPont koi leafletRoutine 5 g per 5,000 L (1 mg/L); quarantine 2 tablets per 1,000 UK gal (≈2.2 mg/L); suspected KHV 1 tablet per 1,250 L (4 mg/L)Weekly (twice weekly spring/autumn), 5% change before redose; quarantine every 3 days; KHV daily ≥1 week, ≥10% weekly change
"The Virkon Aquatic Story", Koi magazine, June 20065 g per 1,000 gal weekly (≈1.1 mg/L); 2–4 tablets per 1,000 gal (≈2.2–4.4 mg/L) for quarantine or suspected KHV; ideal continuous level 2–4 ppm; koi unharmed up to 12 ppmWeekly with 5% change; every 3 days with up to 10% weekly change
Danish koi dealer leaflet (koimad.dk)Preventive 1 mg/L; spring/autumn 2 mg/L; quarantine 2 mg/L; persistent problems or suspected KHV 5 mg/LWeekly, 5–10% change first; quarantine twice weekly; 5 mg/L for 7 days with 10% weekly change
Koi Water Garden (koicarp.org.uk)1–2 g per 1,000 L (1–2 mg/L); hardness chart 2 mg/L (soft) up to 12 mg/L (very hard)Weekly while problems are suspected
UK koi retailers (Absolute Koi, SPH Supplies, Causeway Koi)1 tablet per 1,000 UK gal / 5,000 L (≈1–1.1 mg/L); Causeway: 2 mg/LWeekly
Koiphen and koiforum.uk posts (anecdotal)5 g per 1,000 gal (≈1.1–1.3 mg/L) routine; 10 g per 1,000 gal (≈2.2 mg/L) first dose; some keepers report double or triple dosesWeekly or monthly; UV off 1–2 days; some foam
The club's own notes5 mg/L; also record 1–2 mg/L from a pond-drug referenceWeekly, 10% water change before redosing

Cautions (label, SDS and koi sources): the US label says Virkon Aquatic must not be applied directly to water — it is registered as a surface and equipment disinfectant, so every water dose above is outside the label, and the koi guides themselves are issued "on an advisory basis only". It sanitizes the water; it does not treat sick fish, and it is not a bath or dip. It is bactericidal, so watch ammonia and nitrite. Oxidizers work less well in hard water, which is why some sources dose higher there. The current US safety data sheet lists sodium dodecylbenzenesulfonate (a surfactant) at 10–20%, the ingredient the club's notes warn about in Virkon S, so watch fish closely and stop at any sign of distress. The powder is corrosive: it causes irreversible eye damage and skin burns — wear goggles and waterproof gloves, and avoid breathing the dust (the diluted solution is not corrosive). Don't soak metal for long; take metal out within an hour. Mix only with water; store dry, cool and tightly closed. Toxic to invertebrates such as shrimp and daphnia. Don't drain used solution into ponds, streams or storm drains.


Do not combine

Don't combineWithWhy
Potassium permanganateFormalin (incl. formalin + malachite products such as Ich-X and the quarantine trio)Fire / explosion risk
Methylene bluePotassium permanganate, hydrogen peroxideDon't combine with oxidizers
Hydrogen peroxideA running PP treatmentPeroxide neutralizes PP — use it only to end the PP treatment
Salt (NaCl)Pineconing dropsyUse a small Epsom dose instead
Formalin, malachite, PP, other harsh bathsFried (dark red/brown) gillsFix water and oxygen first; medicated food may be safer
Heat (84–86°F) for bacteriaUntreated parasites (esp. gill flukes, costia, ich)Warmth makes parasites explode
Sodium hypochlorite (bleach)Ammonia or ammonia cleaners; acids (vinegar, rust removers, toilet-bowl cleaners)Releases toxic chloramine or chlorine gas. Mix bleach only with water
Sodium hypochlorite (bleach)Fish, or any tank with fish in itKills fish and filter bacteria — gear and empty tanks only; rinse, dechlorinate and dry first
Potassium peroxymonosulfate (Virkon Aquatic)Other oxidizers (bleach, hydrogen peroxide, potassium permanganate); acids; strong bases; other chemicalsThe safety data sheet lists these as incompatible (it can give off chlorine); the label says don't mix it with other chemicals
Potassium peroxymonosulfate (Virkon Aquatic)Copper, brass and other metal soaked for longCorrodes metal — take metal out within an hour
Every bottle on the shelfEach otherStacking meds rarely helps and delays proper decisions

Unit conversion tables

Salinity (NaCl)

% salinitypptppmg salt / literg salt / US galtsp / US gal (@ 5 g/tsp, approx.)
0.050.55000.51.890.38
0.101.010001.03.790.76
0.151.515001.55.681.14
0.202.020002.07.571.51
0.303.030003.011.362.27
0.505.050005.018.933.79
0.606.060006.022.714.54
1.0010.01000010.037.857.57
3.00 (dip)30.03000030.0113.5522.71

Teaspoon measuring note

tsp salt / US gal (@ 5 g/tsp)g / galg / liter%pptppm
0.753.750.990.0990.99~990
1.005.001.320.1321.32~1320
1.507.501.980.1981.98~1980

At denser crystals (~5.5–5.7 g/tsp), 1 tsp/gal lands closer to ~0.145–0.15% (~1.45–1.5 ppt).

Contradiction flag: some hobby texts say .1% ~1 tsp/gal and .3% ~3 tsp/gal. That overshoots true percent-by-weight. Use the gram table, not the tsp shortcuts.

Potassium permanganate (ppm = mg/L)

Useppmmg / litermg / US galTime
Longer bath227.64 h minimum
Whole-tank treatment4415.18 h
Short bath101037.930 min
High-concentration dip (high-risk dose)100100378.58–9 min

Hydrogen peroxide (3%)

Useml 3% H₂O₂ / literml 3% H₂O₂ / US galTime
Quick dip (1 part to 9 parts water)100 (in 1 L of dip)≈379 (in 1 gal of dip)10–12 s
10-minute dip15≈5710 min
During a water change≈0.5–1.12–42 h, then 50% change
Deactivate PP≈0.401.5—
Fish-safe tank dose≈0.0330.125—

Sources