Madison is a town in Carroll County, New Hampshire, United States. The population was 2,502 at the 2010 census. Madison includes the village of Silver Lake and the village district of Eidelweiss.
This area was one of the first to have land grants set aside for soldiers who had survived the French and Indian War. The land covered by these grants, parts of Eaton and Albany, was incorporated in 1852 as "Madison," in honor of President James Madison, who was born 100 years earlier.
According to the United States Census Bureau, the town has a total area of 40.9 square miles (106 km2), of which 38.5 square miles (100 km2) is land and 2.4 square miles (6.2 km2) is water, comprising 5.83% of the town.
Madison is drained by Forrest Brook and Silver Lake to the south and by Pequawket Brook to the north. The highest point near Madison (2 mi (3.2 km) to the east) is the summit of Lyman Mountain, at 1,545 feet (471 m) above sea level.
As of the census of 2000, there were 1,984 people, 777 households, and 560 families residing in the town. The population density was 51.2 people per square mile (19.8/km²). There were 1,589 housing units at an average density of 41.0 per square mile (15.8/km²). The racial makeup of the town was 97.78% White, 0.05% African American, 0.66% Native American, 0.20% Asian, 0.40% from other races, and 0.91% from two or more races.