The Cairo core library, also known as Corelib, provides the foundational building blocks for writing provable programs in Cairo. It offers essential utilities, data structures, mathematical functions, cryptographic tools, and system interactions making it suitable for both onchain and offchain development. Whether you are working on Starknet smart contracts, cryptographic applications, or general-purpose Cairo programs, the corelib provides the fundamental tools needed.The corelib is available to all Cairo packages by default, meaning its features are available by simply importing specific modules into your program as follows:
use core::array::Array;fn main() { let mut arr = Array::new(); arr.append(42);}
This documentation serves as a comprehensive reference for all components of the Corelib. It organizes functionality into modules, constants, functions, types, and traits, allowing developers to explore and understand available features efficiently. It is based on the auto-generated documentation of the corelib’s codebase using Scarb, so if you find a bug, have a feature request, or want to improve the documentation, simply report an issue or submit a pull request on either Cairo’s or Scarb’s GitHub repositories.If you already know what you are looking for, the fastest way to find it is to use the search bar at the top of the page. Otherwise, you can take a quick tour of the documentation and start clicking on anything the seems interesting. If this is your first time, we recommend starting with browsing the library’s modules and experimenting with their functionality in your Cairo programs.Happy coding! 𓅃
Core traits for various operations. This module provides a collection of essential traits that define common behavior patterns for Cairo types.
core::boolean
Boolean operations. The bool type is a primitive type in Cairo representing a boolean value that can be either true or false.
core::circuit
Efficient modular arithmetic computations using arithmetic circuits. This module provides a type-safe way to perform modular arithmetic operations using arithmetic circuits.
core::blake
—
core::box
Box is a smart pointer that allows for heap allocation.
core::nullable
A wrapper type for handling optional values. Nullable is a wrapper type that can either contain a value stored in a Box or be null.
core::array
A contiguous collection of elements of the same type in memory, written Array. Arrays have O(1) indexing, O(1) push and O(1) pop (from the front).
core::dict
A dictionary-like data structure that maps felt252 keys to values of any type. The Felt252Dict provides efficient key-value storage with operations for inserting, retrieving, and updating values.
core::result
Error handling with the Result type. Result is the type used for returning and propagating errors. It is an enum with the variants, Ok(T), representing success and containing a value, and Err(E), representing error and containing an error value.
core::option
Optional values. The Option type represents an optional value: every Option is either Some and contains a value, or None, and does not.
core::clone
The Clone trait provides the ability to duplicate instances of types that cannot be ‘implicitly copied’. In Cairo, some simple types are “implicitly copyable”: when you assign them or pass them as arguments, the receiver will get a copy, leaving the original value in place.
core::ec
Functions and constructs related to elliptic curve operations on the STARK curve. This module provides implementations for various elliptic curve operations tailored for the STARK curve.
core::ecdsa
Elliptic Curve Digital Signature Algorithm (ECDSA) for the STARK curve. This module provides implementations for ECDSA signature verification and public key recovery.
core::integer
Integer types and operations. This module provides the built-in integer types and their associated operations.
core::cmp
Utilities for comparing and ordering values. This module contains functions that rely on the PartialOrd trait for comparing values.
core::gas
Utilities for handling gas in Cairo code.
core::math
Mathematical operations and utilities. Provides extended GCD, modular inverse, and modular arithmetic operations.
core::num
—
core::ops
Overloadable operators. Implementing these traits allows you to overload certain operators. Note: Other overloadable operators are also defined in the core::traits module.
core::panics
Core panic mechanism. This module provides the core panic functionality used for error handling in Cairo. It defines the basic types and functions used to trigger and manage panics, which are used when an unrecoverable error is encountered.
core::hash
Generic hashing support. This module provides a hash state abstraction that can be updated with values and finalized to produce a hash digest.
core::keccak
Keccak-256 cryptographic hash function implementation.
core::pedersen
Pedersen hash related traits implementations. This module provides an implementation of the Pedersen hash function, which is a collision-resistant cryptographic hash function. The HashState allows for efficient computation of Pedersen hashes.
core::qm31
Definition for the qm31 type. Only available for local proofs. The implementations defined in this module can be accessed by using the traits directly.
core::serde
Serialization and deserialization of data structures. This module provides traits and implementations for converting Cairo types into a sequence of felt252 values and back.
core::sha256
Implementation of the SHA-256 cryptographic hash function. This module provides functions to compute SHA-256 hashes of data. The input data can be an array of 32-bit words, or a ByteArray.
core::poseidon
Poseidon hash related traits implementations and functions. This module provides cryptographic hash functions based on the Poseidon permutation.
core::debug
Utilities related to printing of values at runtime. The recommended way of printing values is by using the Display and Debug traits available in the fmt module.
core::fmt
Functionality for formatting values. The main components of this module are the formatting traits and the Formatter struct.
core::starknet
Functionalities for interacting with the Starknet network.
core::internal
—
core::zeroable
Types and traits for handling non-zero values and zero checking operations. This module provides the NonZero wrapper type which guarantees that a value is never zero.
core::bytes_31
Definitions and utilities for the bytes31 type. The bytes31 type is a compact, indexable 31-byte type.
core::byte_array
ByteArray is designed to handle large sequences of bytes with operations like appending, concatenation, and accessing individual bytes. It uses a structure that combines an Array of bytes31 chunks with a pending word for efficient storage.
core::string
—
core::iter
Composable external iteration. If you’ve found yourself with a collection of some kind, and needed to perform an operation on the elements of said collection, you’ll quickly run into ‘iterators’.
core::metaprogramming
Metaprogramming utilities.
core::testing
Measurement of gas consumption for testing purpose. This module provides the get_available_gas function, useful for asserting the amount of gas consumed by a particular operation or function call.
core::to_byte_array
ASCII representation of numeric types for ByteArray manipulation. This module enables conversion of numeric values into their ASCII string representation, which can then be used to build ByteArray instances.
Panics with the given const argument felt252 as error message.
core::assert
Panics if cond is false with the given felt252 as error message.
core::bool
bool enum representing either false or true.
core::never
—
core::usize
usize is an alias for u32 type.
core::RangeCheck
General purpose implicits.
core::SegmentArena
—
core::felt252
felt252 is the basic field element used in Cairo. It corresponds to an integer in the range 0 ≤ x < P where P is a very large prime number currently equal to 2^251 + 17⋅2^192 + 1.
core::felt252_div
Performs division on felt252 values in Cairo’s finite field. Unlike regular integer division, felt252 division returns a field element n that satisfies the equation a = b * n, where a is the dividend and b is the divisor.
{"docsConfig":{"theme":"almond","$schema":"https://mintlify.com/docs.json","name":"Starknet Documentation","colors":{"primary":"#2d51c7","light":"#2d51c7","dark":"#2d51c7"},"logo":{"light":"https://mintcdn.com/starkware-9575960b/O9RToFlQU4IuVj_z/assets/logo/light.svg?fit=max\u0026auto=format\u0026n=O9RToFlQU4IuVj_z\u0026q=85\u0026s=cd206970f7fb231820e382b3c2bf15db","dark":"https://mintcdn.com/starkware-9575960b/O9RToFlQU4IuVj_z/assets/logo/dark.svg?fit=max\u0026auto=format\u0026n=O9RToFlQU4IuVj_z\u0026q=85\u0026s=47f3d6fbc7fa77112febf6ced04a4f65"},"favicon":"https://mintcdn.com/starkware-9575960b/MI0McrHoPyCJzb_Y/assets/favicon/favicon.png?fit=max\u0026auto=format\u0026n=MI0McrHoPyCJzb_Y\u0026q=85\u0026s=832bdc8b73548823a627f06c932a5acf","background":{"decoration":"gradient"},"navbar":{"links":[{"icon":"user-robot","href":"https://agent.starknet.io/","label":"Ask AI"}]},"footer":{"socials":{"x":"https://x.com/Starknet","github":"https://github.com/starknet-io/starknet-docs","discord":"https://discord.gg/starknet-community"}},"fonts":{"heading":{"family":"Inter"},"body":{"family":"Inter"}},"integrations":{"ga4":{"measurementId":"G-WY42TERK5P"}},"contextual":{"options":["copy","view","chatgpt","claude","mcp","cursor"],"display":"header"},"styling":{"latex":true},"navigation":{"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"starkware-9575960b","hasAudioNarration":false,"actualSubdomain":"starkware-9575960b","customDomains":["docs.starknet.io"],"gitSource":{"type":"github","owner":"starknet-io","repo":"starknet-docs","deployBranch":"main","contentDirectory":"","isPrivate":false,"mountPath":"","label":""},"chroma":{"liveDeploymentHistoryId":"6ad08fc88cf01bb85565be36","collectionId":"b5113ab1-cf88-496d-a0ab-840b7bd48312","schemaVersion":"v3","latestBuiltDeploymentHistoryId":"6ad08fc88cf01bb85565be36"},"feedback":{"thumbs":true,"edits":true,"issues":true},"entitlements":{"AI_CHAT":{"status":"DISABLED"}},"buildId":"6ad08fc88cf01bb85565be36","clientVersion":"0.0.3971","searchFilterCounts":[{"language":"default","tag":"Build","count":497},{"language":"default","tag":"Corelib","count":417},{"language":"default","tag":"Modules","count":417},{"language":"default","tag":"core::starknet","count":113},{"language":"default","tag":"Learn","count":94},{"language":"default","tag":"core::integer","count":70},{"language":"default","tag":"S-two book","count":56},{"language":"default","tag":"Examples","count":46},{"language":"default","tag":"S-two: Under the Hood","count":32},{"language":"default","tag":"core::traits","count":29}]},"assistantConfig":{},"basePath":"","hasChatPermissions":false,"hasWebMcpPermissions":false,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-v7-file-tree","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"pause-universal-search-reconcile","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"per-site-search-delta","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-private-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-nav-generations","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"byok-sep-25","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"vite-origin","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-agent-model-picker","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-updated-9-15","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-sso-scim","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-signup","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"isAtlas":false,"googleFontsInlined":false},"customCss":[],"page":{"pagePath":"build/corelib/intro","slug":"/build/corelib/intro","pageMetadata":{"title":"Introduction to the Corelib documentation","sidebarTitle":"Introduction","description":null,"href":"/build/corelib/intro"},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx,jsxs:_jsxs}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){const _components={a:`a`,code:`code`,em:`em`,p:`p`,pre:`pre`,span:`span`,tbody:`tbody`,td:`td`,th:`th`,thead:`thead`,tr:`tr`,..._provideComponents(),...props.components},{CodeBlock,Heading,Table}=_components;if(!CodeBlock)_missingMdxReference(`CodeBlock`,true);if(!Heading)_missingMdxReference(`Heading`,true);if(!Table)_missingMdxReference(`Table`,true);return _jsxs(_Fragment,{children:[_jsx(Heading,{level:`2`,id:`what-is-the-corelib`,children:`What is the Corelib?`}),`\n`,_jsxs(_components.p,{children:[`The Cairo core library, also known as `,_jsx(_components.em,{children:`Corelib`}),`, provides the foundational building blocks for writing provable programs in Cairo. It offers essential utilities, data structures, mathematical functions, cryptographic tools, and system interactions making it suitable for both onchain and offchain development. Whether you are working on Starknet smart contracts, cryptographic applications, or general-purpose Cairo programs, the corelib provides the fundamental tools needed.`]}),`\n`,_jsx(_components.p,{children:`The corelib is available to all Cairo packages by default, meaning its features are available by simply importing specific modules into your program as follows:`}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`6`,language:`rust`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`rust`,children:_jsxs(_components.code,{language:`rust`,numberOfLines:`6`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`use`}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#4EC9B0`},children:` core`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`::`}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#4EC9B0`},children:`array`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`::`}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#4EC9B0`},children:`Array`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`;`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`fn`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:` main`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`() {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:` let`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:` mut`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` arr`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` =`}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#4EC9B0`},children:` Array`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`::`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`new`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`();`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` arr`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`append`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:`42`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`);`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`}`})}),`\n`]})})}),`\n`,_jsx(Heading,{level:`2`,id:`how-to-use-this-documentation`,children:`How to use this documentation?`}),`\n`,_jsxs(_components.p,{children:[`This documentation serves as a comprehensive reference for all components of the Corelib. It organizes functionality into modules, constants, functions, types, and traits, allowing developers to explore and understand available features efficiently. It is based on the auto-generated documentation of the corelib’s codebase using `,_jsx(_components.a,{href:`https://docs.swmansion.com/scarb/docs/extensions/documentation-generation.html`,children:`Scarb`}),`, so if you find a bug, have a feature request, or want to improve the documentation, simply report an issue or submit a pull request on either `,_jsx(_components.a,{href:`https://github.com/starkware-libs/cairo`,children:`Cairo’s`}),` or `,_jsx(_components.a,{href:`https://github.com/software-mansion/scarb`,children:`Scarb’s`}),` GitHub repositories.`]}),`\n`,_jsxs(_components.p,{children:[`If you already know what you are looking for, the fastest way to find it is to use the search bar at the top of the page. Otherwise, you can take `,_jsx(_components.a,{href:`#a-quick-tour-of-the-documentation`,children:`a quick tour of the documentation`}),` and start clicking on anything the seems interesting. If this is your first time, we recommend starting with browsing the library’s modules and experimenting with their functionality in your Cairo programs.`]}),`\n`,_jsx(_components.p,{children:`Happy coding! 𓅃`}),`\n`,_jsx(Heading,{level:`2`,id:`a-quick-tour-of-the-documentation`,children:`A quick tour of the documentation`}),`\n`,_jsx(Heading,{level:`3`,id:`modules`,children:`Modules`}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{style:{textAlign:`left`}}),_jsx(_components.th,{style:{textAlign:`left`}})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{style:{textAlign:`left`},children:`core::traits`}),_jsx(_components.td,{style:{textAlign:`left`},children:`Core traits for various operations. This module provides a collection of essential traits that define common behavior patterns for Cairo types.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{style:{textAlign:`left`},children:`core::boolean`}),_jsxs(_components.td,{style:{textAlign:`left`},children:[`Boolean operations. The `,_jsx(_components.code,{children:`bool`}),` type is a primitive type in Cairo representing a boolean value that can be either `,_jsx(_components.code,{children:`true`}),` or `,_jsx(_components.code,{children:`false`}),`.`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{style:{textAlign:`left`},children:`core::circuit`}),_jsx(_components.td,{style:{textAlign:`left`},children:`Efficient modular arithmetic computations using arithmetic circuits. This module provides a type-safe way to perform modular arithmetic operations using arithmetic circuits.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{style:{textAlign:`left`},children:`core::blake`}),_jsx(_components.td,{style:{textAlign:`left`},children:`—`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{style:{textAlign:`left`},children:`core::box`}),_jsxs(_components.td,{style:{textAlign:`left`},children:[_jsx(_components.code,{children:`Box`}),` is a smart pointer that allows for heap allocation.`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{style:{textAlign:`left`},children:`core::nullable`}),_jsxs(_components.td,{style:{textAlign:`left`},children:[`A wrapper type for handling optional values. `,_jsx(_components.code,{children:`Nullable`}),` is a wrapper type that can either contain a value stored in a `,_jsx(_components.code,{children:`Box`}),` or be null.`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{style:{textAlign:`left`},children:`core::array`}),_jsxs(_components.td,{style:{textAlign:`left`},children:[`A contiguous collection of elements of the same type in memory, written `,_jsx(_components.code,{children:`Array`}),`. Arrays have O(1) indexing, O(1) push and O(1) pop (from the front).`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{style:{textAlign:`left`},children:`core::dict`}),_jsxs(_components.td,{style:{textAlign:`left`},children:[`A dictionary-like data structure that maps `,_jsx(_components.code,{children:`felt252`}),` keys to values of any type. The `,_jsx(_components.code,{children:`Felt252Dict`}),` provides efficient key-value storage with operations for inserting, retrieving, and updating values.`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{style:{textAlign:`left`},children:`core::result`}),_jsxs(_components.td,{style:{textAlign:`left`},children:[`Error handling with the `,_jsx(_components.code,{children:`Result`}),` type. `,_jsx(_components.code,{children:`Result`}),` is the type used for returning and propagating errors. It is an enum with the variants, `,_jsx(_components.code,{children:`Ok(T)`}),`, representing success and containing a value, and `,_jsx(_components.code,{children:`Err(E)`}),`, representing error and containing an error value.`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{style:{textAlign:`left`},children:`core::option`}),_jsxs(_components.td,{style:{textAlign:`left`},children:[`Optional values. The `,_jsx(_components.code,{children:`Option`}),` type represents an optional value: every `,_jsx(_components.code,{children:`Option`}),` is either `,_jsx(_components.code,{children:`Some`}),` and contains a value, or `,_jsx(_components.code,{children:`None`}),`, and does not.`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{style:{textAlign:`left`},children:`core::clone`}),_jsxs(_components.td,{style:{textAlign:`left`},children:[`The `,_jsx(_components.code,{children:`Clone`}),` trait provides the ability to duplicate instances of types that cannot be ‘implicitly copied’. In Cairo, some simple types are “implicitly copyable”: when you assign them or pass them as arguments, the receiver will get a copy, leaving the original value in place.`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{style:{textAlign:`left`},children:`core::ec`}),_jsx(_components.td,{style:{textAlign:`left`},children:`Functions and constructs related to elliptic curve operations on the STARK curve. This module provides implementations for various elliptic curve operations tailored for the STARK curve.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{style:{textAlign:`left`},children:`core::ecdsa`}),_jsx(_components.td,{style:{textAlign:`left`},children:`Elliptic Curve Digital Signature Algorithm (ECDSA) for the STARK curve. This module provides implementations for ECDSA signature verification and public key recovery.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{style:{textAlign:`left`},children:`core::integer`}),_jsx(_components.td,{style:{textAlign:`left`},children:`Integer types and operations. This module provides the built-in integer types and their associated operations.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{style:{textAlign:`left`},children:`core::cmp`}),_jsxs(_components.td,{style:{textAlign:`left`},children:[`Utilities for comparing and ordering values. This module contains functions that rely on the `,_jsx(_components.code,{children:`PartialOrd`}),` trait for comparing values.`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{style:{textAlign:`left`},children:`core::gas`}),_jsx(_components.td,{style:{textAlign:`left`},children:`Utilities for handling gas in Cairo code.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{style:{textAlign:`left`},children:`core::math`}),_jsx(_components.td,{style:{textAlign:`left`},children:`Mathematical operations and utilities. Provides extended GCD, modular inverse, and modular arithmetic operations.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{style:{textAlign:`left`},children:`core::num`}),_jsx(_components.td,{style:{textAlign:`left`},children:`—`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{style:{textAlign:`left`},children:`core::ops`}),_jsxs(_components.td,{style:{textAlign:`left`},children:[`Overloadable operators. Implementing these traits allows you to overload certain operators. Note: Other overloadable operators are also defined in the `,_jsx(_components.code,{children:`core::traits`}),` module.`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{style:{textAlign:`left`},children:`core::panics`}),_jsx(_components.td,{style:{textAlign:`left`},children:`Core panic mechanism. This module provides the core panic functionality used for error handling in Cairo. It defines the basic types and functions used to trigger and manage panics, which are used when an unrecoverable error is encountered.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{style:{textAlign:`left`},children:`core::hash`}),_jsx(_components.td,{style:{textAlign:`left`},children:`Generic hashing support. This module provides a hash state abstraction that can be updated with values and finalized to produce a hash digest.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{style:{textAlign:`left`},children:`core::keccak`}),_jsx(_components.td,{style:{textAlign:`left`},children:`Keccak-256 cryptographic hash function implementation.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{style:{textAlign:`left`},children:`core::pedersen`}),_jsxs(_components.td,{style:{textAlign:`left`},children:[`Pedersen hash related traits implementations. This module provides an implementation of the Pedersen hash function, which is a collision-resistant cryptographic hash function. The `,_jsx(_components.code,{children:`HashState`}),` allows for efficient computation of Pedersen hashes.`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{style:{textAlign:`left`},children:`core::qm31`}),_jsxs(_components.td,{style:{textAlign:`left`},children:[`Definition for the `,_jsx(_components.code,{children:`qm31`}),` type. Only available for local proofs. The implementations defined in this module can be accessed by using the traits directly.`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{style:{textAlign:`left`},children:`core::serde`}),_jsxs(_components.td,{style:{textAlign:`left`},children:[`Serialization and deserialization of data structures. This module provides traits and implementations for converting Cairo types into a sequence of `,_jsx(_components.code,{children:`felt252`}),` values and back.`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{style:{textAlign:`left`},children:`core::sha256`}),_jsxs(_components.td,{style:{textAlign:`left`},children:[`Implementation of the SHA-256 cryptographic hash function. This module provides functions to compute SHA-256 hashes of data. The input data can be an array of 32-bit words, or a `,_jsx(_components.code,{children:`ByteArray`}),`.`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{style:{textAlign:`left`},children:`core::poseidon`}),_jsx(_components.td,{style:{textAlign:`left`},children:`Poseidon hash related traits implementations and functions. This module provides cryptographic hash functions based on the Poseidon permutation.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{style:{textAlign:`left`},children:`core::debug`}),_jsxs(_components.td,{style:{textAlign:`left`},children:[`Utilities related to printing of values at runtime. The recommended way of printing values is by using the `,_jsx(_components.code,{children:`Display`}),` and `,_jsx(_components.code,{children:`Debug`}),` traits available in the `,_jsx(_components.code,{children:`fmt`}),` module.`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{style:{textAlign:`left`},children:`core::fmt`}),_jsxs(_components.td,{style:{textAlign:`left`},children:[`Functionality for formatting values. The main components of this module are the formatting traits and the `,_jsx(_components.code,{children:`Formatter`}),` struct.`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{style:{textAlign:`left`},children:`core::starknet`}),_jsx(_components.td,{style:{textAlign:`left`},children:`Functionalities for interacting with the Starknet network.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{style:{textAlign:`left`},children:`core::internal`}),_jsx(_components.td,{style:{textAlign:`left`},children:`—`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{style:{textAlign:`left`},children:`core::zeroable`}),_jsxs(_components.td,{style:{textAlign:`left`},children:[`Types and traits for handling non-zero values and zero checking operations. This module provides the `,_jsx(_components.code,{children:`NonZero`}),` wrapper type which guarantees that a value is never zero.`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{style:{textAlign:`left`},children:`core::bytes_31`}),_jsxs(_components.td,{style:{textAlign:`left`},children:[`Definitions and utilities for the `,_jsx(_components.code,{children:`bytes31`}),` type. The `,_jsx(_components.code,{children:`bytes31`}),` type is a compact, indexable 31-byte type.`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{style:{textAlign:`left`},children:`core::byte_array`}),_jsxs(_components.td,{style:{textAlign:`left`},children:[_jsx(_components.code,{children:`ByteArray`}),` is designed to handle large sequences of bytes with operations like appending, concatenation, and accessing individual bytes. It uses a structure that combines an `,_jsx(_components.code,{children:`Array`}),` of `,_jsx(_components.code,{children:`bytes31`}),` chunks with a pending word for efficient storage.`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{style:{textAlign:`left`},children:`core::string`}),_jsx(_components.td,{style:{textAlign:`left`},children:`—`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{style:{textAlign:`left`},children:`core::iter`}),_jsx(_components.td,{style:{textAlign:`left`},children:`Composable external iteration. If you’ve found yourself with a collection of some kind, and needed to perform an operation on the elements of said collection, you’ll quickly run into ‘iterators’.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{style:{textAlign:`left`},children:`core::metaprogramming`}),_jsx(_components.td,{style:{textAlign:`left`},children:`Metaprogramming utilities.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{style:{textAlign:`left`},children:`core::testing`}),_jsxs(_components.td,{style:{textAlign:`left`},children:[`Measurement of gas consumption for testing purpose. This module provides the `,_jsx(_components.code,{children:`get_available_gas`}),` function, useful for asserting the amount of gas consumed by a particular operation or function call.`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{style:{textAlign:`left`},children:`core::to_byte_array`}),_jsxs(_components.td,{style:{textAlign:`left`},children:[`ASCII representation of numeric types for `,_jsx(_components.code,{children:`ByteArray`}),` manipulation. This module enables conversion of numeric values into their ASCII string representation, which can then be used to build `,_jsx(_components.code,{children:`ByteArray`}),` instances.`]})]})]})]}),`\n`,_jsx(Heading,{level:`3`,id:`miscellaneous`,children:`Miscellaneous`}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{style:{textAlign:`left`}}),_jsx(_components.th,{style:{textAlign:`left`}})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{style:{textAlign:`left`},children:`core::panic_with_felt252`}),_jsxs(_components.td,{style:{textAlign:`left`},children:[`Panics with the given `,_jsx(_components.code,{children:`felt252`}),` as error message.`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{style:{textAlign:`left`},children:`core::panic_with_const_felt252`}),_jsxs(_components.td,{style:{textAlign:`left`},children:[`Panics with the given const argument `,_jsx(_components.code,{children:`felt252`}),` as error message.`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{style:{textAlign:`left`},children:`core::assert`}),_jsxs(_components.td,{style:{textAlign:`left`},children:[`Panics if `,_jsx(_components.code,{children:`cond`}),` is false with the given `,_jsx(_components.code,{children:`felt252`}),` as error message.`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{style:{textAlign:`left`},children:`core::bool`}),_jsxs(_components.td,{style:{textAlign:`left`},children:[_jsx(_components.code,{children:`bool`}),` enum representing either `,_jsx(_components.code,{children:`false`}),` or `,_jsx(_components.code,{children:`true`}),`.`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{style:{textAlign:`left`},children:`core::never`}),_jsx(_components.td,{style:{textAlign:`left`},children:`—`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{style:{textAlign:`left`},children:`core::usize`}),_jsxs(_components.td,{style:{textAlign:`left`},children:[_jsx(_components.code,{children:`usize`}),` is an alias for `,_jsx(_components.code,{children:`u32`}),` type.`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{style:{textAlign:`left`},children:`core::RangeCheck`}),_jsx(_components.td,{style:{textAlign:`left`},children:`General purpose implicits.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{style:{textAlign:`left`},children:`core::SegmentArena`}),_jsx(_components.td,{style:{textAlign:`left`},children:`—`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{style:{textAlign:`left`},children:`core::felt252`}),_jsxs(_components.td,{style:{textAlign:`left`},children:[_jsx(_components.code,{children:`felt252`}),` is the basic field element used in Cairo. It corresponds to an integer in the range 0 ≤ x \u003c P where P is a very large prime number currently equal to 2^251 + 17⋅2^192 + 1.`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{style:{textAlign:`left`},children:`core::felt252_div`}),_jsxs(_components.td,{style:{textAlign:`left`},children:[`Performs division on `,_jsx(_components.code,{children:`felt252`}),` values in Cairo’s finite field. Unlike regular integer division, `,_jsx(_components.code,{children:`felt252`}),` division returns a field element n that satisfies the equation a = b * n, where a is the dividend and b is the divisor.`]})]})]})]})]})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent};function _missingMdxReference(id,component){throw new Error(`Expected `+(component?`component`:`object`)+\" `\"+id+\"` to be defined: you likely forgot to import, pass, or provide it.\")}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"title":"Introduction to the Corelib documentation","sidebarTitle":"Introduction","description":null,"href":"/build/corelib/intro"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[{"title":"What is the Corelib?","slug":"what-is-the-corelib","depth":2,"children":[]},{"title":"How to use this documentation?","slug":"how-to-use-this-documentation","depth":2,"children":[]},{"title":"A quick tour of the documentation","slug":"a-quick-tour-of-the-documentation","depth":2,"children":[{"title":"Modules","slug":"modules","depth":3,"children":[]},{"title":"Miscellaneous","slug":"miscellaneous","depth":3,"children":[]}]}],"codeExamples":{}},"jsLinks":["/_mintlify/custom/starkware-9575960b/eeecb15f508b552c/scripts/convert-admonish-to-callout.js","/_mintlify/custom/starkware-9575960b/f0ac24173b1303e1/scripts/convert-figures-to-markdown.js","/_mintlify/custom/starkware-9575960b/b75d2a7776f4304f/scripts/convert-md-to-mdx.js","/_mintlify/custom/starkware-9575960b/41552570cd859514/scripts/fix-mdx-inline-styles.js","/_mintlify/custom/starkware-9575960b/1eccb28def10321f/scripts/generate-stwo-examples-index.js","/_mintlify/custom/starkware-9575960b/9dfacf470873fadc/scripts/inline-placeholder-fetch.js","/_mintlify/custom/starkware-9575960b/df399cf83ca53965/scripts/inline-stwo-examples.js","/_mintlify/custom/starkware-9575960b/1f6af452e035fbd3/scripts/inline-webinclude-fetch.js","/_mintlify/custom/starkware-9575960b/cb3d50bd423bc8f0/scripts/inline-webinclude-placeholders.js","/_mintlify/custom/starkware-9575960b/9407e8350a8f5727/scripts/normalize-image-paths.js","/_mintlify/custom/starkware-9575960b/017e4f2e041aa3d6/scripts/rename-new-book-paths.js","/_mintlify/custom/starkware-9575960b/d54def91095f7bcc/scripts/rename-stwo-paths.js","/_mintlify/custom/starkware-9575960b/ae6adc018f176561/scripts/replace-index-md-links.js","/_mintlify/custom/starkware-9575960b/98f6754c044d3c89/scripts/replace-stwo-branding.js","/_mintlify/custom/starkware-9575960b/4585986c9d18528b/scripts/rewrite-image-paths.js","/_mintlify/custom/starkware-9575960b/8817cb7b3e05ca0d/scripts/rewrite-stwo-links.js","/_mintlify/custom/starkware-9575960b/6df16f123ddfcb8a/scripts/strip-mdx-extensions-in-links.js","/_mintlify/custom/starkware-9575960b/dfe035ff1e25de39/scripts/fix-duplicate-titles.js","/_mintlify/custom/starkware-9575960b/803a4e6178013788/scripts/generate-s-two-summary.js","/_mintlify/custom/starkware-9575960b/472e48f1b8022997/scripts/fix-corelib3-mdx-braces.js"],"subdomain":"starkware-9575960b","siteName":"Starknet Documentation","title":"Introduction to the Corelib documentation - Starknet Documentation","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-10-15T08:33:22.153Z","originalFileLocation":"build/corelib/intro.mdx"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"system\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"application-name\" content=\"Starknet Documentation\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/starkware-9575960b/d6MxJwuL2anrZfnv/_generated/favicon/android-chrome-192x192.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"/mintlify-assets/_mintlify/favicons/starkware-9575960b/d6MxJwuL2anrZfnv/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/starkware-9575960b/d6MxJwuL2anrZfnv/_generated/favicon/favicon-16x16.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/starkware-9575960b/d6MxJwuL2anrZfnv/_generated/favicon/favicon-32x32.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/starkware-9575960b/d6MxJwuL2anrZfnv/_generated/favicon/favicon.ico\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/starkware-9575960b/d6MxJwuL2anrZfnv/_generated/favicon-dark/android-chrome-192x192.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/starkware-9575960b/d6MxJwuL2anrZfnv/_generated/favicon-dark/favicon-16x16.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/starkware-9575960b/d6MxJwuL2anrZfnv/_generated/favicon-dark/favicon-32x32.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/starkware-9575960b/d6MxJwuL2anrZfnv/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Introduction to the Corelib documentation - Starknet Documentation\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Starknet Documentation\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.starknet.io/build/corelib/intro\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://starkware-9575960b.mintlify.app/_mintlify/api/og/v2?division=Documentation\u0026amp;title=Introduction+to+the+Corelib+documentation\u0026amp;theme=d4de98185e049a92e7d87a84\u0026amp;signature=0299ac1f4986d614dce897c0b8d9c1300dd85d7937604e05a24411c5af2d70aa\">\u003cmeta data-mint-head property=\"og:image:width\" content=\"1200\">\u003cmeta data-mint-head property=\"og:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"twitter:card\" content=\"summary_large_image\">\u003cmeta data-mint-head name=\"twitter:title\" content=\"Introduction to the Corelib documentation - Starknet Documentation\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://starkware-9575960b.mintlify.app/_mintlify/api/og/v2?division=Documentation\u0026amp;title=Introduction+to+the+Corelib+documentation\u0026amp;theme=d4de98185e049a92e7d87a84\u0026amp;signature=0299ac1f4986d614dce897c0b8d9c1300dd85d7937604e05a24411c5af2d70aa\">\u003cmeta data-mint-head name=\"twitter:image:width\" content=\"1200\">\u003cmeta data-mint-head name=\"twitter:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"/mintlify-assets/_mintlify/favicons/starkware-9575960b/d6MxJwuL2anrZfnv/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Starknet Documentation\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#2d51c7\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.starknet.io/build/corelib/intro\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/build/corelib/intro.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.starknet.io/#organization\",\"name\":\"Starknet Documentation\",\"url\":\"https://docs.starknet.io\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/starkware-9575960b/O9RToFlQU4IuVj_z/assets/logo/light.svg?fit=max\u0026auto=format\u0026n=O9RToFlQU4IuVj_z\u0026q=85\u0026s=cd206970f7fb231820e382b3c2bf15db\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.starknet.io#website\",\"name\":\"Starknet Documentation\",\"url\":\"https://docs.starknet.io\",\"publisher\":{\"@id\":\"https://docs.starknet.io/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.starknet.io/build/corelib/intro#webpage\",\"url\":\"https://docs.starknet.io/build/corelib/intro\",\"name\":\"Introduction to the Corelib documentation\",\"dateModified\":\"2026-10-15T08:33:22.153Z\",\"isPartOf\":{\"@id\":\"https://docs.starknet.io#website\"}},{\"@type\":[\"Article\",\"TechArticle\"],\"@id\":\"https://docs.starknet.io/build/corelib/intro#article\",\"headline\":\"Introduction to the Corelib documentation\",\"name\":\"Introduction to the Corelib documentation\",\"url\":\"https://docs.starknet.io/build/corelib/intro\",\"mainEntityOfPage\":{\"@id\":\"https://docs.starknet.io/build/corelib/intro#webpage\"},\"dateModified\":\"2026-10-15T08:33:22.153Z\",\"publisher\":{\"@id\":\"https://docs.starknet.io/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.starknet.io#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Starknet Documentation\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"Starknet Documentation","nav":{"global":null,"tabs":[{"tab":"Welcome","icon":"door-open","pages":[{"title":"Welcome","href":""}]},{"tab":"Build","icon":"helmet-safety","dropdowns":[{"dropdown":"Quickstart","icon":"rocket-launch","pages":[{"title":"Deploy your first contract guide overview","sidebarTitle":"Overview","href":"/build/quickstart/overview"},{"title":"Setting up your development environment","sidebarTitle":"Setting up your environment","href":"/build/quickstart/environment-setup"},{"title":"Creating and understanding the HelloStarknet contract","sidebarTitle":"Creating your first contract","href":"/build/quickstart/hellostarknet"},{"title":"Deploying the HelloStarknet contract locally","sidebarTitle":"Deploying your contract locally","href":"/build/quickstart/devnet"},{"title":"Deploying the HelloStarknet contract on Starknet Sepolia","sidebarTitle":"Deploying your contract on Sepolia","href":"/build/quickstart/sepolia"},{"title":"Recommended next steps after deploying your first contract","sidebarTitle":"Next steps","href":"/build/quickstart/next-steps"},{"title":"Deploy your first Starknet contract guide appendix","sidebarTitle":"Appendix","href":"/build/quickstart/appendix"}]},{"dropdown":"Cairo ↗","icon":"crow"},{"dropdown":"Starkzap","icon":"bolt","pages":[{"group":"Getting Started","icon":"rocket-launch","pages":[{"title":"Overview","icon":"book-open","href":"/build/starkzap/overview"},{"title":"Installation","icon":"gear","href":"/build/starkzap/installation"},{"title":"React Native Integration","icon":"mobile-screen-button","href":"/build/starkzap/react-native"},{"title":"Quick Start","icon":"rocket","href":"/build/starkzap/quick-start"}]},{"group":"Configuration","icon":"cog","pages":[{"title":"Network, RPC, Staking, Bridging, and Logging","icon":"cog","href":"/build/starkzap/configuration"},{"title":"Paymasters","icon":"gift","href":"/build/starkzap/paymasters"}]},{"group":"Using LLMs","icon":"code","pages":[{"title":"AI-Powered Development","icon":"robot","href":"/build/starkzap/using-llms"}]},{"group":"Modules","icon":"puzzle-piece","pages":[{"title":"Wallets","icon":"wallet","href":"/build/starkzap/connecting-wallets"},{"title":"Stablecoins \u0026 Token","icon":"credit-card","href":"/build/starkzap/erc20"},{"title":"Staking \u0026 Delegation","icon":"chart-line","href":"/build/starkzap/staking"},{"title":"LST Staking","icon":"droplet","href":"/build/starkzap/lst-staking"},{"title":"Bridging","icon":"link","href":"/build/starkzap/bridging"},{"title":"Swaps","icon":"arrows-left-right","href":"/build/starkzap/swap"},{"title":"Dollar-Cost Averaging","icon":"calendar-clock","href":"/build/starkzap/dollar-cost-average"},{"title":"Lending \u0026 Borrowing","icon":"landmark","href":"/build/starkzap/lending"},{"title":"Troves","icon":"layers","href":"/build/starkzap/troves"},{"title":"Executing Transactions","icon":"paper-plane","href":"/build/starkzap/transactions"},{"title":"Tx Builder","icon":"building","href":"/build/starkzap/tx-builder"}]},{"group":"Privacy","icon":"shield-halved","pages":[{"title":"Choosing a privacy protocol","sidebarTitle":"Overview","icon":"shield-halved","href":"/build/starkzap/privacy/overview"},{"title":"STRK20 privacy pool","sidebarTitle":"STRK20","icon":"user-secret","href":"/build/starkzap/privacy/strk20"},{"title":"Tongo confidential transfers","sidebarTitle":"Tongo","icon":"lock","href":"/build/starkzap/privacy/tongo"}]},{"group":"Integrations","icon":"link","pages":[{"title":"AVNU Paymaster","href":"/build/starkzap/integrations/avnu-paymaster"},{"title":"Privy Integration","href":"/build/starkzap/integrations/privy"},{"title":"Cartridge Controller","href":"/build/starkzap/integrations/cartridge-controller"}]},{"group":"Examples","icon":"flask","pages":[{"title":"Examples","icon":"flask","href":"/build/starkzap/examples"},{"title":"awesome-starkzap","href":"/build/starkzap/awesome-starkzap"}]},{"group":"Reference","icon":"book","pages":[{"title":"Glossary","icon":"book","href":"/build/starkzap/glossary"},{"title":"Troubleshooting","icon":"wrench","href":"/build/starkzap/troubleshooting"},{"title":"API Reference","icon":"code-branch","href":"/build/starkzap/api-reference"}]}]},{"dropdown":"Examples","icon":"person-chalkboard","pages":[{"title":"Introduction to Starknet By Example","sidebarTitle":"Introduction","href":"/build/starknet-by-example"},{"group":"Basic concepts","pages":[{"title":"Storage","href":"/build/starknet-by-example/basic/storage"},{"title":"Functions","href":"/build/starknet-by-example/basic/visibility-mutability"},{"title":"Variables","href":"/build/starknet-by-example/basic/variables"},{"title":"Constructor","href":"/build/starknet-by-example/basic/constructor"},{"title":"Simple counter","href":"/build/starknet-by-example/basic/counter"},{"title":"Error handling","href":"/build/starknet-by-example/basic/errors"},{"title":"Events","href":"/build/starknet-by-example/basic/events"},{"title":"Storing custom types","href":"/build/starknet-by-example/basic/storing-custom-types"},{"title":"Custom types in entrypoints","href":"/build/starknet-by-example/basic/custom-types-in-entrypoints"},{"title":"Mappings","href":"/build/starknet-by-example/basic/mappings"},{"title":"Documentation","href":"/build/starknet-by-example/basic/documentation"},{"title":"Calling other contracts","href":"/build/starknet-by-example/basic/calling-other-contracts"},{"group":"Components","pages":[{"title":"Introduction to components","sidebarTitle":"Introduction","href":"/build/starknet-by-example/basic/components/intro"},{"title":"Component dependencies","sidebarTitle":"Dependencies","href":"/build/starknet-by-example/basic/components/dependencies"},{"title":"Component contract storage collisions","sidebarTitle":"Collisions","href":"/build/starknet-by-example/basic/components/collisions"},{"title":"The Ownable component","sidebarTitle":"Ownable","href":"/build/starknet-by-example/basic/components/ownable"}]}]},{"group":"Advanced Concepts","pages":[{"title":"Writing to any storage slot","href":"/build/starknet-by-example/advanced/write-to-any-slot"},{"title":"Structs as mapping keys","href":"/build/starknet-by-example/advanced/struct-mapping-key"},{"title":"Verifying ZK proofs","href":"/build/starknet-by-example/advanced/verify-proofs"},{"title":"ECDSA verification","href":"/build/starknet-by-example/advanced/signature-verification"},{"title":"Plugins","href":"/build/starknet-by-example/advanced/plugins"},{"title":"Understanding Sierra: From High-Level Cairo to Safe CASM","sidebarTitle":"Sierra","href":"/build/starknet-by-example/advanced/sierra-ir"},{"title":"Library calls","href":"/build/starknet-by-example/advanced/library-calls"},{"title":"Hashing","href":"/build/starknet-by-example/advanced/hashing"},{"title":"Solidity compatible hashing","sidebarTitle":"Solidity hashing","href":"/build/starknet-by-example/advanced/hash-solidity-compatible"},{"title":"Commit-Reveal","href":"/build/starknet-by-example/advanced/commit-reveal"},{"title":"Storage optimisation","href":"/build/starknet-by-example/advanced/store-using-packing"},{"title":"Account abstraction","href":"/build/starknet-by-example/advanced/account-abstraction"}]},{"group":"Applications","pages":[{"title":"Factory pattern","sidebarTitle":"Factory","href":"/build/starknet-by-example/applications/factory"},{"title":"Advanced factory","href":"/build/starknet-by-example/applications/advanced-factory"},{"title":"Constant product AMM","href":"/build/starknet-by-example/applications/constant-product-amm"},{"title":"Crowdfunding","href":"/build/starknet-by-example/applications/crowdfunding"},{"title":"ERC20 token","href":"/build/starknet-by-example/applications/erc20"},{"title":"ERC721 token","href":"/build/starknet-by-example/applications/erc721"},{"title":"L1 ↔ L2 token bridge","href":"/build/starknet-by-example/applications/l1-l2-token-bridge"},{"title":"Merkle tree contract","href":"/build/starknet-by-example/applications/merkle-tree"},{"title":"NFT Dutch auction","href":"/build/starknet-by-example/applications/nft-dutch-auction"},{"title":"Random number generator","href":"/build/starknet-by-example/applications/random-number-generator"},{"title":"Simple storage","href":"/build/starknet-by-example/applications/simple-storage"},{"title":"Simple DeFi vault","href":"/build/starknet-by-example/applications/simple-vault"},{"title":"Staking","href":"/build/starknet-by-example/applications/staking"},{"title":"TimeLock","href":"/build/starknet-by-example/applications/timelock"},{"title":"Upgradeable contract","description":null,"href":"/build/starknet-by-example/applications/upgradeable-contract"}]}]},{"dropdown":"Corelib","icon":"atom-simple","pages":[{"title":"Introduction to the Corelib documentation","sidebarTitle":"Introduction","href":"/build/corelib/intro"},{"group":"Modules","pages":[{"group":"core::traits","pages":[{"title":"core::traits::Copy","description":null,"href":"/build/corelib/core-traits-Copy"},{"title":"core::traits::Drop","href":"/build/corelib/core-traits-Drop"},{"title":"core::traits::Add","href":"/build/corelib/core-traits-Add"},{"title":"core::traits::AddEq","href":"/build/corelib/core-traits-AddEq"},{"title":"core::traits::Sub","href":"/build/corelib/core-traits-Sub"},{"title":"core::traits::SubEq","href":"/build/corelib/core-traits-SubEq"},{"title":"core::traits::Mul","href":"/build/corelib/core-traits-Mul"},{"title":"core::traits::MulEq","href":"/build/corelib/core-traits-MulEq"},{"title":"core::traits::Div","href":"/build/corelib/core-traits-Div"},{"title":"core::traits::DivEq","href":"/build/corelib/core-traits-DivEq"},{"title":"core::traits::Rem","href":"/build/corelib/core-traits-Rem"},{"title":"core::traits::RemEq","href":"/build/corelib/core-traits-RemEq"},{"title":"core::traits::DivRem","href":"/build/corelib/core-traits-DivRem"},{"title":"core::traits::PartialEq","href":"/build/corelib/core-traits-PartialEq"},{"title":"core::traits::BitAnd","href":"/build/corelib/core-traits-BitAnd"},{"title":"core::traits::BitOr","href":"/build/corelib/core-traits-BitOr"},{"title":"core::traits::BitXor","href":"/build/corelib/core-traits-BitXor"},{"title":"core::traits::BitNot","href":"/build/corelib/core-traits-BitNot"},{"title":"core::traits::PartialOrd","href":"/build/corelib/core-traits-PartialOrd"},{"title":"core::traits::Into","href":"/build/corelib/core-traits-Into"},{"title":"core::traits::TryInto","href":"/build/corelib/core-traits-TryInto"},{"title":"core::traits::Neg","href":"/build/corelib/core-traits-Neg"},{"title":"core::traits::Not","href":"/build/corelib/core-traits-Not"},{"title":"core::traits::IndexView","href":"/build/corelib/core-traits-IndexView"},{"title":"core::traits::Index","href":"/build/corelib/core-traits-Index"},{"title":"core::traits::Destruct","href":"/build/corelib/core-traits-Destruct"},{"title":"core::traits::PanicDestruct","href":"/build/corelib/core-traits-PanicDestruct"},{"title":"core::traits::Default","href":"/build/corelib/core-traits-Default"},{"title":"core::traits::Felt252DictValue","href":"/build/corelib/core-traits-Felt252DictValue"}]},{"group":"core::boolean","pages":[{"title":"core::boolean::BoolTrait","href":"/build/corelib/core-boolean-BoolTrait"}]},{"group":"core::circuit","pages":[{"title":"core::circuit::circuit_add","href":"/build/corelib/core-circuit-circuit_add"},{"title":"core::circuit::circuit_sub","href":"/build/corelib/core-circuit-circuit_sub"},{"title":"core::circuit::circuit_inverse","href":"/build/corelib/core-circuit-circuit_inverse"},{"title":"core::circuit::circuit_mul","href":"/build/corelib/core-circuit-circuit_mul"},{"title":"core::circuit::u384","href":"/build/corelib/core-circuit-u384"},{"title":"core::circuit::CircuitElement","href":"/build/corelib/core-circuit-CircuitElement"},{"title":"core::circuit::AddInputResult","href":"/build/corelib/core-circuit-AddInputResult"},{"title":"core::circuit::u96","href":"/build/corelib/core-circuit-u96"},{"title":"core::circuit::ConstZero","href":"/build/corelib/core-circuit-ConstZero"},{"title":"core::circuit::ConstOne","href":"/build/corelib/core-circuit-ConstOne"},{"title":"core::circuit::CircuitElementTrait","href":"/build/corelib/core-circuit-CircuitElementTrait"},{"title":"core::circuit::CircuitDefinition","href":"/build/corelib/core-circuit-CircuitDefinition"},{"title":"core::circuit::CircuitOutputsTrait","href":"/build/corelib/core-circuit-CircuitOutputsTrait"},{"title":"core::circuit::CircuitInputs","href":"/build/corelib/core-circuit-CircuitInputs"},{"title":"core::circuit::AddInputResultTrait","href":"/build/corelib/core-circuit-AddInputResultTrait"},{"title":"core::circuit::EvalCircuitTrait","href":"/build/corelib/core-circuit-EvalCircuitTrait"},{"title":"core::circuit::CircuitElementDrop","href":"/build/corelib/core-circuit-CircuitElementDrop"},{"title":"core::circuit::CircuitElementCopy","href":"/build/corelib/core-circuit-CircuitElementCopy"},{"title":"core::circuit::DestructFailureGuarantee","href":"/build/corelib/core-circuit-DestructFailureGuarantee"},{"title":"core::circuit::RangeCheck96","href":"/build/corelib/core-circuit-RangeCheck96"},{"title":"core::circuit::AddMod","href":"/build/corelib/core-circuit-AddMod"},{"title":"core::circuit::MulMod","href":"/build/corelib/core-circuit-MulMod"},{"title":"core::circuit::CircuitModulus","href":"/build/corelib/core-circuit-CircuitModulus"},{"title":"core::circuit::Circuit","href":"/build/corelib/core-circuit-Circuit"},{"title":"core::circuit::CircuitInput","href":"/build/corelib/core-circuit-CircuitInput"}]},{"group":"core::blake","pages":[{"title":"core::blake::blake2s_compress","href":"/build/corelib/core-blake-blake2s_compress"},{"title":"core::blake::blake2s_finalize","href":"/build/corelib/core-blake-blake2s_finalize"}]},{"group":"core::box","pages":[{"title":"core::box::BoxTrait","href":"/build/corelib/core-box-BoxTrait"},{"title":"core::box::Box","href":"/build/corelib/core-box-Box"}]},{"group":"core::nullable","pages":[{"title":"core::nullable::FromNullableResult","href":"/build/corelib/core-nullable-FromNullableResult"},{"title":"core::nullable::NullableTrait","href":"/build/corelib/core-nullable-NullableTrait"},{"title":"core::nullable::Nullable","href":"/build/corelib/core-nullable-Nullable"},{"title":"core::nullable::null","href":"/build/corelib/core-nullable-null"},{"title":"core::nullable::match_nullable","href":"/build/corelib/core-nullable-match_nullable"}]},{"group":"core::option","pages":[{"title":"core::option::OptionTrait","href":"/build/corelib/core-option-OptionTrait"},{"title":"core::option::Option","href":"/build/corelib/core-option-Option"}]},{"group":"core::clone","pages":[{"title":"core::clone::Clone","href":"/build/corelib/core-clone-Clone"}]},{"group":"core::ec","pages":[{"title":"core::ec::stark_curve::ALPHA","href":"/build/corelib/core-ec-stark_curve-ALPHA"},{"title":"core::ec::stark_curve::BETA","href":"/build/corelib/core-ec-stark_curve-BETA"},{"title":"core::ec::stark_curve::ORDER","href":"/build/corelib/core-ec-stark_curve-ORDER"},{"title":"core::ec::stark_curve::GEN_X","href":"/build/corelib/core-ec-stark_curve-GEN_X"},{"title":"core::ec::stark_curve::GEN_Y","href":"/build/corelib/core-ec-stark_curve-GEN_Y"},{"title":"core::ec::NonZeroEcPoint","href":"/build/corelib/core-ec-NonZeroEcPoint"},{"title":"core::ec::EcStateTrait","href":"/build/corelib/core-ec-EcStateTrait"},{"title":"core::ec::EcPointTrait","href":"/build/corelib/core-ec-EcPointTrait"},{"title":"core::ec::EcStateImpl","href":"/build/corelib/core-ec-EcStateImpl"},{"title":"core::ec::EcPointImpl","href":"/build/corelib/core-ec-EcPointImpl"},{"title":"core::ec::EcOp","href":"/build/corelib/core-ec-EcOp"},{"title":"core::ec::EcPoint","href":"/build/corelib/core-ec-EcPoint"},{"title":"core::ec::EcState","href":"/build/corelib/core-ec-EcState"},{"title":"core::ec::ec_point_unwrap","href":"/build/corelib/core-ec-ec_point_unwrap"}]},{"group":"core::ecdsa","pages":[{"title":"core::ecdsa::check_ecdsa_signature","href":"/build/corelib/core-ecdsa-check_ecdsa_signature"},{"title":"core::ecdsa::recover_public_key","href":"/build/corelib/core-ecdsa-recover_public_key"}]},{"group":"core::integer","pages":[{"title":"core::integer::u128_wrapping_add","href":"/build/corelib/core-integer-u128_wrapping_add"},{"title":"core::integer::u128_wrapping_sub","href":"/build/corelib/core-integer-u128_wrapping_sub"},{"title":"core::integer::u128_wide_mul","href":"/build/corelib/core-integer-u128_wide_mul"},{"title":"core::integer::u128_overflowing_mul","href":"/build/corelib/core-integer-u128_overflowing_mul"},{"title":"core::integer::u128_wrapping_add","href":"/build/corelib/core-integer-u128_wrapping_add"},{"title":"core::integer::u128_wrapping_sub","href":"/build/corelib/core-integer-u128_wrapping_sub"},{"title":"core::integer::u128_wide_mul","href":"/build/corelib/core-integer-u128_wide_mul"},{"title":"core::integer::u128_overflowing_mul","href":"/build/corelib/core-integer-u128_overflowing_mul"},{"title":"core::integer::u8_wrapping_add","href":"/build/corelib/core-integer-u8_wrapping_add"},{"title":"core::integer::u8_wrapping_sub","href":"/build/corelib/core-integer-u8_wrapping_sub"},{"title":"core::integer::u16_wrapping_add","href":"/build/corelib/core-integer-u16_wrapping_add"},{"title":"core::integer::u16_wrapping_sub","href":"/build/corelib/core-integer-u16_wrapping_sub"},{"title":"core::integer::u32_wrapping_add","href":"/build/corelib/core-integer-u32_wrapping_add"},{"title":"core::integer::u32_wrapping_sub","href":"/build/corelib/core-integer-u32_wrapping_sub"},{"title":"core::integer::u64_wrapping_add","href":"/build/corelib/core-integer-u64_wrapping_add"},{"title":"core::integer::u64_wrapping_sub","href":"/build/corelib/core-integer-u64_wrapping_sub"},{"title":"core::integer::u256_overflowing_add","href":"/build/corelib/core-integer-u256_overflowing_add"},{"title":"core::integer::u256_overflowing_sub","href":"/build/corelib/core-integer-u256_overflowing_sub"},{"title":"core::integer::u256_overflow_sub","href":"/build/corelib/core-integer-u256_overflow_sub"},{"title":"core::integer::u256_overflowing_mul","href":"/build/corelib/core-integer-u256_overflowing_mul"},{"title":"core::integer::u256_overflow_mul","href":"/build/corelib/core-integer-u256_overflow_mul"},{"title":"core::integer::u256_wide_mul","href":"/build/corelib/core-integer-u256_wide_mul"},{"title":"core::integer::u512_safe_div_rem_by_u256","href":"/build/corelib/core-integer-u512_safe_div_rem_by_u256"},{"title":"core::integer::u256","href":"/build/corelib/core-integer-u256"},{"title":"core::integer::u512","href":"/build/corelib/core-integer-u512"},{"title":"core::integer::NumericLiteral","href":"/build/corelib/core-integer-NumericLiteral"},{"title":"core::integer::BoundedInt","href":"/build/corelib/core-integer-BoundedInt"},{"title":"core::integer::u128","href":"/build/corelib/core-integer-u128"},{"title":"core::integer::U128MulGuarantee","href":"/build/corelib/core-integer-U128MulGuarantee"},{"title":"core::integer::Bitwise","href":"/build/corelib/core-integer-Bitwise"},{"title":"core::integer::u8","href":"/build/corelib/core-integer-u8"},{"title":"core::integer::u16","href":"/build/corelib/core-integer-u16"},{"title":"core::integer::u32","href":"/build/corelib/core-integer-u32"},{"title":"core::integer::u64","href":"/build/corelib/core-integer-u64"},{"title":"core::integer::i8","href":"/build/corelib/core-integer-i8"},{"title":"core::integer::i16","href":"/build/corelib/core-integer-i16"},{"title":"core::integer::i32","href":"/build/corelib/core-integer-i32"},{"title":"core::integer::i64","href":"/build/corelib/core-integer-i64"},{"title":"core::integer::i128","href":"/build/corelib/core-integer-i128"},{"title":"core::integer::u128_overflowing_add","href":"/build/corelib/core-integer-u128_overflowing_add"},{"title":"core::integer::u128_overflowing_sub","href":"/build/corelib/core-integer-u128_overflowing_sub"},{"title":"core::integer::u128_sqrt","href":"/build/corelib/core-integer-u128_sqrt"},{"title":"core::integer::u128_safe_divmod","href":"/build/corelib/core-integer-u128_safe_divmod"},{"title":"core::integer::u128_byte_reverse","href":"/build/corelib/core-integer-u128_byte_reverse"},{"title":"core::integer::u8_overflowing_add","href":"/build/corelib/core-integer-u8_overflowing_add"},{"title":"core::integer::u8_overflowing_sub","href":"/build/corelib/core-integer-u8_overflowing_sub"},{"title":"core::integer::u8_wide_mul","href":"/build/corelib/core-integer-u8_wide_mul"},{"title":"core::integer::u8_sqrt","href":"/build/corelib/core-integer-u8_sqrt"},{"title":"core::integer::u8_safe_divmod","href":"/build/corelib/core-integer-u8_safe_divmod"},{"title":"core::integer::u16_overflowing_add","href":"/build/corelib/core-integer-u16_overflowing_add"},{"title":"core::integer::u16_overflowing_sub","href":"/build/corelib/core-integer-u16_overflowing_sub"},{"title":"core::integer::u16_wide_mul","href":"/build/corelib/core-integer-u16_wide_mul"},{"title":"core::integer::u16_sqrt","href":"/build/corelib/core-integer-u16_sqrt"},{"title":"core::integer::u16_safe_divmod","href":"/build/corelib/core-integer-u16_safe_divmod"},{"title":"core::integer::u32_overflowing_add","href":"/build/corelib/core-integer-u32_overflowing_add"},{"title":"core::integer::u32_overflowing_sub","href":"/build/corelib/core-integer-u32_overflowing_sub"},{"title":"core::integer::u32_wide_mul","href":"/build/corelib/core-integer-u32_wide_mul"},{"title":"core::integer::u32_sqrt","href":"/build/corelib/core-integer-u32_sqrt"},{"title":"core::integer::u32_safe_divmod","href":"/build/corelib/core-integer-u32_safe_divmod"},{"title":"core::integer::u64_overflowing_add","href":"/build/corelib/core-integer-u64_overflowing_add"},{"title":"core::integer::u64_overflowing_sub","href":"/build/corelib/core-integer-u64_overflowing_sub"},{"title":"core::integer::u64_wide_mul","href":"/build/corelib/core-integer-u64_wide_mul"},{"title":"core::integer::u64_sqrt","href":"/build/corelib/core-integer-u64_sqrt"},{"title":"core::integer::u64_safe_divmod","href":"/build/corelib/core-integer-u64_safe_divmod"},{"title":"core::integer::u256_sqrt","href":"/build/corelib/core-integer-u256_sqrt"},{"title":"core::integer::i8_wide_mul","href":"/build/corelib/core-integer-i8_wide_mul"},{"title":"core::integer::i8_diff","href":"/build/corelib/core-integer-i8_diff"},{"title":"core::integer::i8_wide_mul","href":"/build/corelib/core-integer-i8_wide_mul"},{"title":"core::integer::i8_diff","href":"/build/corelib/core-integer-i8_diff"},{"title":"core::integer::i16_wide_mul","href":"/build/corelib/core-integer-i16_wide_mul"},{"title":"core::integer::i16_diff","href":"/build/corelib/core-integer-i16_diff"},{"title":"core::integer::i32_wide_mul","href":"/build/corelib/core-integer-i32_wide_mul"},{"title":"core::integer::i32_diff","href":"/build/corelib/core-integer-i32_diff"},{"title":"core::integer::i64_wide_mul","href":"/build/corelib/core-integer-i64_wide_mul"},{"title":"core::integer::i64_diff","href":"/build/corelib/core-integer-i64_diff"},{"title":"core::integer::i128_diff","href":"/build/corelib/core-integer-i128_diff"}]},{"group":"core::cmp","pages":[{"title":"core::cmp::min","href":"/build/corelib/core-cmp-min"},{"title":"core::cmp::max","href":"/build/corelib/core-cmp-max"},{"title":"core::cmp::minmax","href":"/build/corelib/core-cmp-minmax"}]},{"group":"core::gas","pages":[{"title":"core::gas::BuiltinCosts","href":"/build/corelib/core-gas-BuiltinCosts"},{"title":"core::gas::GasBuiltin","href":"/build/corelib/core-gas-GasBuiltin"},{"title":"core::gas::GasReserve","href":"/build/corelib/core-gas-GasReserve"},{"title":"core::gas::withdraw_gas","href":"/build/corelib/core-gas-withdraw_gas"},{"title":"core::gas::withdraw_gas_all","href":"/build/corelib/core-gas-withdraw_gas_all"},{"title":"core::gas::redeposit_gas","href":"/build/corelib/core-gas-redeposit_gas"},{"title":"core::gas::get_builtin_costs","href":"/build/corelib/core-gas-get_builtin_costs"},{"title":"core::gas::gas_reserve_create","href":"/build/corelib/core-gas-gas_reserve_create"},{"title":"core::gas::gas_reserve_utilize","href":"/build/corelib/core-gas-gas_reserve_utilize"}]},{"group":"core::math","pages":[{"title":"core::math::egcd","href":"/build/corelib/core-math-egcd"},{"title":"core::math::inv_mod","href":"/build/corelib/core-math-inv_mod"},{"title":"core::math::u256_inv_mod","href":"/build/corelib/core-math-u256_inv_mod"},{"title":"core::math::u256_div_mod_n","href":"/build/corelib/core-math-u256_div_mod_n"},{"title":"core::math::u256_mul_mod_n","href":"/build/corelib/core-math-u256_mul_mod_n"}]},{"group":"core::num","pages":[{"title":"core::num::traits::zero::Zero","href":"/build/corelib/core-num-traits-zero-Zero"},{"title":"core::num::traits::one::One","href":"/build/corelib/core-num-traits-one-One"},{"title":"core::num::traits::bit_size::BitSize","href":"/build/corelib/core-num-traits-bit_size-BitSize"},{"title":"core::num::traits::ops::checked::CheckedAdd","href":"/build/corelib/core-num-traits-ops-checked-CheckedAdd"},{"title":"core::num::traits::ops::divrem::DivRem","href":"/build/corelib/core-num-traits-ops-divrem-DivRem"},{"title":"core::num::traits::ops::overflowing::OverflowingAdd","href":"/build/corelib/core-num-traits-ops-overflowing-OverflowingAdd"},{"title":"core::num::traits::ops::overflowing::OverflowingMul","href":"/build/corelib/core-num-traits-ops-overflowing-OverflowingMul"},{"title":"core::num::traits::ops::pow::Pow","href":"/build/corelib/core-num-traits-ops-pow-Pow"},{"title":"core::num::traits::ops::saturating::SaturatingAdd","href":"/build/corelib/core-num-traits-ops-saturating-SaturatingAdd"},{"title":"core::num::traits::ops::saturating::SaturatingSub","href":"/build/corelib/core-num-traits-ops-saturating-SaturatingSub"},{"title":"core::num::traits::ops::saturating::SaturatingMul","href":"/build/corelib/core-num-traits-ops-saturating-SaturatingMul"},{"title":"core::num::traits::ops::wrapping::WrappingAdd","href":"/build/corelib/core-num-traits-ops-wrapping-WrappingAdd"},{"title":"core::num::traits::ops::wrapping::WrappingSub","href":"/build/corelib/core-num-traits-ops-wrapping-WrappingSub"},{"title":"core::num::traits::ops::wrapping::WrappingMul","href":"/build/corelib/core-num-traits-ops-wrapping-WrappingMul"},{"title":"core::num::traits::ops::sqrt::Sqrt","href":"/build/corelib/core-num-traits-ops-sqrt-Sqrt"},{"title":"core::num::traits::ops::widesquare::WideSquare","href":"/build/corelib/core-num-traits-ops-widesquare-WideSquare"},{"title":"core::num::traits::bounded::Bounded","href":"/build/corelib/core-num-traits-bounded-Bounded"}]},{"group":"core::ops","pages":[{"title":"core::ops::index::IndexView","href":"/build/corelib/core-ops-index-IndexView"},{"title":"core::ops::index::Index","href":"/build/corelib/core-ops-index-Index"},{"title":"core::ops::range::Range","href":"/build/corelib/core-ops-range-Range"},{"title":"core::ops::range::RangeInclusive","href":"/build/corelib/core-ops-range-RangeInclusive"},{"title":"core::ops::range::RangeInclusiveIterator","href":"/build/corelib/core-ops-range-RangeInclusiveIterator"},{"title":"core::ops::range::RangeIterator","href":"/build/corelib/core-ops-range-RangeIterator"},{"title":"core::ops::range::RangeInclusiveTrait","href":"/build/corelib/core-ops-range-RangeInclusiveTrait"},{"title":"core::ops::range::RangeTrait","href":"/build/corelib/core-ops-range-RangeTrait"},{"title":"core::ops::arith::AddAssign","href":"/build/corelib/core-ops-arith-AddAssign"},{"title":"core::ops::arith::DivAssign","href":"/build/corelib/core-ops-arith-DivAssign"},{"title":"core::ops::arith::MulAssign","href":"/build/corelib/core-ops-arith-MulAssign"},{"title":"core::ops::arith::RemAssign","href":"/build/corelib/core-ops-arith-RemAssign"},{"title":"core::ops::arith::SubAssign","href":"/build/corelib/core-ops-arith-SubAssign"},{"title":"core::ops::deref::Deref","href":"/build/corelib/core-ops-deref-Deref"},{"title":"core::ops::deref::DerefMut","href":"/build/corelib/core-ops-deref-DerefMut"},{"title":"core::ops::function::Fn","href":"/build/corelib/core-ops-function-Fn"},{"title":"core::ops::function::FnOnce","href":"/build/corelib/core-ops-function-FnOnce"}]},{"group":"core::panics","pages":[{"title":"core::panics::panic_with_byte_array","href":"/build/corelib/core-panics-panic_with_byte_array"},{"title":"panic","href":"/build/corelib/core-panics-Panic"},{"title":"core::panics::PanicResult","href":"/build/corelib/core-panics-PanicResult"}]},{"group":"core::hash","pages":[{"title":"core::hash::into_felt252_based","href":"/build/corelib/core-hash-into_felt252_based"},{"title":"core::hash::HashStateTrait","href":"/build/corelib/core-hash-HashStateTrait"},{"title":"core::hash::Hash","href":"/build/corelib/core-hash-Hash"},{"title":"core::hash::LegacyHash","href":"/build/corelib/core-hash-LegacyHash"},{"title":"core::hash::HashStateExTrait","href":"/build/corelib/core-hash-HashStateExTrait"}]},{"group":"core::keccak","pages":[{"title":"core::keccak::keccak_u256s_le_inputs","href":"/build/corelib/core-keccak-keccak_u256s_le_inputs"},{"title":"core::keccak::keccak_u256s_be_inputs","href":"/build/corelib/core-keccak-keccak_u256s_be_inputs"},{"title":"core::keccak::cairo_keccak","href":"/build/corelib/core-keccak-cairo_keccak"},{"title":"core::keccak::compute_keccak_byte_array","href":"/build/corelib/core-keccak-compute_keccak_byte_array"}]},{"group":"core::pedersen","pages":[{"title":"core::pedersen::HashState","href":"/build/corelib/core-pedersen-HashState"},{"title":"core::pedersen::PedersenTrait","href":"/build/corelib/core-pedersen-PedersenTrait"},{"title":"core::pedersen::PedersenImpl","href":"/build/corelib/core-pedersen-PedersenImpl"},{"title":"pedersen","href":"/build/corelib/core-pedersen-Pedersen"}]},{"group":"core::qm31","pages":[{"title":"core::qm31::m31_ops::m31_add","href":"/build/corelib/core-qm31-m31_ops-m31_add"},{"title":"core::qm31::m31_ops::m31_div","href":"/build/corelib/core-qm31-m31_ops-m31_div"},{"title":"core::qm31::m31_ops::m31_mul","href":"/build/corelib/core-qm31-m31_ops-m31_mul"},{"title":"core::qm31::m31_ops::m31_sub","href":"/build/corelib/core-qm31-m31_ops-m31_sub"},{"title":"core::qm31::m31_ops","href":"/build/corelib/core-qm31-m31_ops"},{"title":"core::qm31::QM31Trait","href":"/build/corelib/core-qm31-QM31Trait"},{"title":"core::qm31::qm31","href":"/build/corelib/core-qm31-qm31"},{"title":"core::qm31::qm31_const","href":"/build/corelib/core-qm31-qm31_const"}]},{"group":"core::serde","pages":[{"title":"core::serde::into_felt252_based","href":"/build/corelib/core-serde-into_felt252_based"},{"title":"core::serde::Serde","href":"/build/corelib/core-serde-Serde"}]},{"group":"core::sha256","pages":[{"title":"core::sha256::compute_sha256_u32_array","href":"/build/corelib/core-sha256-compute_sha256_u32_array"},{"title":"core::sha256::compute_sha256_byte_array","href":"/build/corelib/core-sha256-compute_sha256_byte_array"}]},{"group":"core::poseidon","pages":[{"title":"core::poseidon::poseidon_hash_span","href":"/build/corelib/core-poseidon-poseidon_hash_span"},{"title":"core::poseidon::HashState","href":"/build/corelib/core-poseidon-HashState"},{"title":"core::poseidon::PoseidonTrait","href":"/build/corelib/core-poseidon-PoseidonTrait"},{"title":"core::poseidon::PoseidonImpl","href":"/build/corelib/core-poseidon-PoseidonImpl"},{"title":"core::poseidon::Poseidon","href":"/build/corelib/core-poseidon-Poseidon"},{"title":"core::poseidon::hades_permutation","href":"/build/corelib/core-poseidon-hades_permutation"}]},{"group":"core::debug","pages":[{"title":"core::debug::print_byte_array_as_string","href":"/build/corelib/core-debug-print_byte_array_as_string"}]},{"group":"core::fmt","pages":[{"title":"core::fmt::into_felt252_based","href":"/build/corelib/core-fmt-into_felt252_based"},{"title":"core::fmt::Error","href":"/build/corelib/core-fmt-Error"},{"title":"core::fmt::Formatter","href":"/build/corelib/core-fmt-Formatter"},{"title":"core::fmt::Display","href":"/build/corelib/core-fmt-Display"},{"title":"core::fmt::Debug","href":"/build/corelib/core-fmt-Debug"},{"title":"core::fmt::LowerHex","href":"/build/corelib/core-fmt-LowerHex"}]},{"group":"core::starknet","pages":[{"title":"core::starknet::storage_access::Store","href":"/build/corelib/core-starknet-storage_access-Store"},{"title":"core::starknet::storage_access::StorePacking","href":"/build/corelib/core-starknet-storage_access-StorePacking"},{"title":"core::starknet::storage_access::StorageAddress","href":"/build/corelib/core-starknet-storage_access-StorageAddress"},{"title":"core::starknet::storage_access::StorageBaseAddress","href":"/build/corelib/core-starknet-storage_access-StorageBaseAddress"},{"title":"core::starknet::storage_access::storage_base_address_const","href":"/build/corelib/core-starknet-storage_access-storage_base_address_const"},{"title":"core::starknet::storage_access::storage_base_address_from_felt252","href":"/build/corelib/core-starknet-storage_access-storage_base_address_from_felt252"},{"title":"core::starknet::storage_access::storage_address_from_base_and_offset","href":"/build/corelib/core-starknet-storage_access-storage_address_from_base_and_offset"},{"title":"core::starknet::storage_access::storage_address_from_base","href":"/build/corelib/core-starknet-storage_access-storage_address_from_base"},{"title":"core::starknet::syscalls::call_contract_syscall","href":"/build/corelib/core-starknet-syscalls-call_contract_syscall"},{"title":"core::starknet::syscalls::deploy_syscall","href":"/build/corelib/core-starknet-syscalls-deploy_syscall"},{"title":"core::starknet::syscalls::emit_event_syscall","href":"/build/corelib/core-starknet-syscalls-emit_event_syscall"},{"title":"core::starknet::syscalls::get_block_hash_syscall","href":"/build/corelib/core-starknet-syscalls-get_block_hash_syscall"},{"title":"core::starknet::syscalls::get_execution_info_syscall","href":"/build/corelib/core-starknet-syscalls-get_execution_info_syscall"},{"title":"core::starknet::syscalls::get_execution_info_v2_syscall","href":"/build/corelib/core-starknet-syscalls-get_execution_info_v2_syscall"},{"title":"core::starknet::syscalls::library_call_syscall","href":"/build/corelib/core-starknet-syscalls-library_call_syscall"},{"title":"core::starknet::syscalls::send_message_to_l1_syscall","href":"/build/corelib/core-starknet-syscalls-send_message_to_l1_syscall"},{"title":"core::starknet::syscalls::storage_read_syscall","href":"/build/corelib/core-starknet-syscalls-storage_read_syscall"},{"title":"core::starknet::syscalls::storage_write_syscall","href":"/build/corelib/core-starknet-syscalls-storage_write_syscall"},{"title":"core::starknet::syscalls::replace_class_syscall","href":"/build/corelib/core-starknet-syscalls-replace_class_syscall"},{"title":"core::starknet::syscalls::get_class_hash_at_syscall","href":"/build/corelib/core-starknet-syscalls-get_class_hash_at_syscall"},{"title":"core::starknet::syscalls::keccak_syscall","href":"/build/corelib/core-starknet-syscalls-keccak_syscall"},{"title":"core::starknet::syscalls::sha256_process_block_syscall","href":"/build/corelib/core-starknet-syscalls-sha256_process_block_syscall"},{"title":"core::starknet::syscalls::meta_tx_v0_syscall","href":"/build/corelib/core-starknet-syscalls-meta_tx_v0_syscall"},{"title":"core::starknet::contract_address::ContractAddress","href":"/build/corelib/core-starknet-contract_address-ContractAddress"},{"title":"core::starknet::secp256_trait::Signature","href":"/build/corelib/core-starknet-secp256_trait-Signature"},{"title":"core::starknet::secp256_trait::Secp256Trait","href":"/build/corelib/core-starknet-secp256_trait-Secp256Trait"},{"title":"core::starknet::secp256_trait::Secp256PointTrait","href":"/build/corelib/core-starknet-secp256_trait-Secp256PointTrait"},{"title":"core::starknet::secp256k1::Secp256k1Point","href":"/build/corelib/core-starknet-secp256k1-Secp256k1Point"},{"title":"core::starknet::secp256r1::Secp256r1Point","href":"/build/corelib/core-starknet-secp256r1-Secp256r1Point"},{"title":"core::starknet::eth_address::EthAddress","href":"/build/corelib/core-starknet-eth_address-EthAddress"},{"title":"core::starknet::eth_signature::verify_eth_signature","href":"/build/corelib/core-starknet-eth_signature-verify_eth_signature"},{"title":"core::starknet::eth_signature::is_eth_signature_valid","href":"/build/corelib/core-starknet-eth_signature-is_eth_signature_valid"},{"title":"core::starknet::eth_signature::public_key_point_to_eth_address","href":"/build/corelib/core-starknet-eth_signature-public_key_point_to_eth_address"},{"title":"core::starknet::class_hash::ClassHash","href":"/build/corelib/core-starknet-class_hash-ClassHash"},{"title":"core::starknet::class_hash::class_hash_const","href":"/build/corelib/core-starknet-class_hash-class_hash_const"},{"title":"core::starknet::event::Event","href":"/build/corelib/core-starknet-event-Event"},{"title":"core::starknet::event::EventEmitter","href":"/build/corelib/core-starknet-event-EventEmitter"},{"title":"core::starknet::account::Call","href":"/build/corelib/core-starknet-account-Call"},{"title":"core::starknet::account::AccountContractDispatcher","href":"/build/corelib/core-starknet-account-AccountContractDispatcher"},{"title":"core::starknet::account::AccountContractLibraryDispatcher","href":"/build/corelib/core-starknet-account-AccountContractLibraryDispatcher"},{"title":"core::starknet::account::AccountContractSafeLibraryDispatcher","href":"/build/corelib/core-starknet-account-AccountContractSafeLibraryDispatcher"},{"title":"core::starknet::account::AccountContractSafeDispatcher","href":"/build/corelib/core-starknet-account-AccountContractSafeDispatcher"},{"title":"core::starknet::account::AccountContract","href":"/build/corelib/core-starknet-account-AccountContract"},{"title":"core::starknet::account::AccountContractDispatcherTrait","href":"/build/corelib/core-starknet-account-AccountContractDispatcherTrait"},{"title":"core::starknet::account::AccountContractSafeDispatcherTrait","href":"/build/corelib/core-starknet-account-AccountContractSafeDispatcherTrait"},{"title":"core::starknet::storage::map::Map","href":"/build/corelib/core-starknet-storage-map-Map"},{"title":"core::starknet::storage::map::StorageMapReadAccess","href":"/build/corelib/core-starknet-storage-map-StorageMapReadAccess"},{"title":"core::starknet::storage::map::StorageMapWriteAccess","href":"/build/corelib/core-starknet-storage-map-StorageMapWriteAccess"},{"title":"core::starknet::storage::map::StoragePathEntry","href":"/build/corelib/core-starknet-storage-map-StoragePathEntry"},{"title":"core::starknet::storage::storage_base::FlattenedStorage","href":"/build/corelib/core-starknet-storage-storage_base-FlattenedStorage"},{"title":"core::starknet::storage::storage_base::StorageBase","href":"/build/corelib/core-starknet-storage-storage_base-StorageBase"},{"title":"core::starknet::storage::storage_base::StorageTrait","href":"/build/corelib/core-starknet-storage-storage_base-StorageTrait"},{"title":"core::starknet::storage::storage_base::StorageTraitMut","href":"/build/corelib/core-starknet-storage-storage_base-StorageTraitMut"},{"title":"core::starknet::storage::vec::Vec","href":"/build/corelib/core-starknet-storage-vec-Vec"},{"title":"core::starknet::storage::vec::VecIter","href":"/build/corelib/core-starknet-storage-vec-VecIter"},{"title":"core::starknet::storage::vec::MutableVecTrait","href":"/build/corelib/core-starknet-storage-vec-MutableVecTrait"},{"title":"core::starknet::storage::vec::VecTrait","href":"/build/corelib/core-starknet-storage-vec-VecTrait"},{"title":"core::starknet::storage::storage_node::StorageNode","href":"/build/corelib/core-starknet-storage-storage_node-StorageNode"},{"title":"core::starknet::storage::storage_node::StorageNodeMut","href":"/build/corelib/core-starknet-storage-storage_node-StorageNodeMut"},{"title":"core::starknet::storage::sub_pointers::SubPointers","href":"/build/corelib/core-starknet-storage-sub_pointers-SubPointers"},{"title":"core::starknet::storage::sub_pointers::SubPointersForward","href":"/build/corelib/core-starknet-storage-sub_pointers-SubPointersForward"},{"title":"core::starknet::storage::sub_pointers::SubPointersMut","href":"/build/corelib/core-starknet-storage-sub_pointers-SubPointersMut"},{"title":"core::starknet::storage::sub_pointers::SubPointersMutForward","href":"/build/corelib/core-starknet-storage-sub_pointers-SubPointersMutForward"},{"title":"core::starknet::storage::StoragePointer","href":"/build/corelib/core-starknet-storage-StoragePointer"},{"title":"core::starknet::storage::StoragePointer0Offset","href":"/build/corelib/core-starknet-storage-StoragePointer0Offset"},{"title":"core::starknet::storage::StoragePath","href":"/build/corelib/core-starknet-storage-StoragePath"},{"title":"core::starknet::storage::PendingStoragePath","href":"/build/corelib/core-starknet-storage-PendingStoragePath"},{"title":"core::starknet::storage::Mutable","href":"/build/corelib/core-starknet-storage-Mutable"},{"title":"core::starknet::storage::StorageAsPointer","href":"/build/corelib/core-starknet-storage-StorageAsPointer"},{"title":"core::starknet::storage::StoragePointerReadAccess","href":"/build/corelib/core-starknet-storage-StoragePointerReadAccess"},{"title":"core::starknet::storage::StoragePointerWriteAccess","href":"/build/corelib/core-starknet-storage-StoragePointerWriteAccess"},{"title":"core::starknet::storage::StorageAsPath","href":"/build/corelib/core-starknet-storage-StorageAsPath"},{"title":"core::starknet::storage::PendingStoragePathTrait","href":"/build/corelib/core-starknet-storage-PendingStoragePathTrait"},{"title":"core::starknet::storage::StoragePathMutableConversion","href":"/build/corelib/core-starknet-storage-StoragePathMutableConversion"},{"title":"core::starknet::storage::IntoIterRange","href":"/build/corelib/core-starknet-storage-IntoIterRange"},{"title":"core::starknet::storage::ValidStorageTypeTrait","href":"/build/corelib/core-starknet-storage-ValidStorageTypeTrait"},{"title":"core::starknet::storage::SubPointersDeref","href":"/build/corelib/core-starknet-storage-SubPointersDeref"},{"title":"core::starknet::storage::SubPointersMutDeref","href":"/build/corelib/core-starknet-storage-SubPointersMutDeref"},{"title":"core::starknet::storage::StorableStoragePointerReadAccess","href":"/build/corelib/core-starknet-storage-StorableStoragePointerReadAccess"},{"title":"core::starknet::storage::StorageNodeDeref","href":"/build/corelib/core-starknet-storage-StorageNodeDeref"},{"title":"core::starknet::storage::StorageNodeMutDeref","href":"/build/corelib/core-starknet-storage-StorageNodeMutDeref"},{"title":"core::starknet::testing::set_block_number","href":"/build/corelib/core-starknet-testing-set_block_number"},{"title":"core::starknet::testing::set_caller_address","href":"/build/corelib/core-starknet-testing-set_caller_address"},{"title":"core::starknet::testing::set_contract_address","href":"/build/corelib/core-starknet-testing-set_contract_address"},{"title":"core::starknet::testing::set_sequencer_address","href":"/build/corelib/core-starknet-testing-set_sequencer_address"},{"title":"core::starknet::testing::set_block_timestamp","href":"/build/corelib/core-starknet-testing-set_block_timestamp"},{"title":"core::starknet::testing::set_version","href":"/build/corelib/core-starknet-testing-set_version"},{"title":"core::starknet::testing::set_account_contract_address","href":"/build/corelib/core-starknet-testing-set_account_contract_address"},{"title":"core::starknet::testing::set_max_fee","href":"/build/corelib/core-starknet-testing-set_max_fee"},{"title":"core::starknet::testing::set_transaction_hash","href":"/build/corelib/core-starknet-testing-set_transaction_hash"},{"title":"core::starknet::testing::set_chain_id","href":"/build/corelib/core-starknet-testing-set_chain_id"},{"title":"core::starknet::testing::set_nonce","href":"/build/corelib/core-starknet-testing-set_nonce"},{"title":"core::starknet::testing::set_signature","href":"/build/corelib/core-starknet-testing-set_signature"},{"title":"core::starknet::testing::set_block_hash","href":"/build/corelib/core-starknet-testing-set_block_hash"},{"title":"core::starknet::testing::pop_log_raw","href":"/build/corelib/core-starknet-testing-pop_log_raw"},{"title":"core::starknet::testing::pop_log","href":"/build/corelib/core-starknet-testing-pop_log"},{"title":"core::starknet::testing::pop_l2_to_l1_message","href":"/build/corelib/core-starknet-testing-pop_l2_to_l1_message"},{"title":"core::starknet::testing::cheatcode","href":"/build/corelib/core-starknet-testing-cheatcode"},{"title":"core::starknet::info::v2::ExecutionInfo","href":"/build/corelib/core-starknet-info-v2-ExecutionInfo"},{"title":"core::starknet::info::v2::ResourceBounds","href":"/build/corelib/core-starknet-info-v2-ResourceBounds"},{"title":"core::starknet::info::v2::TxInfo","href":"/build/corelib/core-starknet-info-v2-TxInfo"},{"title":"core::starknet::info::get_block_info","href":"/build/corelib/core-starknet-info-get_block_info"},{"title":"core::starknet::info::get_block_number","href":"/build/corelib/core-starknet-info-get_block_number"},{"title":"core::starknet::info::get_block_timestamp","href":"/build/corelib/core-starknet-info-get_block_timestamp"},{"title":"core::starknet::info::get_caller_address","href":"/build/corelib/core-starknet-info-get_caller_address"},{"title":"core::starknet::info::get_contract_address","href":"/build/corelib/core-starknet-info-get_contract_address"},{"title":"core::starknet::info::get_execution_info","href":"/build/corelib/core-starknet-info-get_execution_info"},{"title":"core::starknet::info::get_tx_info","href":"/build/corelib/core-starknet-info-get_tx_info"},{"title":"core::starknet::info::BlockInfo","href":"/build/corelib/core-starknet-info-BlockInfo"},{"title":"core::starknet::VALIDATED","href":"/build/corelib/core-starknet-VALIDATED"},{"title":"core::starknet::SyscallResult","href":"/build/corelib/core-starknet-SyscallResult"},{"title":"core::starknet::secp256r1::Secp256r1Point","href":"/build/corelib/core-starknet-secp256r1-Secp256r1Point"},{"title":"core::starknet::eth_address::EthAddress","href":"/build/corelib/core-starknet-eth_address-EthAddress"},{"title":"core::starknet::eth_signature::verify_eth_signature","href":"/build/corelib/core-starknet-eth_signature-verify_eth_signature"},{"title":"core::starknet::eth_signature::is_eth_signature_valid","href":"/build/corelib/core-starknet-eth_signature-is_eth_signature_valid"},{"title":"core::starknet::eth_signature::public_key_point_to_eth_address","href":"/build/corelib/core-starknet-eth_signature-public_key_point_to_eth_address"},{"title":"core::starknet::class_hash::ClassHash","href":"/build/corelib/core-starknet-class_hash-ClassHash"},{"title":"core::starknet::class_hash::class_hash_const","href":"/build/corelib/core-starknet-class_hash-class_hash_const"},{"title":"core::starknet::event::Event","href":"/build/corelib/core-starknet-event-Event"},{"title":"core::starknet::event::EventEmitter","href":"/build/corelib/core-starknet-event-EventEmitter"},{"title":"core::starknet::account::Call","href":"/build/corelib/core-starknet-account-Call"},{"title":"core::starknet::account::AccountContractDispatcher","href":"/build/corelib/core-starknet-account-AccountContractDispatcher"},{"title":"core::starknet::account::AccountContractLibraryDispatcher","href":"/build/corelib/core-starknet-account-AccountContractLibraryDispatcher"},{"title":"core::starknet::account::AccountContractSafeLibraryDispatcher","href":"/build/corelib/core-starknet-account-AccountContractSafeLibraryDispatcher"},{"title":"core::starknet::account::AccountContractSafeDispatcher","href":"/build/corelib/core-starknet-account-AccountContractSafeDispatcher"},{"title":"core::starknet::account::AccountContract","href":"/build/corelib/core-starknet-account-AccountContract"},{"title":"core::starknet::account::AccountContractDispatcherTrait","href":"/build/corelib/core-starknet-account-AccountContractDispatcherTrait"},{"title":"core::starknet::account::AccountContractSafeDispatcherTrait","href":"/build/corelib/core-starknet-account-AccountContractSafeDispatcherTrait"},{"title":"core::starknet::storage::map::Map","href":"/build/corelib/core-starknet-storage-map-Map"},{"title":"core::starknet::storage::map::StorageMapReadAccess","href":"/build/corelib/core-starknet-storage-map-StorageMapReadAccess"},{"title":"core::starknet::storage::map::StorageMapWriteAccess","href":"/build/corelib/core-starknet-storage-map-StorageMapWriteAccess"},{"title":"core::starknet::storage::map::StoragePathEntry","href":"/build/corelib/core-starknet-storage-map-StoragePathEntry"},{"title":"core::starknet::storage::storage_base::FlattenedStorage","href":"/build/corelib/core-starknet-storage-storage_base-FlattenedStorage"},{"title":"core::starknet::storage::storage_base::StorageBase","href":"/build/corelib/core-starknet-storage-storage_base-StorageBase"},{"title":"core::starknet::storage::storage_base::StorageTrait","href":"/build/corelib/core-starknet-storage-storage_base-StorageTrait"},{"title":"core::starknet::storage::storage_base::StorageTraitMut","href":"/build/corelib/core-starknet-storage-storage_base-StorageTraitMut"},{"title":"core::starknet::storage::vec::Vec","href":"/build/corelib/core-starknet-storage-vec-Vec"},{"title":"core::starknet::storage::vec::VecIter","href":"/build/corelib/core-starknet-storage-vec-VecIter"},{"title":"core::starknet::storage::vec::MutableVecTrait","href":"/build/corelib/core-starknet-storage-vec-MutableVecTrait"},{"title":"core::starknet::storage::vec::VecTrait","href":"/build/corelib/core-starknet-storage-vec-VecTrait"},{"title":"core::starknet::storage::storage_node::StorageNode","href":"/build/corelib/core-starknet-storage-storage_node-StorageNode"},{"title":"core::starknet::storage::storage_node::StorageNodeMut","href":"/build/corelib/core-starknet-storage-storage_node-StorageNodeMut"},{"title":"core::starknet::storage::sub_pointers::SubPointers","href":"/build/corelib/core-starknet-storage-sub_pointers-SubPointers"},{"title":"core::starknet::storage::sub_pointers::SubPointersForward","href":"/build/corelib/core-starknet-storage-sub_pointers-SubPointersForward"},{"title":"core::starknet::storage::sub_pointers::SubPointersMut","href":"/build/corelib/core-starknet-storage-sub_pointers-SubPointersMut"},{"title":"core::starknet::storage::sub_pointers::SubPointersMutForward","href":"/build/corelib/core-starknet-storage-sub_pointers-SubPointersMutForward"},{"title":"core::starknet::storage::StoragePointer","href":"/build/corelib/core-starknet-storage-StoragePointer"},{"title":"core::starknet::storage::StoragePointer0Offset","href":"/build/corelib/core-starknet-storage-StoragePointer0Offset"},{"title":"core::starknet::storage::StoragePath","href":"/build/corelib/core-starknet-storage-StoragePath"},{"title":"core::starknet::storage::PendingStoragePath","href":"/build/corelib/core-starknet-storage-PendingStoragePath"},{"title":"core::starknet::storage::Mutable","href":"/build/corelib/core-starknet-storage-Mutable"},{"title":"core::starknet::storage::StorageAsPointer","href":"/build/corelib/core-starknet-storage-StorageAsPointer"},{"title":"core::starknet::storage::StoragePointerReadAccess","href":"/build/corelib/core-starknet-storage-StoragePointerReadAccess"},{"title":"core::starknet::storage::StoragePointerWriteAccess","href":"/build/corelib/core-starknet-storage-StoragePointerWriteAccess"},{"title":"core::starknet::storage::StorageAsPath","href":"/build/corelib/core-starknet-storage-StorageAsPath"},{"title":"core::starknet::storage::PendingStoragePathTrait","href":"/build/corelib/core-starknet-storage-PendingStoragePathTrait"},{"title":"core::starknet::storage::StoragePathMutableConversion","href":"/build/corelib/core-starknet-storage-StoragePathMutableConversion"},{"title":"core::starknet::storage::IntoIterRange","href":"/build/corelib/core-starknet-storage-IntoIterRange"},{"title":"core::starknet::storage::ValidStorageTypeTrait","href":"/build/corelib/core-starknet-storage-ValidStorageTypeTrait"},{"title":"core::starknet::storage::SubPointersDeref","href":"/build/corelib/core-starknet-storage-SubPointersDeref"},{"title":"core::starknet::storage::SubPointersMutDeref","href":"/build/corelib/core-starknet-storage-SubPointersMutDeref"},{"title":"core::starknet::storage::StorableStoragePointerReadAccess","href":"/build/corelib/core-starknet-storage-StorableStoragePointerReadAccess"},{"title":"core::starknet::storage::StorageNodeDeref","href":"/build/corelib/core-starknet-storage-StorageNodeDeref"},{"title":"core::starknet::storage::StorageNodeMutDeref","href":"/build/corelib/core-starknet-storage-StorageNodeMutDeref"},{"title":"core::starknet::testing::set_block_number","href":"/build/corelib/core-starknet-testing-set_block_number"},{"title":"core::starknet::testing::set_caller_address","href":"/build/corelib/core-starknet-testing-set_caller_address"},{"title":"core::starknet::testing::set_contract_address","href":"/build/corelib/core-starknet-testing-set_contract_address"},{"title":"core::starknet::testing::set_sequencer_address","href":"/build/corelib/core-starknet-testing-set_sequencer_address"},{"title":"core::starknet::testing::set_block_timestamp","href":"/build/corelib/core-starknet-testing-set_block_timestamp"},{"title":"core::starknet::testing::set_version","href":"/build/corelib/core-starknet-testing-set_version"},{"title":"core::starknet::testing::set_account_contract_address","href":"/build/corelib/core-starknet-testing-set_account_contract_address"},{"title":"core::starknet::testing::set_max_fee","href":"/build/corelib/core-starknet-testing-set_max_fee"},{"title":"core::starknet::testing::set_transaction_hash","href":"/build/corelib/core-starknet-testing-set_transaction_hash"},{"title":"core::starknet::testing::set_chain_id","href":"/build/corelib/core-starknet-testing-set_chain_id"},{"title":"core::starknet::testing::set_nonce","href":"/build/corelib/core-starknet-testing-set_nonce"},{"title":"core::starknet::testing::set_signature","href":"/build/corelib/core-starknet-testing-set_signature"},{"title":"core::starknet::testing::set_block_hash","href":"/build/corelib/core-starknet-testing-set_block_hash"},{"title":"core::starknet::testing::pop_log_raw","href":"/build/corelib/core-starknet-testing-pop_log_raw"},{"title":"core::starknet::testing::pop_log","href":"/build/corelib/core-starknet-testing-pop_log"},{"title":"core::starknet::testing::pop_l2_to_l1_message","href":"/build/corelib/core-starknet-testing-pop_l2_to_l1_message"},{"title":"core::starknet::testing::cheatcode","href":"/build/corelib/core-starknet-testing-cheatcode"},{"title":"core::starknet::info::v2::ExecutionInfo","href":"/build/corelib/core-starknet-info-v2-ExecutionInfo"},{"title":"core::starknet::info::v2::ResourceBounds","href":"/build/corelib/core-starknet-info-v2-ResourceBounds"},{"title":"core::starknet::info::v2::TxInfo","href":"/build/corelib/core-starknet-info-v2-TxInfo"},{"title":"core::starknet::info::get_block_info","href":"/build/corelib/core-starknet-info-get_block_info"},{"title":"core::starknet::info::get_block_number","href":"/build/corelib/core-starknet-info-get_block_number"},{"title":"core::starknet::info::get_block_timestamp","href":"/build/corelib/core-starknet-info-get_block_timestamp"},{"title":"core::starknet::info::get_caller_address","href":"/build/corelib/core-starknet-info-get_caller_address"},{"title":"core::starknet::info::get_contract_address","href":"/build/corelib/core-starknet-info-get_contract_address"},{"title":"core::starknet::info::get_execution_info","href":"/build/corelib/core-starknet-info-get_execution_info"},{"title":"core::starknet::info::get_tx_info","href":"/build/corelib/core-starknet-info-get_tx_info"},{"title":"core::starknet::info::BlockInfo","href":"/build/corelib/core-starknet-info-BlockInfo"},{"title":"core::starknet::VALIDATED","href":"/build/corelib/core-starknet-VALIDATED"},{"title":"core::starknet::SyscallResult","href":"/build/corelib/core-starknet-SyscallResult"},{"title":"core::starknet::SyscallResultTrait","href":"/build/corelib/core-starknet-SyscallResultTrait"},{"title":"core::starknet::System","href":"/build/corelib/core-starknet-System"}]},{"group":"core::internal","pages":[{"title":"core::internal::bounded_int::UnitInt","href":"/build/corelib/core-internal-bounded_int-UnitInt"},{"title":"core::internal::bounded_int::AddHelper","href":"/build/corelib/core-internal-bounded_int-AddHelper"},{"title":"core::internal::bounded_int::SubHelper","href":"/build/corelib/core-internal-bounded_int-SubHelper"},{"title":"core::internal::bounded_int::SubHelper","href":"/build/corelib/core-internal-bounded_int-SubHelper"},{"title":"core::internal::bounded_int::MulHelper","href":"/build/corelib/core-internal-bounded_int-MulHelper"},{"title":"core::internal::bounded_int::DivRemHelper","href":"/build/corelib/core-internal-bounded_int-DivRemHelper"},{"title":"core::internal::bounded_int::ConstrainHelper","href":"/build/corelib/core-internal-bounded_int-ConstrainHelper"},{"title":"core::internal::bounded_int::TrimMinHelper","href":"/build/corelib/core-internal-bounded_int-TrimMinHelper"},{"title":"core::internal::bounded_int::TrimMaxHelper","href":"/build/corelib/core-internal-bounded_int-TrimMaxHelper"},{"title":"core::internal::bounded_int::NegateHelper","href":"/build/corelib/core-internal-bounded_int-NegateHelper"},{"title":"core::internal::bounded_int::upcast","href":"/build/corelib/core-internal-bounded_int-upcast"},{"title":"core::internal::bounded_int::downcast","href":"/build/corelib/core-internal-bounded_int-downcast"},{"title":"core::internal::bounded_int::bounded_int_add","href":"/build/corelib/core-internal-bounded_int-bounded_int_add"},{"title":"core::internal::bounded_int::bounded_int_constrain","href":"/build/corelib/core-internal-bounded_int-bounded_int_constrain"},{"title":"core::internal::bounded_int::bounded_int_div_rem","href":"/build/corelib/core-internal-bounded_int-bounded_int_div_rem"},{"title":"core::internal::bounded_int::bounded_int_is_zero","href":"/build/corelib/core-internal-bounded_int-bounded_int_is_zero"},{"title":"core::internal::bounded_int::bounded_int_mul","href":"/build/corelib/core-internal-bounded_int-bounded_int_mul"},{"title":"core::internal::bounded_int::bounded_int_sub","href":"/build/corelib/core-internal-bounded_int-bounded_int_sub"},{"title":"core::internal::bounded_int::bounded_int_trim_max","href":"/build/corelib/core-internal-bounded_int-bounded_int_trim_max"},{"title":"core::internal::bounded_int::bounded_int_trim_min","href":"/build/corelib/core-internal-bounded_int-bounded_int_trim_min"},{"title":"core::internal::DropWith","href":"/build/corelib/core-internal-DropWith"},{"title":"core::internal::InferDrop","href":"/build/corelib/core-internal-InferDrop"},{"title":"core::internal::DestructWith","href":"/build/corelib/core-internal-DestructWith"},{"title":"core::internal::InferDestruct","href":"/build/corelib/core-internal-InferDestruct"},{"title":"core::internal::OptionRev","href":"/build/corelib/core-internal-OptionRev"},{"title":"core::internal::LoopResult","href":"/build/corelib/core-internal-LoopResult"},{"title":"core::internal::revoke_ap_tracking","href":"/build/corelib/core-internal-revoke_ap_tracking"},{"title":"core::internal::require_implicit","href":"/build/corelib/core-internal-require_implicit"}]},{"group":"core::zeroable","pages":[{"title":"core::zeroable::NonZero","href":"/build/corelib/core-zeroable-NonZero"}]},{"group":"core::bytes_31","pages":[{"title":"core::bytes_31::Bytes31Trait","href":"/build/corelib/core-bytes_31-Bytes31Trait"},{"title":"core::bytes_31::Bytes31Impl","href":"/build/corelib/core-bytes_31-Bytes31Impl"},{"title":"core::bytes_31::bytes31","href":"/build/corelib/core-bytes_31-bytes31"}]},{"group":"core::byte_array","pages":[{"title":"core::byte_array::BYTE_ARRAY_MAGIC","href":"/build/corelib/core-byte_array-BYTE_ARRAY_MAGIC"},{"title":"core::byte_array::ByteArray","href":"/build/corelib/core-byte_array-ByteArray"},{"title":"core::byte_array::ByteArrayIter","href":"/build/corelib/core-byte_array-ByteArrayIter"},{"title":"core::byte_array::ByteArrayTrait","href":"/build/corelib/core-byte_array-ByteArrayTrait"},{"title":"core::byte_array::ByteArrayImpl","href":"/build/corelib/core-byte_array-ByteArrayImpl"}]},{"group":"core::string","pages":[{"title":null,"href":"/build/corelib/core-string-StringLiteral"}]},{"group":"core::iter","pages":[{"title":"core::iter::adapters::zip::zip","href":"/build/corelib/core-iter-adapters-zip-zip"},{"title":"core::iter::adapters::peekable::PeekableTrait","href":"/build/corelib/core-iter-adapters-peekable-PeekableTrait"},{"title":"core::iter::traits::collect::Extend","href":"/build/corelib/core-iter-traits-collect-Extend"},{"title":"core::iter::traits::collect::FromIterator","href":"/build/corelib/core-iter-traits-collect-FromIterator"},{"title":"core::iter::traits::collect::IntoIterator","href":"/build/corelib/core-iter-traits-collect-IntoIterator"},{"title":"core::iter::traits::iterator::Iterator","href":"/build/corelib/core-iter-traits-iterator-Iterator"}]},{"group":"core::metaprogramming","pages":[{"title":"core::metaprogramming::TypeEqual","href":"/build/corelib/core-metaprogramming-TypeEqual"}]},{"group":"core::testing","pages":[{"title":"core::testing::get_available_gas","href":"/build/corelib/core-testing-get_available_gas"},{"title":"core::testing::get_unspent_gas","href":"/build/corelib/core-testing-get_unspent_gas"}]},{"group":"core::to_byte_array","pages":[{"title":"core::to_byte_array::AppendFormattedToByteArray","href":"/build/corelib/core-to_byte_array-AppendFormattedToByteArray"},{"title":"core::to_byte_array::FormatAsByteArray","href":"/build/corelib/core-to_byte_array-FormatAsByteArray"}]}]},{"group":"Miscellaneous","pages":[{"title":"core::panic_with_felt252","href":"/build/corelib/core-panic_with_felt252"},{"title":"core::panic_with_const_felt252","href":"/build/corelib/core-panic_with_const_felt252"},{"title":"core::assert","href":"/build/corelib/core-assert"},{"title":"core::bool","href":"/build/corelib/core-bool"},{"title":"core::never","href":"/build/corelib/core-never"},{"title":"core::usize","href":"/build/corelib/core-usize"},{"title":"core::RangeCheck","href":"/build/corelib/core-RangeCheck"},{"title":"core::SegmentArena","href":"/build/corelib/core-SegmentArena"},{"title":"core::felt252","href":"/build/corelib/core-felt252"},{"title":"core::felt252_div","href":"/build/corelib/core-felt252_div"}]}]}]},{"tab":"Secure","icon":"helmet-battle","dropdowns":[{"dropdown":"Quickstart","icon":"rocket-launch","pages":[{"title":"Help secure Starknet guide overview","sidebarTitle":"Overview","href":"/secure/quickstart/overview"},{"title":"Running a full node","href":"/secure/quickstart/running-a-node"},{"title":"Becoming a validator","href":"/secure/quickstart/becoming-a-validator"},{"title":"Attesting to blocks","href":"/secure/quickstart/attesting-to-blocks"},{"title":"Recommended next steps after helping secure Starknet","sidebarTitle":"Next steps","href":"/secure/quickstart/next-steps"}]},{"dropdown":"Node API ↗","icon":"circle-nodes"}]},{"tab":"Learn","icon":"graduation-cap","pages":[{"title":"Learn","href":"/learn/protocol/intro"}]}]},"title":"Introduction to the Corelib documentation - Starknet Documentation","buildId":"dpl_DFJrtvUi8HS5F9nkooKuDJsuD5BM","deploymentId":"dpl_DFJrtvUi8HS5F9nkooKuDJsuD5BM","dynamics":[],"chunks":[]}