> ## Documentation Index
> Fetch the complete documentation index at: https://docs.nearnode.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Nodes

> The fundamental unit of NearNode — a bridge between a physical trigger and a digital action.

A **Node** is a single physical touchpoint. It has a unique `slug` (e.g., `o1ulpplq`), a permanent scan URL (`nearnode.io/v/o1ulpplq`), and a configurable function type that determines what happens when someone scans it.

## Lifecycle

Every node moves through a lifecycle. Status transitions are tracked and logged.

| Status          | Description                                             |
| --------------- | ------------------------------------------------------- |
| `draft`         | Created but not yet written to hardware                 |
| `in_production` | Written to a tag/chip but not yet deployed in the field |
| `active`        | Live and serving scans                                  |
| `paused`        | Temporarily disabled — scans return a 404               |
| `lost`          | Tag is reported lost or stolen (kill switch activated)  |
| `retired`       | Permanently decommissioned                              |

<Tip>
  The transition from `draft` → `active` happens automatically when you write and lock a tag via the [NFC Writer](/guides/nfc-writer).
</Tip>

## Function Types

The `function_type` field determines how a scan is handled:

<Tabs>
  <Tab title="Redirect" icon="arrow-up-right-from-square">
    The simplest type. Scans redirect (HTTP 307) to a destination URL.

    ```json theme={null}
    {
      "function_type": "redirect",
      "payload": {
        "url": "https://acme.com/welcome"
      }
    }
    ```
  </Tab>

  <Tab title="vCard" icon="address-card">
    Serves a downloadable contact card (`.vcf` file). The scanner's phone prompts "Add to Contacts".

    ```json theme={null}
    {
      "function_type": "vcard",
      "payload": {
        "first_name": "James",
        "last_name": "Page",
        "organization": "VidiaI",
        "phone": "+41791234567",
        "email": "james@vidiai.ch"
      }
    }
    ```
  </Tab>

  <Tab title="WiFi" icon="wifi">
    Renders a WiFi connection page with one-tap connect.

    ```json theme={null}
    {
      "function_type": "wifi",
      "payload": {
        "ssid": "Office-Guest",
        "password": "welcome2026",
        "security": "WPA2"
      }
    }
    ```
  </Tab>

  <Tab title="Action" icon="bolt">
    Direct-to-action triggers — WhatsApp, Calendly, email, phone call.

    ```json theme={null}
    {
      "function_type": "action",
      "payload": {
        "action_type": "whatsapp",
        "phone": "+41791234567",
        "message": "Hi, I scanned your tag!"
      }
    }
    ```

    Supported action types: `whatsapp`, `calendly`, `email`, `phone`, `url`.
  </Tab>

  <Tab title="Microsite" icon="browser">
    A single-page mini-site with links, images, and content blocks. Fully managed — no hosting needed.
  </Tab>
</Tabs>

## Routing Rules

Each node can have multiple [routing rules](/concepts/routing-rules) evaluated in priority order. Rules enable:

<CardGroup cols={2}>
  <Card title="A/B Testing" icon="flask">
    Split traffic between page variants and measure conversion.
  </Card>

  <Card title="Time-Based" icon="clock">
    Different destinations for office hours vs. after-hours.
  </Card>

  <Card title="Geo-Targeting" icon="earth-americas">
    Route DACH region to German content, rest of world to English.
  </Card>

  <Card title="Device Routing" icon="mobile">
    Mobile users get the app store, desktop users get the website.
  </Card>
</CardGroup>
