BrainMCPAgentRegistry
Property
Value
Interface
contract BrainMCPAgentRegistry {
struct AgentRegistration {
bytes32 agentId;
address agentAddress;
bytes32 tenantId;
bytes32 scopeHash;
bytes32 behaviorHash; // keccak256(model_id, model_version, prompt_template_hash, tool_manifest_hash)
uint256 registeredAt;
uint256 revokedAt; // 0 while active
}
event AgentRegistered(
bytes32 indexed agentId,
address indexed agentAddress,
bytes32 indexed tenantId,
bytes32 scopeHash,
bytes32 behaviorHash
);
event AgentRevoked(bytes32 indexed agentId, bytes32 indexed tenantId);
event AgentBehaviorUpdated(bytes32 indexed agentId, bytes32 indexed tenantId, bytes32 behaviorHash);
event TenantSignerSet(bytes32 indexed tenantId, address indexed signer, bool allowed);
// A tenant must configure β₯1 allowlisted signer before any agent can be
// registered for it; the first signer is bootstrapped by initialAdmin.
function setTenantSigner(
bytes32 tenantId, address signer, bool allowed,
address authSigner, bytes calldata signature
) external;
function registerAgent(
bytes32 agentId, address agentAddress, bytes32 tenantId,
bytes32 scopeHash, bytes32 behaviorHash, bytes calldata tenantSignature
) external;
function updateBehaviorHash(
bytes32 agentId, bytes32 behaviorHash, bytes calldata tenantSignature
) external;
function revokeAgent(bytes32 agentId, bytes calldata tenantSignature) external;
// Views
function isAuthorized(bytes32 agentId, bytes32 tenantId) external view returns (bool);
function getAgent(bytes32 agentId) external view returns (AgentRegistration memory);
function isTenantSigner(bytes32 tenantId, address a) external view returns (bool);
}Agent Record
Field
Purpose
Planned field (RFC 0001)
Purpose
Registration
Per-Tenant Scoping
Deactivation
Reputation lives in a separate contract
Discovery
Query
Result
ERC-8004 Alignment (RFC 0001)
ERC-8004 concept (RFC 0001)
Brain Implementation
behaviorHash Pinning
What's Next
Last updated
