# Core Concepts

This section dives into the fundamental principles and architectural decisions that shape the OCAP Client library. Understanding these core concepts will help you leverage the library's full potential, write more efficient code, and troubleshoot issues more effectively.

While the [How-to Guides](./how-to-guides.md) provide step-by-step instructions for specific tasks, this section explains the "why" behind the "how." We'll explore the client's structure, how transactions are processed from start to finish, how to listen for real-time events, and how to create gasless user experiences.

<x-cards data-columns="2">
  <x-card data-title="Client Architecture" data-icon="lucide:architecture" data-href="/core-concepts/client-architecture">
    Learn about the different client implementations (Node, Browser, Lite) and how to choose the right one for your environment to optimize performance and bundle size.
  </x-card>
  <x-card data-title="Transaction Lifecycle" data-icon="lucide:refresh-cw" data-href="/core-concepts/transaction-lifecycle">
    Follow a transaction's journey from a simple JavaScript object to a confirmed block on the chain, covering creation, encoding, signing, and broadcasting.
  </x-card>
  <x-card data-title="Event Subscriptions" data-icon="lucide:radio-tower" data-href="/core-concepts/event-subscriptions">
    Discover how to use the WebSocket-based subscription feature to listen for real-time on-chain events, enabling dynamic and responsive applications.
  </x-card>
  <x-card data-title="Gas Payment" data-icon="lucide:gas-pump" data-href="/core-concepts/gas-payment">
    Explore the powerful gas payment feature, which allows a designated wallet to sponsor transaction fees for users, creating seamless, gasless experiences.
  </x-card>
</x-cards>

By grasping these foundational topics, you'll be well-equipped to build robust, scalable, and user-friendly applications using the OCAP Client.
