---
title: "Scrypto (Programming Language)"
path: "/contents/tech/core-protocols/scrypto-programming-language"
bannerImage: "https://j9ytchrzkvqpcul7.public.blob.vercel-storage.com/7b8237bb-491c-4276-b94e-ef57f42954cf.jpg"
version: "1.3.0"
author: "Hydrate"
createdAt: "2026-02-03T14:53:04.582Z"
updatedAt: "2026-03-16T18:25:45.368Z"
---

# Scrypto (Programming Language)

<Infobox>
| **Type** | Smart Contract Language |
| **Based On** | Rust |
| **Compiles To** | [WASM](https://webassembly.org) |
| **Latest** | [Scrypto](/developers/legacy-docs/updates/roadmap/scrypto/scrypto) 1.3.1 ([Rust 1.92.0+ support](/ideas/scrypto-modern-rust)) |
</Infobox>

## Overview

**[Scrypto](/developers/legacy-docs/updates/roadmap/scrypto/scrypto)** is Radix's smart contract programming language. Built on Rust, it implements [asset-oriented programming](/contents/tech/core-concepts/asset-oriented-programming) where tokens and [NFTs](https://en.wikipedia.org/wiki/Non-fungible_token) are native primitives that the developer manipulates directly — not entries in mappings.

### Key Differences from [Solidity](https://soliditylang.org)

  - **No reentrancy** — [Scrypto](/developers/legacy-docs/updates/roadmap/scrypto/scrypto)'s execution model makes reentrancy structurally impossible. Assets are in call-frame-local [buckets](/contents/tech/core-concepts/buckets-proofs-and-vaults) that can't be accessed from nested calls.

  - **No approval pattern** — Assets move directly via [buckets](https://docs.radixdlt.com/docs/resources-and-data). No `approve()` + `transferFrom()`.

  - **Authorization via [badges](https://docs.radixdlt.com/docs/authorization)** — Instead of `msg.sender` checks, Scrypto uses [badge-based authorization](/contents/tech/core-concepts/access-rules-and-auth-zones). Present a proof of holding a badge to access protected methods.

  - **[Blueprints](https://docs.radixdlt.com/docs/blueprints-and-components) → Components** — Scrypto code is organized into [blueprints](/contents/tech/core-concepts/blueprints-and-packages) (like classes) that are instantiated into components (like objects) on-ledger.

### Modern Rust Support

[Scrypto 1.3.1](/ideas/scrypto-modern-rust) unlocked modern Rust (1.92.0+) support with a new [WASM](https://webassembly.org) build pipeline, ending the previous Rust 1.81.0 lockdown.

## External Links

  - [Getting Started with Scrypto](/developers/getting-started/01-install-scrypto)

  - [Scrypto Fundamentals](/developers/scrypto/01-fundamentals)

  - [Official Documentation](https://docs.radixdlt.com/)

  - [GitHub Repository](https://github.com/radixdlt/radixdlt-scrypto)