В одном из уральских заводов жил мастер Прокопьич, известный как лучший в обработке малахита в этих краях. Мастер был уже пожилым, и барин распорядился приставить к нему ученика. Однако обучение не шло: Прокопьич был строг и резок, часто наказывал мальчишек, а те не могли усвоить ремесло. Из-за этого местные дети боялись мастера, а родители не желали подвергать детей таким испытаниям.
Так дошло дело до двенадцатилетнего сироты Данилки Недокормыша. Он не знал своего отца, а мать давно умерла, но благодаря своей внешности был принят в господский дом в качестве «казачка». Однако мальчик не проявлял интереса к службе, часто замирал, любуясь украшениями. Его сочли медлительным и тихим, и перевели в помощники пастуха. Там работа тоже не ладилась: Данилка мечтал, и из-за этого однажды потеряли несколько коров, в том числе и приказчикову.
Сначала наказали старого пастуха, затем и Данилку стали бить. Несмотря на боль, мальчик молчал и не жаловался. Его вылечила местная бабка-знахарка, которая рассказала о загадочном каменном цветке, растущем у Хозяйки на малахитовой горе в праздник Змей. Говорила она, что тот, кто увидит цветок, будет несчастен, но причины этого не знала.
Вскоре Данилка выздоровел, и приказчик решил снова попробовать отправить его к Прокопьичу в ученики, поскольку мальчик был сиротой и на него никто не жаловался. Данилка оказался внимательным и сразу заметил ошибку мастера. Прокопьич, оставшийся без семьи, привязался к сироте и решил, что сначала нужно укрепить его здоровье, прежде чем обучать ремеслу, так как работа с малахитом вредна для легких. Он поручил мальчику различные хозяйственные задания, которые Данилка выполнял с интересом.
Прокопьич, хоть и крепостной, имел право работать на себя, что обеспечивало ему доход. Он стал относиться к Данилке как к сыну, одел его и заботился. Хотя к работе с малахитом мальчик пока не допускался, он с любопытством расспрашивал мастера и запоминал всё. Однако приказчик заинтересовался, чем занимается мальчик, и проверил его знания. Выяснилось, что Данилка уже усвоил много полезного. С этого момента приказчик начал давать ему настоящую работу.
Данилка быстро рос профессионально, но Прокопьич советовал не торопиться и характеризовал его как медлительного. В свободное время мальчик научился читать и писать. Со временем он превратился в красивого, сильного и жизнерадостного юношу.
Когда Данилка выточил из цельного камня сложную змейку, приказчик признал его мастером и сообщил об этом барину. Барин решил испытать молодого мастера и заказал ему выточить чашу из малахита по присланному чертежу, при этом запретил Прокопьичу помогать. Данилка сначала работал медленно, но вскоре выполнил заказ быстро и качественно. Приказчик потребовал сделать ещё две такие чаши, которые были выполнены в срок, значительно опередив установленные сроки.
Поняв, что Прокопьич занижал способности Данилки, приказчик сообщил об этом барину. Барин, напротив, назначил Данилке небольшой оброк и разрешил Прокопьичу оставаться при нём, надеясь на плодотворное сотрудничество. К письму он приложил чертёж более замысловатой чаши и дал неограниченный срок для её изготовления.
Данилка взялся за работу, но заказанная чаша не удовлетворяла его: в ней не было настоящей красоты, лишь узоры. По разрешению приказчика он решил сделать ещё одну чашу по собственному замыслу. В это время Данилка стал задумчивым и рассеянным, много времени проводил на лугах в поисках вдохновения, желая создать изделие, отражающее истинную красоту камня. Он выбрал изображение дурман-цветка, но сначала довёл до конца барский заказ.
Прокопьич пытался отговорить ученика и даже предложил ему жениться, полагая, что это поможет ему избавиться от одержимости. Данилка признался, что давно ждет соседка Катя. После изготовления барской чаши он устроил праздник, пригласив невесту и старых мастеров. Один из стариков, учитель Прокопьича, рассказал, что те, кто видят каменный цветок, постигают всю красоту малахита и навсегда становятся горными мастерами Хозяйки.
Желание понять красоту камня проникло в Данилу глубоко, и он забыл о свадьбе. Однажды, отправляясь за малахитом для дурман-чаши, он услышал голос, подсказывающий ему идти на Змеиную гору. Там мелькнула женщина, после чего он отправился на гору и нашёл то, что искал, но работа над чашей не удавалась: изделию не хватало жизни.
Осознав, что сам не в силах постичь красоту камня, он решил жениться. Свадьба состоялась именно в праздник Змей. В последний раз посетив Змеиную гору, Данила сел отдохнуть, и ему явилась Хозяйка. Узнав её по красоте и малахитовому платью, он попросил показать каменный цветок. Хозяйка пыталась отговорить его, говоря, что увидевшие цветок теряют радость жизни и возвращаются к ней, но Данила настоял. Она отвела его в свой сад, где росли каменные деревья и растения, и показала чёрные, словно бархатные кусты — каменный цветок.
Данила долго любовался цветком, после чего Хозяйка отпустила его домой. В тот день у Кати был праздник. Сначала Данила веселился вместе с гостями, но затем погрузился в грусть. Вернувшись домой, он разбил свою дурман-чашу, плюнул в барскую и выбежал из избы.
Долго его искали. Одни думали, что он сошёл с ума и погиб в лесу, другие говорили, что Хозяйка забрала его к себе в горные мастера.