Solidity, Ethereum (ETH) başta olmak üzere birçok blok zincir platformunda kullanılan bir nesne yönelimli programlama dilidir. Solidity programlama dili ile geliştiriciler akıllı sözleşmeler yaratabilir. C++ ve Python dillerinden esinle oluşturulan Solidity, yürütme kodu ve yürütme makinesi arasındaki soyutlama katmanı olan Ethereum Sanal Makinesi (EVM) ile etkileşime girer.
Solidity, 2014 yılında Polkadot (DOT) kurucusu Gavin Wood tarafından önerilmiş ancak Christian Reitwiessner, Alex Beregszaszi ve diğer bazı Ethereum geliştiricileri tarafından yaratılmıştır.
Solidity programlama dili, statik olarak yazılmıştır; bu da ilgili programın kaynak kodunu doğrulayarak yazım hatalarını ve sözdizimi sorunlarını engellediği anlamına gelir. Solidity ayrıca kalıtımı, kullanıcı tanımlı karmaşık nesneleri ve kitaplıkları da destekler.
Bununla beraber, Solidity’nin de her programlama dili gibi çeşitli sorunları vardır. İlk olarak, blok zincirinin değiştirilemezliğinden dolayı bir akıllı sözleşmenin yaratıldıktan sonra hiçbir şekilde kaldırılamamasını veya değiştirilmemesini sağlar. Bu, her bir kod satırının mükemmel olması gerektiği anlamına gelir. Ayrıca Solidity, yeniden giriş saldırılarına (reentrancy attacks) ve diğer güvenlik sorunlarına karşı birtakım zaaflara sahiptir. Solidity, Ethereum ağının faaliyete geçmesinden önce tasarlanmıştır. Bu nedenle tasarımının günümüz gereksinimlerine ayak uydurabilmesi için güncellenmesi gerekmektedir.