Beomz
← All agents
DD
AutoGen🏛️ Governance

DAO Delegate

Votes on governance proposals — only after Beomz validates the intent

WHAT BEOMZ PROTECTS

Before casting a governance vote, the agent submits the full intent digest (action type + payload hash) to Beomz — catching malformed proposals, duplicate votes, or injected payloads before they hit the chain.

DEFAULT INPUT

DAO proposal #88 intent

A governance vote intent on proposal #88 — a 50,000 USDC treasury transfer requiring quorum validation.

WALLET MODE

SUBJECT TO VERIFY

LIVE VERDICT

🔍

No verdict yet

Run the demo above to see a live Beomz verdict.

FRAMEWORK-IDIOMATIC INTEGRATION

AutoGen
# AutoGen DAO Delegate agent with Beomz intent verification
import autogen, os, hashlib, json
from beomz import BeomzClient

beomz = BeomzClient(
    network="testnet",
    account_id=os.environ["BEOMZ_DEMO_ACCOUNT_ID"],
    private_key=os.environ["BEOMZ_DEMO_PRIVATE_KEY"],
)

proposal_88 = {
    "proposal_id": 88,
    "action": "transfer",
    "recipient": "treasury.dao.near",
    "amount": "50000 USDC",
    "quorum": 0.51,
}

payload_hash = hashlib.sha256(
    json.dumps(proposal_88, sort_keys=True).encode()
).hexdigest()

# Verify the intent before voting
verdict = beomz.verify_intent(
    action_type="dao_vote",
    payload={"hash": payload_hash, "proposal_id": 88},
)

if verdict.result != "Safe":
    raise RuntimeError(f"Vote blocked: {verdict.ai_summary}")

# AutoGen multi-agent vote approval flow
config_list = [{"model": "gpt-4o", "api_key": os.environ["OPENAI_API_KEY"]}]

delegate = autogen.AssistantAgent(
    name="DAODelegate",
    system_message="Cast DAO votes only after Beomz clears the intent.",
    llm_config={"config_list": config_list},
)

user_proxy = autogen.UserProxyAgent(
    name="Governance",
    human_input_mode="NEVER",
    code_execution_config=False,
)

user_proxy.initiate_chat(
    delegate,
    message=f"Proposal #88 is cleared (verdict={verdict.result}). Cast YES vote.",
)