The nearby transiting planet HD 189733b was observed during three transits with the ACS camera of the Hubble Space Telescope in spectroscopic mode . The resulting time series of 675 spectra covers the 550-1050 nm range , with a resolution element of \sim 8 nm , at extremely high accuracy ( signal-to-noise ratio up to 10,000 in 50 nm intervals in each individual spectrum ) . Using these data , we disentangle the effects of limb darkening , measurement systematics , and spots on the surface of the host star , to calculate the wavelength dependence of the effective transit radius to an accuracy of \sim 50 km . This constitutes the “ transmission spectrum ” of the planetary atmosphere . It indicates at each wavelength at what height the planetary atmosphere becomes opaque to the grazing stellar light during the transit . In this wavelength range , strong features due to sodium , potassium and water are predicted by atmosphere models for a planet like HD 189733b , but they can be hidden by broad absorption from clouds or hazes higher up in the atmosphere . We observed an almost featureless transmission spectrum between 550 and 1050 nm , with no indication of the expected sodium or potassium atomic absorption features . Comparison of our results with the transit radius observed in the near and mid-infrared ( 2-8 \mu m ) , and the slope of the spectrum , suggest the presence of a haze of sub-micron particles in the upper atmosphere of the planet .