Cairo Components
Overview
Explain how to define, embed, and use components to share contract logic safely.
Quick Use
- Read
references/components.mdbefore answering. - Use
#[starknet::component]andcomponent!for embedding. - Show both embeddable external functions and internal functions.
Response Checklist
- Define component storage with
#[storage]and anEventenum. - Use
#[embeddable_as]on impls to expose entry points. - Embed component storage and events in the host contract.
- Add
#[abi(embed_v0)]impl aliases when embedding.
Example Requests
- "How do I create a reusable component?"
- "How do I embed a component into a contract?"
- "What is the difference between embeddable and internal component functions?"