---
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. Read Accounts,
Programs, Instructions, Transactions, and Fees in that order, as each builds on
the previous. Read Accounts and Programs before PDAs. Read Programs,
Instructions, and PDAs before CPIs.

<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="Tokens" 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         |
