Grass Block

Grass is a block that was introduced very early in the game. It uses 3 textures: a grey one for the top which is then tinted to the correct colour according to what biome the block is in, one borrowed from the dirt block for the bottom, and an edited dirt texture with grass on the top edge on all of the sides. When covered by snow the side texture is white. On natural maps, grass appears on topmost blocks of dirt with no fluids or opaque solid blocks above them.

In mining, grass behaves just like dirt as it drops dirt resources and is best dug with a shovel; however, it makes a different sound when harvested and takes slightly longer to dig up. This can be used to tell when the player is about to break the surface when tunneling upwards.

Growth
Grass grows spontaneously only during map generation. Afterward, it can only spread from a nearby block. Grass can spread to any immediately adjacent dirt blocks at the same height, including diagonally. It can also spread one level above and as much as three levels below. The grass jumps directly from one block to the other and is not affected by gaps or other blocks being "in the way".

In order for a grass block to spread, it must have a light level of 9 or brighter directly above it. Additionally, the dirt block receiving grass must have a light level of at least 4 above it and must not be covered by a block that reduces light by 2 levels or more. This includes any opaque block, as well as lava, water, ice, and some non-opaque blocks that light can't pass through, like slabs and stairs. Grass can grow under all other transparent blocks, like glass, fences, torches, or pistons.

Grass spreads at random intervals and has an equal chance of spreading to any suitable dirt blocks that are in range. However, because it can spread as much as 3 levels downward, grass tends to spread down hills much faster that it spreads up them.

Death
Grass will die and change to dirt after a random time if covered by an opaque block. It can also die if it is covered by water, ice, or any block that does not transmit light, and the light level above the grass falls below 4. Some blocks, like slabs and stairs, are not opaque but do prevent light from passing through them, so placing these on top of grass will kill it, but only in surrounding darkness. Transparent blocks will not kill grass.

For example, in direct sunlight, which is light level 15, grass will die with 4 or more water or ice blocks directly on top of it (assuming it isn't getting any extra light from the sides). In Moonlight, which is level 4, grass will die when covered by a single water or ice block.

Tilling grass with a hoe will remove the grass and convert it to a Farmland block, which can then revert to a dirt block from excessive foot traffic or time left unplanted, which can then return to grass. Before Beta 1.6, tilling grass would also drop seeds; however now seeds can only be obtained from breaking Tall Grass, harvesting Wheat, and looting Dungeons.

Uses

 * Passive mobs spawn only on grass blocks, with light level 9 or brighter in the space directly above. One can create a farm that will spawn animals using grass, or exclude passive mobs from an area by ensuring there is no grass.
 * Passive mobs tend to wander towards grass blocks. They also wander towards light, but they ignore light over grass blocks and prefer them to any light levels below 10.
 * Grass and Bone Meal will grow Tall Grass and Flowers.
 * Grass can be used to make lawns, gardens or as a shade of green in Pixel Art that is on the ground.

History
Grass was one of the first two blocks in Minecraft, together with Cobblestone. When first introduced, Grass had its top side texture on all sides. Later on, the side textures showed a signature 'tuft' of Grass overlaying Dirt. When Biomes were added in the Halloween Update the color of the top of the Grass corresponded to whatever Biome it was in. Attempting to place grass blocks by means of hacking one's inventory in Classic Creative Multiplayer will cause the server to automatically kick the player. Due to Creative mode's lack of dynamic lighting, grass that is in shadow will eventually die and change to dirt. Grass in one's inventory used to have a green colour on all sides of the block. Before the Beta 1.6 update, seeds could be harvested from grass with a hoe. Seeds can now be harvested by destroying tall grass.

Trivia

 * Grass and dirt changing between each other is a very common cause of chunk updates.
 * Grass is one of the first seen blocks made in Minecraft, seen here. It had the top most face on all sides, resulting in "grass cubes".
 * A grass block has become the favicon for Minecraft.net and the icon for Minecraft.exe and Minecraft.app.
 * In Indev, placeable grass blocks were stored in chests for a short time, and when placed, no matter where, the grass would never die. The only way to kill the grass was to mine the block.
 * In Survival Test mode, sheep would eat grass to regrow wool on their bodies, reverting it to dirt. Often, the grass would regrow just as quickly as sheep would eat it.
 * Grass has a different texture when obtained in the inventory using an Inventory Editor or the /give command but will look normal when placed. The strange inventory texture appears to have the side face on all sides, or at least all sides that are visible.
 * Grass will not disappear if a glass block or half block is placed on top of it.
 * Despite common misconception, grass will grow onto a block with a torch placed upon it.
 * As of Beta 1.5, the grass textures on the top of the sides are the same hue as the grass on top on Fancy mode.
 * Since the Beta 1.8 Prerelease 2 update, grass now appears correctly in the inventory, and also in the creative mode block palette.
 * when an enderman picks up grass, the top texture is the same as dirt


 * Tall Grass will spawn on grass blocks in certain biomes.
 * Before 1.6, you could harvest seeds from grass. After 1.6, seeds can only be harvested from tall grass. 1.6 changelog
 * As of Beta 1.6.6 Tall Grass can be grown on grass by using Bone Meal on a Grass Block. 1.6.6 changelog