> For the complete documentation index, see [llms.txt](https://docs.enercalc.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.enercalc.com/sel-faq/setup-and-licensing/installation-activation-lice/understanding-sels-communicat.md).

# Network Communication Requirements

What outbound and inbound network connections ENERCALC SEL makes for licensing, cloud storage, and settings sync.

What outbound and inbound network calls does SEL make when launched and during normal operation?

ENERCALC SEL communicates with external servers for three primary purposes:

1. License validation/activation (required for software operation)
2. Optional cloud project storage (user-initiated)
3. Optional cloud settings sync (user preferences)

No automatic telemetry, crash reporting, or background data collection occurs. All calculations are performed locally.

**1. PURPOSE OF EACH CONNECTION**

Note that the "CloudRegistry" is not used except when using our cloud-based app. This feature is a SQL-based clone of the Windows HKCU registry items we store when running as a desktop. It allows us to use the same settings management in the cloud as we do on the desktop.

Cloud Project Sync is only used if your user chooses to use "Hosted Storage" (projects are stored on our AWS S3) - not required and can be disabled at the company level.

**2. TYPES OF DATA TRANSMITTED OR RECEIVED**

License/Authentication Data (Transmitted):

* Customer license key (15-character activation code)
* Customer KW number (internal customer ID)
* Windows login username
* Computer name
* Graphics adapter identifier (used to keep the user instance unique)
* Monitor count
* Windows version string
* ENERCALC software version number

License/Authentication Data (Received):

* Encrypted activation token (150-character encrypted string)
* License permissions (module access flags)
* Seat count and expiration dates
* Subscription status

Project Data (Optional - Cloud Sync):

* Project files (binary `.EC6` files, gzip-compressed)
* Project metadata: name, creation date, computer name, notes
* Shared files: logos, seals, support documents

Software Updates:

* Received only: Current available version number (string comparison)
* No automatic downloads - user must manually download updates

Error Reporting / Telemetry:

* None - ENERCALC does not transmit error reports, crash dumps, or usage telemetry

Configuration/Resources Downloaded:

* User settings (if cloud registry enabled)

**3. ENDPOINTS AND PROTOCOLS**

Activation Servers (HTTPS/443):

| **Region**             | **Domain**          | **AWS Region** |
| ---------------------- | ------------------- | -------------- |
| East Coast (Primary)   | enercalc.net        | AWS Virginia   |
| East Coast (Secondary) | enercalceast.com    | AWS Virginia   |
| West Coast             | enercalcwest.com    | AWS California |
| Pacific Northwest      | enercalcpnw\.com    | AWS Oregon     |
| Midwest                | enercalcmidwest.com | AWS Ohio       |
| Europe                 | enercloudeurope.com | AWS Frankfurt  |
| India                  | enerealcindia.com   | AWS Mumbai     |

Cloud Storage:

* AWS S3 (presigned URLs for large file transfers)
* All traffic via HTTPS/443

Protocol Details:

* Protocol: HTTPS (TLS/SSL)
* Port: 443 (standard HTTPS)
* Authentication: HMAC-SHA256 request signing via custom Signature1 header
* No UDP, TCP raw sockets, or non-standard ports

API Base Path:

* All API calls go to: https\://{server}/CRM/{endpoint}

**4. FREQUENCY AND TIMING**

| **Operation**           | **When**                | **Frequency**                     |
| ----------------------- | ----------------------- | --------------------------------- |
| License activation      | Application startup     | Once per session (cached locally) |
| Server handshake        | Application startup     | Once (connectivity test)          |
| Version check           | Startup (if enabled)    | Once per session, optional        |
| Cloud settings load     | Startup (if configured) | Once per session                  |
| Cloud settings save     | Application exit        | Once per session                  |
| Project upload/download | User-initiated          | On-demand only                    |
| Usage check-in          | Configurable            | Periodic (cloud sessions only)    |

No background polling or heartbeat connections - all connections are either startup-related or explicitly user-initiated.

**5. USER PROJECT DATA TRANSMISSION**

What IS Transmitted (when cloud sync is used):

* Project files (`.EC6` binary format, gzip-compressed)
* Project name and notes
* Computer name (which machine created/modified the file)
* Creation/modification timestamps
* Project status (in use, archived)

What is NOT Transmitted:

* Calculation inputs/outputs (calculated locally only)
* Design data (remains in project file, not parsed by server)
* Engineering calculations (performed locally, never sent to server)
* Source drawings or CAD files

User Control:

* Cloud sync is entirely optional
* Users can work 100% offline with local project files
* Cloud storage must be explicitly enabled and used

**6. FIREWALL CONFIGURATION REQUIREMENTS**

Required Domains (whitelist):

* enercalc.net
* enercalcwest.com
* enercalcmidwest.com
* enercalcindia.com
* enercloudeurope.com
* enercalcpnw\.com
* enercalceast.com
* enercalc.com
* \*.amazonaws.com (for S3 cloud storage, if used)

Port:

* 443 (HTTPS) - Outbound only

Protocol:

* HTTPS/TLS only

**7. SECURITY FEATURES**

| **Feature**             | **Implementation**                    |
| ----------------------- | ------------------------------------- |
| Transport encryption    | TLS/SSL (all traffic HTTPS)           |
| Request authentication  | HMAC-SHA256 signatures                |
| License data encryption | Encrypted activation tokens           |
| Local storage           | Encrypted license certificates        |
| Proxy support           | Configurable via registry or settings |

**8. WHAT ENERCALC DOES NOT DO**

* No telemetry - No usage analytics or behavioral tracking
* No crash reporting - No automatic error transmission
* No background connections - No polling or heartbeat
* No automatic updates - Version check only, manual download required
* No third-party integrations - No connection to analytics services
* No cookies or web tracking - Desktop application only
* No access to other applications - Isolated to ENERCALC files only

**9. OPTIONAL FEATURES (CAN BE DISABLED)**

These features can be disabled for highest-security environments:

1. Auto-update check - Disable in Settings > General Settings > "Automatically check for updates at program startup"
2. Cloud storage - Don't use cloud sync (use local files only) -can be disabled at the account level (ask support)
3. Cloud registry - Don't enable cloud settings sync

With these disabled, the only network traffic is the initial license activation/validation, receiving customer information from our CRM (re: name, license status etc), and deactivation of the license upon application close.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.enercalc.com/sel-faq/setup-and-licensing/installation-activation-lice/understanding-sels-communicat.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
