# ElizaOS Developer Update: November 5, 2025

## 1. Core Framework

The ElizaOS team has made significant architectural improvements to the core framework this week with several key PRs in development:

### Entity-Level Row-Level Security
A major security enhancement is in progress to implement entity-level Row-Level Security (RLS). PR [#6107](https://github.com/elizaOS/eliza/pull/6107) by @standujar introduces a hierarchical structure where multiple entities connect to multiple servers that connect to a single database. This provides more granular data access control while maintaining performance.

```typescript
// New hierarchical structure for database security
// Entity → Server → Database
interface Entity {
  id: string;
  name: string;
  servers: Server[];
}

// Row-level security policies are applied at both entity and server levels
```

### Dynamic Prompt Execution System
PR [#6113](https://github.com/elizaOS/eliza/pull/6113) by @odilitime introduces a schema-based framework for adjusting prompts to best fit model contexts. This system helps prevent hallucinations when using models with lower context windows:

```typescript
// New runtime method for dynamic prompt execution
runtime.dynamicPromptExecFromState({
  schema: {
    thought: "string",
    actions: "array"
  },
  prompt: promptTemplate,
  state: currentState,
  validationLevel: "strict"
});
```

The system includes token estimation, validation codes, retries, and metrics tracking to optimize model performance across different context sizes.

### Runtime ElizaOS Reference
PR [#6111](https://github.com/elizaOS/eliza/pull/6111) enables plugins to access the unified messaging API by adding an ElizaOS reference to the runtime. This provides a standardized entry point for sending messages to agents:

```typescript
// In plugin code
if (runtime.hasElizaOS()) {
  // Uses unified API with auto-filling, connection management
  await runtime.elizaOS.sendMessage(agentId, message, options);
} else {
  // Fallback for standalone mode
  await runtime.messageService.handleMessage(runtime, message, callback);
}
```

## 2. New Features

### x402 Payment Middleware
PR [#6114](https://github.com/elizaOS/eliza/pull/6114) introduces comprehensive payment protection for plugin routes:

```typescript
// Creating a payment-protected route
const protectedRoute = createPaymentAwareHandler({
  routeConfig: {
    path: '/api/data',
    method: 'GET'
  },
  x402Config: {
    paymentId: 'base_usdc',
    amount: '0.1',
    description: 'Access premium data'
  }
});
```

Key features include:
- EVM (EIP-712/ERC-3009) and Solana verification
- Facilitator payment ID support
- x402scan-compliant 402 responses
- Built-in configs for USDC on various chains
- Comprehensive payment types and validators

### Character File Wallet Configuration
A new capability allows characters to have personal wallets with configurations stored in character files:

```json
// In character.json
{
  "settings": {
    "wallet": {
      "evm": {
        "address": "0x...",
        "paymentConfig": "base_usdc"
      }
    }
  },
  "secrets": {
    "wallet": {
      "privateKey": "0x..."
    }
  }
}
```

Environment variables can set defaults, while character secrets can override these settings, enabling per-agent wallets.

## 3. Bug Fixes

### Agent Settings Persistence
A significant bug was fixed in PR [#6106](https://github.com/elizaOS/eliza/pull/6106) that prevented agent settings from persisting across restarts:

```typescript
// Before: Settings saved at runtime were lost on agent restart
await runtime.setSetting("key", "value");
await runtime.updateAgent(); // Settings lost on restart

// After: Settings are properly merged, preserving runtime state
// while allowing character file to override specific values
```

This fix ensures that runtime-generated configurations are correctly retained, improving agent stability and state management.

### Plugin Connection Issues
The team has addressed several technical issues with plugin connections:

1. Timeout problems in MCP connection causing disconnects
2. Limited ping retries resulting in dropped connections
3. Missing error handling in connection lifecycle

Solutions include adjusting timeouts, increasing retries, and improving ping methods:

```typescript
// Improved connection handling with retries and error management
connection.on('error', (err) => {
  logger.error('Connection error, attempting reconnect', { error: err });
  setTimeout(connect, RECONNECT_DELAY);
});

// Increased ping timeout and retries
connection.ping({
  timeout: EXTENDED_TIMEOUT,
  retries: MAX_RETRIES
});
```

## 4. API Changes

### Setting x402 Payment Configurations
There's now flexibility in where x402 payment configurations can be stored:

1. **Project initialization** (using `runtime::registerPaymentConfig`)
2. **Character files** (recommended for per-character wallets)

Example configuration:

```typescript
// Register a payment config at project initialization
runtime.registerPaymentConfig({
  id: 'custom_payment',
  network: 'ethereum',
  tokenAddress: '0x...',
  amount: '0.5',
  description: 'Custom API access'
});

// OR in character file
// "settings": {
//   "payments": {
//     "configs": [{
//       "id": "custom_payment",
//       "network": "ethereum",
//       ...
//     }]
//   }
// }
```

## 5. Social Media Integrations

### Discord Plugin Enhancements
PR [#24](https://github.com/elizaOS-plugins/plugin-discord) introduces significant updates to the Discord plugin:

- Slash commands interface for improved user interaction
- Modal interaction enhancements for rich interactions
- Integration with the new unified messaging API
- Better error handling and reconnection logic

### Telegram Agent Improvements
Users reported issues with Telegram agent responsiveness. The team is addressing these by:

- Improving response time for Telegram agents
- Fixing connection stability issues
- Adding better error reporting for debugging

## 6. Model Provider Updates

### Bedrock Plugin Image Generation
Users reported issues with the Bedrock plugin for image generation:

```
Error: Malformed input request
```

The team recommends:
1. Using OpenAI or OpenRouter plugins for image generation until the fix is deployed
2. Updating regional availability information for Bedrock models

### Dynamic Prompt Execution Framework
The new framework in PR [#6113](https://github.com/elizaOS/eliza/pull/6113) helps optimize prompts for different model providers:

- Token estimation to prevent context overflow
- XML/JSON parsing with validation codes
- Automatic retries with different prompt formulations
- Metrics tracking for model performance

## 7. Breaking Changes

### Token Migration from AI16Z to ElizaOS
The token migration will occur on November 7th with a 1:6 conversion ratio (1 AI16Z = 6 ElizaOS):

- 90-day window for manual migrations
- Exchanges will handle automatic migrations for users who don't hold their own keys
- Manual migration through a portal will be required for self-custody wallets
- Official information about exchanges supporting automatic migration will be shared on Friday

For developers integrating with the ElizaOS token, ensure your applications are updated to support the new token contract and symbol.

### Perps DEXes Support
Lighter (perps DEX) will not support AI16Z after migration; listing ElizaOS will be at their discretion. Developers using trading APIs should update integration code to handle the token change and potential liquidity shifts.