name: cairo-l1-l2-messaging description: Explain Starknet L1 and L2 messaging, l1_handler functions, and message syscalls; use when a request involves cross layer messaging in Cairo.
Cairo L1-L2 Messaging
Overview
Explain how messages flow between L1 and L2 and the contract patterns to send and receive them.
Quick Use
- Read
references/l1-l2-messaging.mdbefore answering. - Use
#[l1_handler]for L1 to L2 messages. - Use
send_message_to_l1_syscallfor L2 to L1 messages.
Response Checklist
- Verify the L1 sender in l1_handler entry points.
- Remember that L2 to L1 messages must be consumed on L1.
- Use felt252 arrays for payloads.
Example Requests
- "How do I receive an L1 message in Cairo?"
- "How do I send a message to L1 from a contract?"
- "What is the Starknet messaging contract on L1?"