# Allo GOld - Plugin Architecture Research & Development
## Research & Architecture Design
Researched generic funding mechanism integration patterns. Identified Eliza's plugin architecture as a promising model that aligns with our platform's needs for supporting generic EVM function calls while maintaining integration flexibility.
## Plugin Interface Extension
Extended eliza's base Plugin interface to create `AlloPlugin`, preserving compatibility with Eliza while adding Allo-specific functionality:
```typescript
interface AlloPlugin extends Plugin {
logo: string;
id: string;
complexity: number;
allowActions?: AlloAction[];
}
```
The base interface provides core plugin capabilities including actions, and service providers, while our extension adds branding and complexity metrics specific to our platform needs.
## Action System Enhancement
Developed `AlloAction` interface extending Eliza's base Action type to support manual interaction instead of via an LLM:
```typescript
interface AlloAction extends Action {
userHandler?: UserHandler;
formConfig?: FormConfig;
}
```
This enhancement maintains backward compatibility while adding support for user-specific handlers.
## Form Rendering System
Implemented a dynamic form rendering system which is pretty easy to extennd as additional inputs are needed. This is an example configuration to build the form equivalent to the program creation step on the [Gitcoin Round Manager](https://manager.gitcoin.co/):
```typescript
formConfig: {
fields: [
{
type: "wallet-addresses",
name: "operators",
label: "Add Operator(s)"
},
{
type: "text",
name: "programName",
label: "Program Name",
placeholder: "Enter the name of the Grant Program",
description: "This will be your display name",
required: true
}
]
}
```
## Next Steps
Onchain integration of >1 functioning funding mechanisms. Starting with Easy RPGF and moving on to QF