Solana-Native Trust Layer for AI Agents
AI agents lack economic accountability. Nobody can safely trust an autonomous agent with real money because:
- Counterparties refuse to deal with agents that can lose money with no recourse
- Traditional wallets only hold funds and cannot enforce behavioral rules
- There is no automatic compensation when an agent misbehaves
1. Register → 2. Bond → 3. Enforce → 4. Slash → 5. Compensate
Create identity · Lock SOL · Set rules · Penalize · Pay victims
| Component | Link |
|---|---|
| Landing Page | equxi.sithunyein.com |
| Dashboard | equxi.sithunyein.com/app.html |
| Documentation | equxi.sithunyein.com/docs.html |
| Program | D7akK6aUVdYWfSwRDtuKFExZQkqtWZ1EFrRz1LQdfvhc |
| Network | Solana Devnet |
| Repo | github.com/thesithunyein/equxi |
The program executes 8 instructions on devnet. All transactions confirmed.
| Instruction | Description |
|---|---|
initialize |
Configures admin authority |
register_agent |
Creates agent identity with name, type, and trust score |
create_bond |
Locks SOL as collateral |
withdraw_bond |
Returns SOL after lock period |
add_constraint |
Adds behavioral rule (spend limit, timelock, etc.) |
execute_slash |
Penalizes bond for rule violation |
compensate_victim |
Transfers slashed funds to victim |
update_trust_score |
Updates agent reputation |
git clone https://github.com/thesithunyein/equxi.git
cd equxi
npx serve .
# Open http://localhost:3000/app.html# Prerequisites: Solana CLI v2.1+, Rust stable
git clone https://github.com/thesithunyein/equxi.git
cd equxi
cargo build-sbf
solana program deploy target/deploy/equxi.soequxi/
├── programs/equxi/ Solana program (Rust/Anchor)
│ └── src/
│ ├── lib.rs 8 instructions
│ ├── state.rs Account structs
│ ├── error.rs Error codes
│ └── instructions/ Instruction handlers
├── sdk/ TypeScript SDK
├── app.html Dashboard
├── app.js Dashboard logic
├── app.css Dashboard styles
├── index.html Landing page
├── docs.html Documentation
└── styles.css Landing styles
struct Config {
admin: Pubkey, // Admin who can slash
total_agents: u64,
total_bonds: u64,
total_slashed: u64,
}
struct Agent {
owner: Pubkey, // Operator wallet
name: [u8; 32], // Agent name
agent_type: AgentType, // Trader, Oracle, DeFi, etc.
trust_score: u8, // 0-100 reputation
status: AgentStatus, // Active, Slashed, Deactivated
}
struct Bond {
agent: Pubkey, // Associated agent
operator: Pubkey, // Bond owner
amount: u64, // Locked lamports
expires_at: i64, // Lock expiry timestamp
is_active: bool,
}
struct Constraint {
agent: Pubkey,
constraint_type: ConstraintType, // SpendLimit, ProgramAllowlist, Timelock
params: ConstraintParams,
is_enforced: bool,
}import { EquxiClient } from "./sdk/src";
const client = new EquxiClient(provider);
// Register agent
const { agentPDA } = await client.registerAgent("AlphaTrader", { trader: {} });
// Lock 5 SOL for 30 days
await client.createBond(agentPDA, 5_000_000_000, 2_592_000);
// Add spending limit (max 1 SOL per day)
await client.addConstraint(agentPDA, { spendLimit: {} }, {
maxAmount: 1_000_000_000,
maxPerPeriod: 5_000_000_000,
periodSeconds: 86400,
});
// Slash for violation
await client.executeSlash(agentPDA, bondPDA, 100_000_000, "Exceeded spending limit");npm install @equxi/plugin-elizaimport { equxiPlugin } from "@equxi/plugin-eliza";
const agent = {
plugins: [equxiPlugin],
settings: {
WALLET_PUBLIC_KEY: "your-solana-wallet-public-key",
SOLANA_RPC_URL: "https://api.devnet.solana.com",
},
};Then talk to your agent naturally:
| What you say | Action triggered |
|---|---|
"Register my bot as an agent" |
EQUXI_REGISTER_AGENT |
"Lock 0.5 SOL as bond" |
EQUXI_LOCK_BOND |
"Set 1 SOL daily spend limit" |
EQUXI_ADD_CONSTRAINT |
"Slash 0.1 SOL for exceeding limit" |
EQUXI_SLASH_BOND |
See eliza-plugin/README.md for full docs.
Agentic Engineering Grant by Superteam.
Built by Sithu Nyein
