# ElizaOS Developer Update
**Week of November 3 - November 9, 2025**

## 1. Core Framework

We've made significant improvements to the ElizaOS architecture this week with several key updates to the core framework:

### Agent Runtime Enhancements
- **Dynamic Prompt Execution System**: Implemented a schema-based dynamic prompt executor ([PR #6113](https://github.com/elizaos/eliza/pull/6113)) that intelligently adjusts prompts to fit model contexts. This system includes validation, retries, and metrics tracking to reduce hallucinations when using models with lower context windows.
  ```typescript
  // Example usage:
  const result = await runtime.dynamicPromptExecFromState({
    state,
    schema: {
      thought: "string",
      actions: "array"
    },
    templateString: "{{agentPrompt}}",
    validationLevel: "strict"
  });
  ```

### Security Framework
- **Entity-Level Security**: Work continued on implementing entity-level row-level security ([PR #6107](https://github.com/elizaos/eliza/issues/6112)), providing more granular access controls for data. This will enable developers to set permissions at the entity level rather than just table-level permissions.

### Agent Stability Fixes
- **Settings Persistence**: Fixed a critical bug where agent settings weren't persisting across restarts ([PR #6106](https://github.com/elizaos/eliza/pull/6106)), ensuring runtime-generated configurations are now correctly retained.
- **Entity Names Serialization**: Fixed entity creation failures by normalizing the names field before database operations, handling Set objects by properly converting them to arrays ([PR #6133](https://github.com/elizaos/eliza/pull/6133)).

## 2. New Features

### React Hooks Package
A new `@elizaos/react` package ([PR #6093](https://github.com/elizaos/eliza/pull/6093)) introduces headless, reusable React hooks that enable developers to build custom UIs for ElizaOS agents:

```tsx
import { QueryClient, QueryClientProvider } from '@tanstack/react-query';
import { ElizaReactProvider, useAgents, useStartAgent } from '@elizaos/react';

const queryClient = new QueryClient();

function App() {
  return (
    <QueryClientProvider client={queryClient}>
      <ElizaReactProvider baseUrl="http://localhost:3000">
        <AgentList />
      </ElizaReactProvider>
    </QueryClientProvider>
  );
}

function AgentList() {
  const { data: agents, isLoading } = useAgents();
  const startAgent = useStartAgent({
    onSuccess: () => toast.success('Agent started!'),
  });

  if (isLoading) return <div>Loading...</div>;

  return (
    <div>
      {agents?.map((agent) => (
        <div key={agent.id}>
          <h3>{agent.name}</h3>
          <button onClick={() => startAgent.mutate(agent.id)}>
            Start
          </button>
        </div>
      ))}\
    </div>
  );
}
```

### x402 Payment Protection
- **Middleware for Paid Routes**: Added x402 payment protection for plugin routes ([PR #6114](https://github.com/elizaos/eliza/pull/6114)), supporting both EVM and Solana chains with proper verification and x402scan-compliant 402 responses.
  ```typescript
  // Example route configuration with payment protection
  const route = {
    path: '/my-premium-endpoint',
    method: 'post',
    x402: {
      config: 'base_usdc',
      amount: 0.01
    },
    handler: async (req, res) => {
      // Premium functionality here
    }
  };
  ```

### Runtime Migration Control
- **Skip Migrations Option**: Added an optional `skipMigrations` parameter to `runtime.initialize()` ([PR #6132](https://github.com/elizaos/eliza/pull/6132)), allowing developers to conditionally skip plugin migrations for faster startup in certain scenarios.

## 3. Bug Fixes

### Entity Creation Fix
- **Array Serialization**: Fixed a critical issue with entity names array serialization for PostgreSQL ([PR #6133](https://github.com/elizaos/eliza/pull/6133)). This ensures that the `names` field is always properly normalized before database operations, preventing entity creation failures.
  ```typescript
  // Before: Would fail for certain input types
  await sqlPlugin.createEntities([{ 
    names: new Set(["name1", "name2"]), 
    metadata: {} 
  }]);
  
  // After: Automatically normalizes any iterable to a string array
  // Works with strings, arrays, Sets, Maps, and other iterables
  ```

- The fix includes comprehensive normalization logic that handles diverse input types:
  - Strings (without character-splitting)
  - Sets, Maps, and custom iterables
  - Mixed-type arrays
  - Edge cases like numbers, booleans, objects, null, and undefined

## 4. API Changes

### Runtime API
- **New Dynamic Prompt Method**: Added `runtime.dynamicPromptExecFromState()` method to the `IAgentRuntime` interface, providing a more robust way to execute prompts with schema validation, retries, and metrics tracking.

### Type Exports
- **Enhanced Core Types**: Added and updated numerous `@elizaos/core` type declarations to better expose APIs and types for external consumers.
- **Payment Types**: Added payment-related types (`PaymentEnabledRoute`, `X402Config`) and validation helpers to support the new x402 payment protection system.

## 5. Social Media Integrations

### Discord Plugin Integration
- **Unified Messaging API**: Work has begun on integrating a unified messaging API for the Discord plugin ([PR #24](https://github.com/elizaos-plugins/plugin-discord/pull/24)), which will standardize interaction patterns across different messaging platforms.

### Streaming Infrastructure
- **Network Concept Development**: The team is developing an umbrella "network" concept for streaming that would house multiple shows including "Clank Tank", similar to television networks hosting multiple programs.
- **Interactive Features**: Plans to repurpose "$ai16z retire code" for interactive stream features, allowing users to trigger audio/visual effects during streams.

## 6. Model Provider Updates

### OpenRouter Integration
- **Text Embedding Support**: Extended the OpenRouter plugin to support `TEXT_EMBEDDING` models ([PR #17](https://github.com/elizaos-plugins/plugin-openrouter/pull/17)), expanding the range of embedding models available to ElizaOS agents.

### Voice Infrastructure
- **Browser-based Voice Generation**: The team is testing browser-based (client-side) voice generation, with plans to add an optional server voice endpoint for paid users.

## 7. Breaking Changes

### Token Migration (AI16Z to ELIZAOS)
- **Migration Portal**: The migration from AI16Z tokens to the new ELIZAOS tokens is ongoing, with a 90-day migration window ending February 4, 2026.
- **Migration Ratio**: 1:6 (one old token for six new tokens)
- **Exchange Support**: Some exchanges (Gate.io, KuCoin) have suspended AI16Z withdrawals and trading while awaiting new tokens. Bybit will reportedly launch ELIZAOS trading on November 12th.
- **Technical Issues**: Some users reported technical issues with Phantom wallet showing security warnings during migration. Users are advised to use the official migration link pinned in the Discord channel.

### Cloud Authentication
- **Login with Cloud SDK**: Development of a "login with cloud" SDK is underway to enable seamless authentication across multiple applications. This will be a significant change for developers integrating with ElizaOS.
- **Apps Section**: Plans to add an "Apps" section to Cloud where users can whitelist domains and link external apps.

---

For detailed guidance on these updates, please refer to our [documentation](https://docs.elizaos.com) or join the discussion in our [Discord server](https://discord.gg/elizaos).