# Cairo L1 L2 Messaging

> Explain Starknet L1 and L2 messaging, l1_handler functions, and message syscalls; use when a request involves cross layer messaging in Cairo.

- Skill: `teddyjfpender/cairo-l1-l2-messaging` (Agent Skill, multi-file: 2 files)
- Install (CLI): `npx skillmds@latest add teddyjfpender/cairo-l1-l2-messaging`
- Raw SKILL.md: https://api.skillmd.com/api/skills/teddyjfpender/cairo-l1-l2-messaging/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: teddyjfpender (https://skillmd.com/u/teddyjfpender)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/teddyjfpender/cairo-l1-l2-messaging

---


# 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.md` before answering.
- Use `#[l1_handler]` for L1 to L2 messages.
- Use `send_message_to_l1_syscall` for 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?"

