ARCHITECTURE

System Architecture

A deep dive into how Helix combines Solana's speed with Arweave's permanence to create a storage solution greater than the sum of its parts.

~4 min read

Helix is built on a three-layer architecture that separates concerns while maximizing the strengths of each technology. Understanding this architecture helps explain why Helix can offer permanent storage at a fraction of traditional costs.

The Three Layers

Application Layer
Next.js 14React UITailwind CSSWeb Crypto APIClient-side Encryption
Transaction Layer
Solana NetworkWallet AuthenticationPayment ProcessingIrys SDKData Bundling
Storage Layer
Arweave PermawebPermanent StoragePostgreSQLMetadataShare Links

Application Layer

Next.js frontend handles user interaction, file processing, and client-side encryption before any data leaves the browser.

Transaction Layer

Solana processes payments and authentication. Irys bundles data and provides instant access while anchoring to Arweave.

Storage Layer

Arweave provides permanent, decentralized storage. PostgreSQL maintains searchable metadata and user preferences.

Network Layer

Data is replicated across thousands of nodes worldwide, ensuring availability regardless of individual node status.

Why Solana?

Solana serves as the payment and authentication layer for Helix. We chose Solana over other blockchains for several reasons:

Sub-Second Finality

Transactions confirm in ~400ms, enabling real-time upload experiences. No waiting minutes for blockchain confirmations.

Minimal Transaction Fees

Average transaction cost is $0.00025. This means payments and uploads can remain economical even for small files.

Robust Wallet Ecosystem

Phantom, Solflare, and dozens of other wallets provide familiar, secure interfaces for users to manage their identity.
wallet-connection.ts
// Solana wallet adapter integration
import { WalletAdapterNetwork } from '@solana/wallet-adapter-base';
import {
  PhantomWalletAdapter,
  SolflareWalletAdapter
} from '@solana/wallet-adapter-wallets';

const network = WalletAdapterNetwork.Mainnet;
const endpoint = clusterApiUrl(network);

const wallets = [
  new PhantomWalletAdapter(),
  new SolflareWalletAdapter(),
];

// User's wallet = their identity
// No email, no password, no account creation

Why Arweave?

Arweave is the only blockchain designed for permanent data storage. Its unique endowment model makes true permanence economically sustainable.

The Endowment Model

When you pay for Arweave storage, a portion goes into an endowment that generates returns over time. As storage costs decrease (they drop ~30% annually), the endowment's returns exceed maintenance costs, funding storage indefinitely.
YEAR 0

Payment → Endowment Pool

Storage costs fully covered

YEAR 10

Returns > Reduced Costs

30% annual cost decline creates surplus

YEAR 50

Returns >> Minimal Costs

Large surplus accumulated

YEAR 200+

Returns >>> Near Zero Costs

Perpetual storage guaranteed

This model has been validated by economic simulations and real-world operation. Arweave has been running since 2018, storing over 140TB of data permanently.

Why Irys?

Irys (formerly Bundlr) serves as the bridge between Solana and Arweave. It solves several challenges:

IRYS COMPARISON
WITHOUT IRYS
  • ×Wait 20+ minutes for Arweave confirmation
  • ×Pay with AR token (need to acquire separately)
  • ×Handle Arweave's unique transaction format
  • ×No instant data availability
WITH IRYS
  • Instant data availability (<1 second)
  • Pay with SOL (native to your wallet)
  • Simple, familiar upload API
  • Guaranteed Arweave anchoring
irys-upload.ts
import { WebIrys } from '@irys/sdk';

// Initialize Irys with Solana wallet
const irys = new WebIrys({
  network: "mainnet",
  token: "solana",
  wallet: { provider: wallet }
});

// Upload returns immediately with transaction ID
// Irys handles Arweave anchoring in background
const receipt = await irys.upload(encryptedData, {
  tags: [
    { name: "Content-Type", value: file.type },
    { name: "App-Name", value: "Helix" },
  ]
});

// Data available instantly at:
// https://arweave.net/{receipt.id}

Optimistic Data Availability

Irys provides instant access to your data while it anchors to Arweave. This means no waiting—your files are accessible immediately after upload, with the same permanent URL they'll have forever.

Data Flow

Understanding the complete data flow helps clarify how each layer contributes to security and permanence:

01

File Selection

User selects file through drag-and-drop or file picker. Browser FileReader API loads the file into memory.

02

Client-Side Encryption

If enabled, a unique AES-256 key is generated. File is encrypted with AES-GCM. Key stored locally, never transmitted.

03

Cost Calculation

Irys API calculates exact storage cost in SOL based on file size. Price displayed to user before any transaction.

04

Solana Transaction

Wallet signs the transaction. SOL transferred to Irys. Transaction confirmed on Solana (~400ms).

05

Irys Upload

Encrypted data bundled and uploaded. Instant receipt generated. Data available immediately at arweave.net/{id}.

06

Arweave Anchoring

Irys anchors bundle to Arweave in background. Data replicated across network nodes. Permanent storage guaranteed.

07

Metadata Storage

Transaction ID saved to PostgreSQL. Encrypted file metadata linked to user's dashboard.

Security Boundaries

Each layer has clear security responsibilities:

Client (Browser)
Encryption/DecryptionKey GenerationKey StorageZero-Knowledge
Solana
IdentityPaymentsWallet SignaturesNo Sensitive Data
Irys
Encrypted Data OnlyUpload ReceiptsCannot Decrypt
Arweave
Encrypted BlobsContent AddressingPublic but Unreadable
PostgreSQL
Metadata OnlyEncrypted ReferencesNo File Content

Defense in Depth

Even if an attacker compromises our servers, they gain nothing—no keys, no plaintext data. The architecture ensures that only you can access your files, using cryptographic guarantees rather than trust.