---
title: Core Concepts
description:
  Solana's core building blocks, including accounts, programs, instructions,
  transactions, fees, program-derived addresses, and cross-program invocations.
url: /docs/core
type: conceptual
prerequisites: []
related:
  - /docs/core/accounts
  - /docs/core/transactions
  - /docs/core/instructions
  - /docs/core/fees
  - /docs/core/programs
  - /docs/core/pda
  - /docs/core/cpi
  - /docs/core/constants-reference
---

Seven concepts form the foundation of Solana development. Start with Accounts
and Programs, then follow how Instructions become Transactions. PDAs, CPIs, and
Fees build on that execution model.

<DocsDiagram
  src="/assets/docs/diagrams/core-concepts.svg"
  alt="Solana core concepts, ordered from accounts and programs through instructions and transactions, with PDAs, CPIs, and fees"
/>

<Cards>
  <Card title="Accounts" href="/docs/core/accounts">
    Solana stores all state in accounts, a key-value store keyed by 32-byte
    addresses. Each account has five fields: lamports, data, owner, executable,
    and rent_epoch.
  </Card>
  <Card title="Programs" href="/docs/core/programs">
    Solana's smart contracts, compiled to sBPF. Programs are stateless and all
    mutable state lives in separate data accounts passed via instructions.
  </Card>
  <Card title="Instructions" href="/docs/core/instructions">
    A request to execute one program, containing a program ID, accounts list,
    and opaque data bytes. Multiple instructions compose into a single
    transaction.
  </Card>
  <Card title="Transactions" href="/docs/core/transactions">
    The atomic unit of execution on Solana. Contains signatures and a message
    (account addresses, recent blockhash, and compiled instructions). Max 1232
    bytes.
  </Card>
  <Card title="Fees" href="/docs/core/fees">
    Base fee of 5,000 lamports per signature, plus an optional priority fee
    based on compute units requested. Max 1.4M compute units per transaction.
  </Card>
  <Card title="Program Derived Addresses (PDAs)" href="/docs/core/pda">
    Deterministic addresses derived from a program ID and seeds. Only the owning
    program can sign on behalf of a PDA via invoke_signed.
  </Card>
  <Card title="Cross-Program Invocations (CPIs)" href="/docs/core/cpi">
    One program calling another via invoke or invoke_signed. Signer and writable
    privileges extend to the callee. Max instruction stack depth of 5 (top-level
    plus CPIs).
  </Card>
</Cards>

## Additional Topics

<Cards>
  <Card title="Assets" href="/docs/tokens">
    Fungible and non-fungible digital assets on Solana (SPL Token, Token-2022).
  </Card>
  <Card title="Clusters and Endpoints" href="/docs/references/clusters">
    Mainnet, Devnet, and Testnet: validator groups serving JSON-RPC requests.
  </Card>
</Cards>

| Cluster | Public RPC Endpoint              | Use                       |
| ------- | -------------------------------- | ------------------------- |
| Mainnet | `https://api.mainnet.solana.com` | Production                |
| Devnet  | `https://api.devnet.solana.com`  | Developer experimentation |
| Testnet | `https://api.testnet.solana.com` | Validator testing         |
