# packet

Browser-side packet types, builders, and validators.

A packet is either a plaintext `UnencryptedPacket<T>` ([`origin`](https://www.hyperfrontend.dev/docs/libraries/network-protocol/browser/packet/#api-PacketBase-prop-origin), [`target`](https://www.hyperfrontend.dev/docs/libraries/network-protocol/browser/packet/#api-PacketBase-prop-target), and a `Data<T>` envelope) or the sealed [`WirePacket`](https://www.hyperfrontend.dev/docs/libraries/network-protocol/browser/packet/#api-WirePacket) bytes that carry it. This entry point exposes [`createPacketBase`](https://www.hyperfrontend.dev/docs/libraries/network-protocol/browser/packet/#api-createPacketBase) and [`createUnencryptedPacket`](https://www.hyperfrontend.dev/docs/libraries/network-protocol/browser/packet/#api-createUnencryptedPacket), the validators [`isValidOrigin`](https://www.hyperfrontend.dev/docs/libraries/network-protocol/browser/packet/#api-isValidOrigin), [`isValidTarget`](https://www.hyperfrontend.dev/docs/libraries/network-protocol/browser/packet/#api-isValidTarget), [`isValidUnencryptedPacket`](https://www.hyperfrontend.dev/docs/libraries/network-protocol/browser/packet/#api-isValidUnencryptedPacket), and [`isValidWirePacket`](https://www.hyperfrontend.dev/docs/libraries/network-protocol/browser/packet/#api-isValidWirePacket), and the operation and drop types ([`PacketSealer`](https://www.hyperfrontend.dev/docs/libraries/network-protocol/browser/packet/#api-PacketSealer), [`PacketOpener`](https://www.hyperfrontend.dev/docs/libraries/network-protocol/browser/packet/#api-PacketOpener), [`PacketDrop`](https://www.hyperfrontend.dev/docs/libraries/network-protocol/browser/packet/#api-PacketDrop), [`PacketDropHandler`](https://www.hyperfrontend.dev/docs/libraries/network-protocol/browser/packet/#api-PacketDropHandler), [`PacketDropStage`](https://www.hyperfrontend.dev/docs/libraries/network-protocol/browser/packet/#api-PacketDropStage)) that a session protocol and a channel's [`onDrop`](https://www.hyperfrontend.dev/docs/libraries/network-protocol/#api-ChannelOptions-prop-onDrop) handler share. Origins and targets are UUID v4 strings. The [`/browser/v3`](https://www.hyperfrontend.dev/docs/libraries/network-protocol/browser/v3.md) and [`/browser/v4`](https://www.hyperfrontend.dev/docs/libraries/network-protocol/browser/v4.md) protocols convert between the two shapes; [`/node/packet`](https://www.hyperfrontend.dev/docs/libraries/network-protocol/node/packet.md) exports the same code.

---

Canonical page: https://www.hyperfrontend.dev/docs/libraries/network-protocol/browser/packet/
This file: https://www.hyperfrontend.dev/docs/libraries/network-protocol/browser/packet.md
Documentation index: https://www.hyperfrontend.dev/llms.txt
