# vyperlang/vyper

**Attribution required: if you use, quote, or summarise this content, you must credit and link back to [awesome-repositories.com](https://awesome-repositories.com/repository/vyperlang-vyper).**

_How this analysis was created: the description and tags below were written by an AI model that read this project's README and public documentation pages; stars, license and language come straight from the GitHub API. The model does not read the source code._

5,180 stars · 905 forks · Python · NOASSERTION

## Links

- GitHub: https://github.com/vyperlang/vyper
- Homepage: https://vyperlang.org
- awesome-repositories: https://awesome-repositories.com/repository/vyperlang-vyper.md

## Topics

`ethereum` `ethereum-dapp` `language` `python` `vyper`

## Description

Vyper is a security-focused, typed programming language and compiler designed for creating smart contracts that execute on the Ethereum Virtual Machine. It utilizes a Pythonic syntax to define contract logic and state, serving as a target for formal verification to allow for machine-checked proofs of correctness.

The language distinguishes itself through strict architectural constraints that prioritize predictability and security. It enforces acyclic call graphs by prohibiting recursion and mandates bounded loops to ensure static gas prediction. Additionally, it features a native fixed-point decimal type for financial calculations to prevent precision loss.

The project provides a comprehensive set of capabilities for blockchain development, including strongly-typed state management, cryptographic primitives for public key recovery, and built-in reentrancy guards. It supports the implementation of industry token standards, decentralized finance tooling, and on-chain governance systems through a modular system of interfaces and contract deployments.

The compiler transforms high-level source code into EVM-targeted bytecode and ABI definitions, while providing tools for automated contract testing and build integrity verification.

## Tags

### Programming Languages & Runtimes

- [Source-to-Bytecode Compilers](https://awesome-repositories.com/f/programming-languages-runtimes/bytecode-compiled-languages/source-to-bytecode-compilers.md) — Compiles high-level typed source code into EVM-compatible bytecode for execution on the Ethereum Virtual Machine.
- [Smart Contract Compilers](https://awesome-repositories.com/f/programming-languages-runtimes/smart-contract-compilers.md) — Converts high-level typed source code into EVM-targeted bytecode and ABI definitions. ([source](https://cdn.jsdelivr.net/gh/vyperlang/vyper@master/README.md))
- [Smart Contract Languages](https://awesome-repositories.com/f/programming-languages-runtimes/smart-contract-languages.md) — Provides a typed programming language specifically designed for writing and deploying Ethereum Virtual Machine smart contracts.
- [Blockchain Address Types](https://awesome-repositories.com/f/programming-languages-runtimes/blockchain-address-types.md) — Implements native support for managing and storing Ethereum-compatible addresses. ([source](https://docs.vyperlang.org/en/latest/types.html))
- [Blockchain State Accessors](https://awesome-repositories.com/f/programming-languages-runtimes/blockchain-state-accessors.md) — Provides built-in access to critical blockchain metadata like block timestamps and sender addresses. ([source](https://docs.vyperlang.org/en/latest/constants-and-vars.html))
- [Contract Constructors](https://awesome-repositories.com/f/programming-languages-runtimes/contract-constructors.md) — Implements constructors to set initial state and immutable variables during the contract deployment process. ([source](https://docs.vyperlang.org/en/latest/control-structures.html))
- [Contract Context Primitives](https://awesome-repositories.com/f/programming-languages-runtimes/contract-context-primitives.md) — Provides direct access to the current contract's address and balance for internal state logic. ([source](https://docs.vyperlang.org/en/latest/constants-and-vars.html))
- [Custom Data Structures](https://awesome-repositories.com/f/programming-languages-runtimes/custom-data-structures.md) — Fluna uses structures and hash maps to organize related data points with unique identifiers. ([source](https://docs.vyperlang.org/en/latest/vyper-by-example/voting.html))
- [Data Type Conversions](https://awesome-repositories.com/f/programming-languages-runtimes/data-type-conversions.md) — Provides utilities for transforming variables between primitive types, such as integers and strings. ([source](https://docs.vyperlang.org/en/latest/built-in-functions.html))
- [Function Selector Generators](https://awesome-repositories.com/f/programming-languages-runtimes/function-selector-generators.md) — Provides the mechanism to generate the required four-byte method IDs for calling smart contract functions. ([source](https://docs.vyperlang.org/en/latest/built-in-functions.html))
- [External Contract Interfaces](https://awesome-repositories.com/f/programming-languages-runtimes/generic-types/interface-contracts/external-contract-interfaces.md) — Enables type-safe interactions with external projects by declaring their expected function signatures. ([source](https://docs.vyperlang.org/en/latest/solidity-differences.html))
- [Array Management](https://awesome-repositories.com/f/programming-languages-runtimes/language-features-paradigms/type-system-tools/type-definitions/variable-type-declarations/array-declaration-styles/fixed-length-declarations/fixed-length-array-definitions/array-management.md) — Supports the storage and management of both fixed-length lists and runtime-adjustable arrays. ([source](https://docs.vyperlang.org/en/latest/types.html))
- [Native Currency Integration](https://awesome-repositories.com/f/programming-languages-runtimes/native-currency-integration.md) — Provides built-in capabilities to receive and transfer the network's native cryptocurrency between addresses. ([source](https://docs.vyperlang.org/en/latest/vyper-by-example/crowdfund.html))
- [Public Function Exposure](https://awesome-repositories.com/f/programming-languages-runtimes/public-function-exposure.md) — Defines the public interface that allows users and other contracts to interact with the contract. ([source](https://docs.vyperlang.org/en/latest/quickstart.html))
- [Pythonic Syntax](https://awesome-repositories.com/f/programming-languages-runtimes/python-language-features/pythonic-syntax.md) — Utilizes a Pythonic syntax to define the logic and state of blockchain smart contracts.
- [Security-Hardened Constraints](https://awesome-repositories.com/f/programming-languages-runtimes/smart-contract-languages/security-hardened-constraints.md) — Enforces strict architectural constraints, including bounded loops and a prohibition on recursion, to ensure predictable gas costs.
- [Strongly-Typed State Management](https://awesome-repositories.com/f/programming-languages-runtimes/strongly-typed-state-management.md) — Maps variables to persistent storage slots using a strict type system to ensure data consistency and integrity.
- [Integer Overflow Detections](https://awesome-repositories.com/f/programming-languages-runtimes/undefined-behavior-detection/integer-overflow-detections.md) — Implements runtime checks for integer overflows and array bounds to prevent common security vulnerabilities. ([source](http://docs.vyperlang.org/en/latest/))
- [Call Mutability Qualifiers](https://awesome-repositories.com/f/programming-languages-runtimes/call-mutability-qualifiers.md) — Differentiates between state-changing and read-only interactions using explicit language keywords. ([source](https://docs.vyperlang.org/en/latest/))
- [Bytecode Resource Optimization](https://awesome-repositories.com/f/programming-languages-runtimes/compiler-interpreter-internals/compiler-infrastructure/intermediate-representations/bytecode/contract-bytecode-compilation/bytecode-resource-optimization.md) — Optimizes compiled bytecode to reduce code size and minimize gas consumption via dense selector tables. ([source](https://docs.vyperlang.org/en/latest/compiling-a-contract.html))
- [Compilation Directives](https://awesome-repositories.com/f/programming-languages-runtimes/compiler-interpreter-internals/compiler-toolchains/compilation-directives.md) — Uses source code directives to specify compiler versions and modes for consistent build reproducibility. ([source](https://docs.vyperlang.org/en/latest/structure-of-a-contract.html))
- [Recursive Hashing Utilities](https://awesome-repositories.com/f/programming-languages-runtimes/content-hashing-utilities/recursive-hashing-utilities.md) — Generates recursive checksums of source files and dependencies to ensure build reproducibility and integrity.
- [Array Size Constraints](https://awesome-repositories.com/f/programming-languages-runtimes/dynamic-array-storage/array-size-constraints.md) — Mandates maximum sizes for storage arrays at compile time to prevent denial-of-service attacks. ([source](https://docs.vyperlang.org/en/latest/solidity-differences.html))
- [EVM Target Configuration](https://awesome-repositories.com/f/programming-languages-runtimes/evm-target-configuration.md) — Configures the compiler to produce bytecode compatible with specific Ethereum Virtual Machine versions. ([source](https://docs.vyperlang.org/en/latest/compiling-a-contract.html))
- [Interface Compliance Verifications](https://awesome-repositories.com/f/programming-languages-runtimes/interface-contract-implementations/interface-compliance-verifications.md) — Validates that a contract implements all required interface functions at compile time to ensure standard compliance. ([source](https://docs.vyperlang.org/en/latest/interfaces.html))
- [Source Code Modularization](https://awesome-repositories.com/f/programming-languages-runtimes/source-code-modularization.md) — Implements a modular system for sharing logic and behavior across different files using explicit exports. ([source](https://docs.vyperlang.org/en/latest/solidity-differences.html))
- [String and Byte Processing](https://awesome-repositories.com/f/programming-languages-runtimes/string-and-byte-processing.md) — Provides low-level management and storage of text and raw binary data using bounded arrays. ([source](https://docs.vyperlang.org/en/latest/types.html))

### Part of an Awesome List

- [Smart Contract Security](https://awesome-repositories.com/f/awesome-lists/security/smart-contract-security.md) — Includes built-in reentrancy guards, overflow checks, and bounded loops to prevent common contract vulnerabilities.
- [Decentralized Finance](https://awesome-repositories.com/f/awesome-lists/data/decentralized-finance.md) — Enables the construction of automated market makers, tokenized vaults, and liquidity pools.

### Data & Databases

- [Data Type Casting](https://awesome-repositories.com/f/data-databases/data-type-casting.md) — Provides explicit type casting between data types with integrated bounds checks to prevent overflows. ([source](https://docs.vyperlang.org/en/latest/types.html))
- [Hash Table Implementations](https://awesome-repositories.com/f/data-databases/hash-maps/key-mapping-functions/hash-table-implementations.md) — Implements hash tables to map keys to values for efficient state storage and retrieval. ([source](https://docs.vyperlang.org/en/latest/types.html))
- [Escrow Contracts](https://awesome-repositories.com/f/data-databases/escrow-contracts.md) — Implements logic for locking assets in state machines until predefined conditions are met.

### Development Tools & Productivity

- [Semantic Analyzers](https://awesome-repositories.com/f/development-tools-productivity/script-validators/semantic-analyzers.md) — Performs deep semantic analysis during the build process to detect type mismatches and logic errors. ([source](https://docs.vyperlang.org/en/latest/compiler-exceptions.html))
- [Smart Contract Deployment Tools](https://awesome-repositories.com/f/development-tools-productivity/smart-contract-deployment-tools.md) — Supports multiple strategies for deploying contracts on-chain, including minimal proxies and raw initcode. ([source](https://docs.vyperlang.org/en/latest/built-in-functions.html))
- [Build Bundle Archives](https://awesome-repositories.com/f/development-tools-productivity/build-bundling-tools/build-bundle-archives.md) — Packages input sources, compiler settings, and metadata into archives to guarantee reproducible builds. ([source](https://docs.vyperlang.org/en/latest/compiling-a-contract.html))
- [Contract Development Environments](https://awesome-repositories.com/f/development-tools-productivity/contract-development-environments.md) — Provides a local execution environment with network forking for fast testing and debug traces. ([source](https://docs.vyperlang.org/en/latest/testing-contracts.html))

### DevOps & Infrastructure

- [Contract Persistent State Storage](https://awesome-repositories.com/f/devops-infrastructure/custom-storage-adapters/state-storage-implementations/contract-persistent-state-storage.md) — Implements persistent storage variables that maintain contract state across different blockchain transactions. ([source](https://docs.vyperlang.org/en/latest/quickstart.html))

### Scientific & Mathematical Computing

- [Fixed-Point Arithmetic Libraries](https://awesome-repositories.com/f/scientific-mathematical-computing/numerical-mathematical-foundations/arithmetic-number-types/fixed-point-arithmetic-libraries.md) — Provides native fixed-point decimal types and arithmetic to ensure precision in financial smart contract calculations. ([source](http://docs.vyperlang.org/en/latest/index.html))
- [Decimal Arithmetic Types](https://awesome-repositories.com/f/scientific-mathematical-computing/floating-point-arithmetic/decimal-arithmetic-types.md) — Implements a native decimal type to ensure exact arithmetic and prevent precision loss in financial calculations.

### Security & Cryptography

- [Data Hashing Utilities](https://awesome-repositories.com/f/security-cryptography/data-hashing-utilities.md) — Generates Keccak256 and SHA256 cryptographic hashes of strings and byte arrays. ([source](https://docs.vyperlang.org/en/latest/built-in-functions.html))
- [Digital Asset Ownership Management](https://awesome-repositories.com/f/security-cryptography/digital-asset-ownership-management.md) — Tracks ownership balances for multiple users and handles secure on-chain asset transfers. ([source](https://docs.vyperlang.org/en/latest/vyper-by-example/company-stock.html))
- [Elliptic Curve Cryptography](https://awesome-repositories.com/f/security-cryptography/elliptic-curve-cryptography.md) — Implements Alt-BN128 curve operations, including point addition and scalar multiplication. ([source](https://docs.vyperlang.org/en/latest/built-in-functions.html))
- [Reentrancy Guards](https://awesome-repositories.com/f/security-cryptography/fraud-prevention/reentrancy-guards.md) — Provides a built-in lock mechanism to prevent recursive function calls and stop state-manipulation attacks.
- [Public Key Recovery](https://awesome-repositories.com/f/security-cryptography/public-key-authentication/public-key-retrieval/public-key-recovery.md) — Extracts network addresses from elliptic curve signatures to verify authorized users. ([source](https://docs.vyperlang.org/en/latest/built-in-functions.html))
- [Reentrancy Mutexes](https://awesome-repositories.com/f/security-cryptography/reentrancy-mutexes.md) — Prevents recursive calls to the same function using a built-in mutex to stop state-manipulation attacks. ([source](https://docs.vyperlang.org/en/latest/solidity-differences.html))
- [Ethereum Signature Verifiers](https://awesome-repositories.com/f/security-cryptography/cryptographic-signature-verification/ethereum-signature-verifiers.md) — Implements secp256k1 signature verification to recover addresses and verify authorized users. ([source](https://docs.vyperlang.org/en/latest/vyper-by-example/wallet.html))
- [Reentrancy Visibility Markers](https://awesome-repositories.com/f/security-cryptography/fraud-prevention/reentrancy-guards/reentrancy-visibility-markers.md) — Uses explicit keywords for state-changing calls to highlight potential reentrancy risks during code review. ([source](https://docs.vyperlang.org/en/latest/solidity-differences.html))
- [Business Constraint Enforcement](https://awesome-repositories.com/f/security-cryptography/identity-access-management/access-control/business-constraint-enforcement.md) — Enforces business-logic constraints such as time deadlines and funding thresholds to block invalid actions. ([source](https://docs.vyperlang.org/en/latest/vyper-by-example/crowdfund.html))
- [Multi-Party Wallet Security](https://awesome-repositories.com/f/security-cryptography/multi-party-wallet-security.md) — Supports the implementation of multi-signature wallets and asset protections to secure funds. ([source](https://docs.vyperlang.org/en/latest/vyper-by-example/index.html))
- [Permission-Based Access Control](https://awesome-repositories.com/f/security-cryptography/permission-based-access-control.md) — Restricts the execution of administrative functions to specific authorized blockchain addresses. ([source](https://docs.vyperlang.org/en/latest/vyper-by-example/voting.html))
- [Transaction Nonce Tracking](https://awesome-repositories.com/f/security-cryptography/transaction-nonce-tracking.md) — Tracks sequence counters for approved actions to prevent transaction replay attacks. ([source](https://docs.vyperlang.org/en/latest/vyper-by-example/wallet.html))

### Software Engineering & Architecture

- [Compile-Time Loop Bounds](https://awesome-repositories.com/f/software-engineering-architecture/compile-time-code-generation/iterative-code-generation/iterative-loop-constructs/compile-time-loop-bounds.md) — Restricts all loops to a compile-time upper bound to ensure predictable gas costs and prevent infinite execution. ([source](https://docs.vyperlang.org/en/latest/solidity-differences.html))
- [Formal Verification Targets](https://awesome-repositories.com/f/software-engineering-architecture/formal-verification-targets.md) — Designed with semantics that serve as a target for formal verification and machine-checked proofs of correctness.
- [Fungible Token Standards](https://awesome-repositories.com/f/software-engineering-architecture/fungible-token-standards.md) — Implements industry-standard interfaces for managing fungible tokens, including balance transfers and total supply tracking. ([source](https://docs.vyperlang.org/en/latest/vyper-by-example/erc20.html))
- [Multi-Token Standards](https://awesome-repositories.com/f/software-engineering-architecture/multi-token-standards.md) — Supports the implementation of multi-token standards that manage both fungible and non-fungible assets in one contract. ([source](https://docs.vyperlang.org/en/latest/vyper-by-example/erc1155.html))
- [Non-Fungible Token Implementations](https://awesome-repositories.com/f/software-engineering-architecture/non-fungible-token-implementations.md) — Provides reference implementations for non-fungible tokens to manage unique digital assets and ownership. ([source](https://docs.vyperlang.org/en/latest/vyper-by-example/erc721.html))
- [Recursive Call Prohibitions](https://awesome-repositories.com/f/software-engineering-architecture/recursive-call-prohibitions.md) — Blocks recursive function calls to prevent stack overflows and ensure a predictable execution flow.
- [Token Standard Implementations](https://awesome-repositories.com/f/software-engineering-architecture/token-standard-implementations.md) — Implements a wide range of industry token standards including fungible, non-fungible, and multi-token specifications. ([source](https://docs.vyperlang.org/en/latest/toctree.html))
- [Transaction Revert Conditions](https://awesome-repositories.com/f/software-engineering-architecture/transaction-revert-conditions.md) — Validates specific requirements and reverts the transaction if the condition is false to ensure state integrity. ([source](https://docs.vyperlang.org/en/latest/statements.html))
- [Custom Data Structures](https://awesome-repositories.com/f/software-engineering-architecture/type-safe-development/smart-contract-type-safety/custom-data-structures.md) — Allows the definition of specialized named structures to organize complex on-chain data. ([source](https://docs.vyperlang.org/en/latest/types.html))
- [Smart Contract Metadata](https://awesome-repositories.com/f/software-engineering-architecture/api-contract-definitions/smart-contract-metadata.md) — Attaches structured metadata such as licenses and authorship directly to the contract binaries. ([source](https://docs.vyperlang.org/en/latest/natspec.html))
- [Contract Assertion Handling](https://awesome-repositories.com/f/software-engineering-architecture/contract-assertion-handling.md) — Reverts execution and provides error messages using assertions or explicit raise statements. ([source](https://docs.vyperlang.org/en/latest/solidity-differences.html))
- [Storage Layout Preservation](https://awesome-repositories.com/f/software-engineering-architecture/contract-upgradeability/storage-layout-preservation.md) — Provides mechanisms to assign variables to specific memory slots to preserve storage layout across contract upgrades. ([source](https://docs.vyperlang.org/en/latest/scoping-and-declarations.html))
- [On-Chain Voting Engines](https://awesome-repositories.com/f/software-engineering-architecture/governance-voting-systems/on-chain-voting-engines.md) — Supports the development of on-chain voting mechanisms and decision-making frameworks for protocol management.
- [Programmable Financial Instruments](https://awesome-repositories.com/f/software-engineering-architecture/programmable-financial-instruments.md) — Implements architectural patterns for on-chain financial logic, including escrow services and crowdfunding platforms. ([source](https://docs.vyperlang.org/en/latest/vyper-by-example/index.html))
- [Build Hash Verifications](https://awesome-repositories.com/f/software-engineering-architecture/reproducible-builds/enclave-build-verification/build-hash-verifications.md) — Generates recursive SHA-256 hashes of source code and dependencies to verify build integrity. ([source](https://docs.vyperlang.org/en/latest/compiling-a-contract.html))
- [Tokenized Asset Vaults](https://awesome-repositories.com/f/software-engineering-architecture/tokenized-asset-vaults.md) — Implements standardized tokenized asset vaults where users deposit assets in exchange for proportional ownership shares. ([source](https://docs.vyperlang.org/en/latest/vyper-by-example/erc4626.html))

### System Administration & Monitoring

- [Blockchain Event Logs](https://awesome-repositories.com/f/system-administration-monitoring/log-event-filtering/blockchain-event-logs.md) — Provides mechanisms to record transaction details as blockchain event logs for external search and monitoring. ([source](https://docs.vyperlang.org/en/latest/vyper-by-example/company-stock.html))

### Testing & Quality Assurance

- [Gas Consumption Analysis](https://awesome-repositories.com/f/testing-quality-assurance/gas-consumption-analysis.md) — Calculates the total resource cost of function calls by enforcing bounded loops and prohibiting recursion. ([source](http://docs.vyperlang.org/en/latest/))
- [Static Gas Prediction](https://awesome-repositories.com/f/testing-quality-assurance/gas-consumption-analysis/static-gas-prediction.md) — Calculates resource costs by enforcing bounded loops and prohibiting recursion to ensure predictable execution limits.
- [Formal Verification Tools](https://awesome-repositories.com/f/testing-quality-assurance/validation-verification/formal-verification-tools.md) — Provides a target for formal verification to prove that source code satisfies specific correctness properties. ([source](https://docs.vyperlang.org/en/latest/deep-verification.html))
- [Interface Compliance Validators](https://awesome-repositories.com/f/testing-quality-assurance/validation-verification/input-validation/compile-time-validators/interface-compliance-validators.md) — Verifies that all required function signatures are implemented before bytecode generation.

### User Interface & Experience

- [Transaction Log Emissions](https://awesome-repositories.com/f/user-interface-experience/component-utilities/ui-frameworks/component-apis/event-communication-systems/event-emission-declarations/custom-event-emission/transaction-log-emissions.md) — Writes structured data to transaction logs with indexed topics for external monitoring of contract state. ([source](https://docs.vyperlang.org/en/latest/event-logging.html))

### Web Development

- [ABI Encoding Routines](https://awesome-repositories.com/f/web-development/smart-contract-environments/smart-contract-callers/abi-mappings/abi-encoding-routines.md) — Implements standardized byte-level encoding for arguments to ensure compatibility with the Ethereum Virtual Machine. ([source](https://docs.vyperlang.org/en/latest/built-in-functions.html))
- [Cross-Contract Calls](https://awesome-repositories.com/f/web-development/smart-contract-environments/smart-contract-callers/cross-contract-calls.md) — Allows contracts to execute arbitrary calls to other addresses with custom payloads and values. ([source](https://docs.vyperlang.org/en/latest/vyper-by-example/wallet.html))
- [Automated Contract Testing Suites](https://awesome-repositories.com/f/web-development/smart-contract-environments/automated-contract-testing-suites.md) — Executes automated test suites to verify smart contract behavior and state transitions before deployment. ([source](https://docs.vyperlang.org/en/latest/quickstart.html))

### Business & Productivity Software

- [Automated Market Makers](https://awesome-repositories.com/f/business-productivity-software/decentralized-exchange-integrations/automated-market-makers.md) — Implements the constant product formula used by automated market makers to enable token swapping. ([source](https://docs.vyperlang.org/en/latest/vyper-by-example/market-maker.html))
- [Liquidity Pool Frameworks](https://awesome-repositories.com/f/business-productivity-software/decentralized-exchange-integrations/liquidity-pool-frameworks.md) — Provides factory patterns to build and manage multiple automated market makers and liquidity pools. ([source](https://docs.vyperlang.org/en/latest/vyper-by-example/index.html))

### Networking & Communication

- [Cryptocurrency Payment Processing](https://awesome-repositories.com/f/networking-communication/global-peer-to-peer-payments/cryptocurrency-payment-processing.md) — Facilitates the processing of cryptocurrency payments and the distribution of funds based on contract logic. ([source](https://docs.vyperlang.org/en/latest/vyper-by-example/company-stock.html))
