# Blockchain Development with Sway

Sway is fundamentally a blockchain language. Because of this, it has some features and requirements that you may not have seen in general-purpose programming languages.

These are also some concepts related to the FuelVM and Fuel ecosystem that you may utilize when writing Sway.

- [Hashing and Cryptography](./hashing_and_cryptography.md)
- [Contract Storage](./storage.md)
- [Function Purity](./purity.md)
- [Identifiers](./identifiers.md)
- [Native Assets](./native_assets.md)
- [Access Control](./access_control.md)
- [Calling Contracts](./calling_contracts.md)
- [External Code Execution](./external_code.md)
