Back to Blog
Agentic DeFi6 min readMarch 20, 20251.5k views

6 AI Agents, 1 Vault, Zero Clicks: Inside the Architecture of Pulse

E
Emmanuel O.
Founder, ClickShift Intelligence

What Does "Agentic Wallet OS" Actually Mean?

An operating system manages resources on behalf of programs. Windows manages your CPU, memory, and storage so applications can use them without fighting each other. Pulse manages capital, risk, and execution on behalf of AI agents — so they can trade without destroying your portfolio. This is what we built. Here's exactly how it works.

Most "AI trading" products are dressed-up alert systems. You still click. You still approve. You are still the bottleneck. Pulse is architecturally different in a way that matters: the agents hold real Solana wallets, hold real capital, and execute real transactions. No human in the loop. No approval queue. This article walks through every layer of that architecture — why we built it this way, and why those decisions matter for anyone serious about autonomous DeFi.

Layer 1: The Wallet Architecture

The first unusual decision in Pulse: every agent gets its own Solana wallet. Not a shared pool. Not a multi-sig with agent access. Their own Ed25519 keypair, their own on-chain address, their own balance.

This is deliberate. It creates natural blast radius containment. If one agent is compromised, the others are unaffected — the funds are in separate accounts, not one shared pool. It also creates a transparent audit trail: every agent's activity is publicly verifiable on-chain, by wallet address, independently of Pulse's infrastructure.

The 6-Agent Wallet Structure:

orchestrator_mainVAULT + ORCHESTRATORCapital pool. Receives deposits. Distributes to agents.
dca_agent_01DCA AGENTExecutes scheduled token buys via Jupiter V6.
trailing_agent_01TRAILING STOPMonitors peak prices, auto-exits on drawdown.
scout_agent_01SCOUTScans new pools, evaluates token legitimacy.
risk_manager_01RISK MANAGERRugCheck scanner, emergency halt authority.
offramp_agent_01OFF-RAMPProfit sweeper. Sends gains to cold wallet.

Layer 2: The Encryption Model

Giving agents real wallets immediately raises the obvious question: how are the private keys protected? This is where most projects make a catastrophic shortcut — they store the private key encrypted with a single application secret. If the secret leaks, every wallet is compromised simultaneously.

Pulse uses a different model, borrowed from Signal, TLS 1.3, and AWS KMS: key derivation, not key storage.

The HKDF-SHA256 Key Architecture:

Ingredient 1: The Environment Secret

A high-entropy secret stored only in Railway environment variables. Never in code, never in version control, never on disk. Hardened with scrypt (N=16,384) to produce the Master Key — making brute-force attacks computationally expensive.

Ingredient 2: The Per-Agent Salt

32 cryptographically random bytes generated when the agent wallet is created. Stored in the wallet's JSON file on disk. Unique per agent. Useless on its own — it's not a secret, it's a differentiator.

Ingredient 3: The Agent Identity

The agent's ID string (dca_agent_01, etc.) as the HKDF info parameter. Binds the derived key to exactly one agent — the same Master Key cannot derive the DCA agent's key using the Scout agent's identity.

// The derivation — runs in memory, result zeroed after use
masterKey = scrypt(ENCRYPTION_SECRET, hardening_salt, N=16384)
agentKey = HKDF(masterKey, perAgentSalt, "pulse:{agentId}:v2", 32 bytes)
// agentKey is used to AES-256-GCM decrypt the private key
// agentKey.fill(0) — wiped from memory within milliseconds

What an attacker needs to compromise one wallet: the Environment Secret (on Railway's servers), the per-agent salt (in the wallet JSON file), AND the agent ID (in code). All three. Each from a different location. Blast radius per breach: exactly one agent's wallet — because every agent has a different salt.

Layer 3: The Orchestrator + AI Reasoning

The Orchestrator is the only agent with language capability. It receives natural language commands via the API, interprets them using GPT-4o-mini, and translates intent into specific actions for the swarm.

How a Command Becomes an Action:

Input:"Start DCA into BONK with 0.05 SOL per round, every 30 minutes"
Context:Orchestrator builds portfolio context: current balances, active agents, mission state
Reasoning:GPT-4o-mini evaluates risk, validates against current portfolio, plans action
Decision:{ "action": "start_dca", "agentId": "dca_agent_01", "params": { "amountPerRound": 0.05 } }
Governor:Transaction request passes through all 7 safety layers
Execution:Jupiter V6 swap signed by dca_agent_01's keypair and broadcast on-chain

Crucially, the Orchestrator also understands the swarm's full context on every request — current balances across all agents, recent actions, the active mission, Governor limits. It doesn't give instructions blindly; it reasons about feasibility before acting. If the vault has 0.2 SOL and you ask it to distribute 1 SOL, it tells you that's impossible and explains why.

Layer 4: The Mission System

Most trading systems are instruction-based: "buy X, sell Y, repeat." Pulse is mission-based. A mission is a strategic objective — not a sequence of commands.

Instruction-Based (Old Model):

Buy 0.01 SOL of BONK at 9:00 AM
Buy 0.01 SOL of BONK at 10:00 AM
If price drops 15%, stop
If price rises 50%, sell half
...48 more rules...

Brittle. Breaks if market conditions change. Requires constant maintenance.

Mission-Based (Pulse):

"Accumulate BONK conservatively over 2 weeks. Average down on dips. Exit 50% if we hit +40%. Protect capital. Don't take more than 3% risk on any single move."

Adaptive. Agents interpret intent and adjust to conditions. One sentence handles infinite scenarios.

Missions broadcast to all agents instantly. When you update the mission via Telegram or dashboard, the Orchestrator propagates it to every agent on their next heartbeat cycle. No restart. No redeployment. The swarm adapts in under 60 seconds.

Layer 5: The Heartbeat — How Agents Stay Alive

One of the most technically important decisions in Pulse's architecture is how agents maintain their activity. It's not a cron job. There's no external scheduler. The agents are powered bysetInterval() loops inside a long-running Node.js process.

Why This Matters for Deployment:

Vercel (serverless) won't work. Serverless functions have a 10-second execution limit and terminate after responding. An agent trying to run a heartbeat on Vercel gets killed after its first cycle.

Railway (persistent process) works perfectly. Railway keeps the Node.js process alive indefinitely. The agents' setInterval timers keep firing. The heartbeats keep running. This is why Pulse is deployed on Railway, not Vercel.

The implication for infrastructure: Any platform running autonomous agents needs a persistent process host. This is a fundamental architectural constraint, not a preference.

Layer 6: On-Chain Proof — Every Action Is Verifiable

Pulse includes an on-chain proof endpoint that executes a real chain of micro-transactions — each agent signing and sending to the next in sequence. Every signature is returned with a Solana Explorer URL. Every hop is independently verifiable.

The Proof Chain (all real devnet transactions):

orchestrator_main → dca_agent_01 (0.001 SOL signed by orchestrator)
dca_agent_01 → trailing_agent_01 (0.001 SOL signed by DCA agent)
trailing_agent_01 → risk_manager_01 (signed by trailing agent)
risk_manager_01 → offramp_agent_01 (signed by risk manager)
offramp_agent_01 → orchestrator_main (signed by off-ramp agent)

No simulated transactions. No mock data. Each hop is signed by the sending agent's actual keypair and recorded on Solana devnet. The explorer links are real.

The Bigger Picture: ClickShift as the Intelligence Layer

Pulse is built on the ClickShift Chip — the same intelligence layer powering Alpha signals and Leverage analysis. That's not a marketing statement; it's an architectural one. The same whale exit detection, the same rug scoring, the same confidence models that power ClickShift's human-facing tools are what the Pulse agents use to make decisions.

This is the core thesis of ClickShift: the intelligence layer should be the same for both humans and agents. Whether a human trader reads an Alpha signal or a Pulse DCA agent reads the same data to decide whether to execute a round — the underlying intelligence is identical. Humans get the interface. Agents get the autonomy.

Pulse Is Moving to Testnet

Early testers get direct access to the full 6-agent swarm on Solana testnet — their own vault, their own agents, real transactions, real data. If you want to run autonomous DeFi before it goes mainstream, this is the window.

Ready to profit with Intelligence?

Join 525+ traders using ClickShift's AI-powered intelligence to make smarter trading decisions.

#Agentic DeFi#Pulse#Solana#AI Architecture#DeFi Security#Autonomous Agents