Agent 프리컴파일
ERC-8004 IdentityRegistry 위의 EVM 호출 가능한 view 레이어 — 에이전트 조회, 소유자 확인, 인덱싱 검색.
Agent 프리컴파일은 마루의 4개 핵심 정적 프리컴파일 중 하나입니다 (OKRW, PCL, EAS와 함께). ERC-8004 IdentityRegistry preinstall 컨트랙트 위에 읽기 전용 view를 노출하여, Solidity 호출자가 에이전트 메타데이터를 효율적으로 조회하고, agent → owner 관계를 확인하며, 특정 주소가 소유한 에이전트를 열거할 수 있게 합니다. 상태 변경(등록, 갱신, 폐기)은 IdentityRegistry 컨트랙트로 직접 호출되며, 프리컴파일은 순수히 인덱싱된 쿼리 면입니다.
별도의 프리컴파일이 필요한 이유 (Registry 직접 호출 대신)
ERC-8004의 표준 컨트랙트 인터페이스는 개별 조회에는 적합하지만 열거(예: "0x...이 소유한 모든 에이전트 목록")에는 비용이 큽니다. Agent 프리컴파일 +
쓰기는 여전히 Registry 컨트랙트로 진행됩니다 — 이로써 정식 상태는 온체인에 머물고 ERC-8004 호환성이 유지됩니다. 프리컴파일은 성능 보조이지 권한자가 아닙니다.
x/agent Cosmos 모듈은 체인 상태에서 재생성되는 인덱스를 유지하고, 저렴한 view 메서드로 노출합니다. 이는 EAS 프리컴파일 + x/eas 모듈과 동일한 패턴입니다.쓰기는 여전히 Registry 컨트랙트로 진행됩니다 — 이로써 정식 상태는 온체인에 머물고 ERC-8004 호환성이 유지됩니다. 프리컴파일은 성능 보조이지 권한자가 아닙니다.
Read 메서드 (추상)
정확한 ABI는 소스 저장소에 있으며, 개념적으로:
순수 view 호출이며 ABI 인코딩 + 작은 고정 비용만큼만 가스를 소비합니다. Registry 스토리지를 순회하지 않고
getAgent(agentId)— 에이전트의 주소, 소유자, 등록 블록, 현재 attestation/위임 해시, 상태를 반환.getAgentsByOwner(ownerAddr)— 해당 소유자에게 등록된 agentId 목록 반환.getOwner(agentAddr)— 역조회; 소유자 주소 반환 (모르면 0).
순수 view 호출이며 ABI 인코딩 + 작은 고정 비용만큼만 가스를 소비합니다. Registry 스토리지를 순회하지 않고
x/agent 모듈의 인덱스에서 읽습니다.KYA 강제와의 관계
PCL의 KYA 관련 정책 템플릿(예: 에이전트 소유자가 특정 EAS attestation을 보유해야 하는 정책)이 트랜잭션 평가 중 이 프리컴파일을 호출합니다. 흐름:
1. 트랜잭션 발신자가
2. 다음으로 EAS 프리컴파일을 호출해 소유자의 KYC/KYB attestation을 읽음.
3. PCL이 (에이전트 신원, 소유자 attestation, 위임 범위)에 대해 설정된 정책을 평가.
Agent 프리컴파일 없이는 IdentityRegistry 스토리지 순회가 필요한데, AnteHandler 내에서는 비실용적입니다.
1. 트랜잭션 발신자가
agentAddr — PCL의 PclAnteDecorator가 Agent.getOwner(agentAddr)를 호출해 사람/법인 소유자를 확인.2. 다음으로 EAS 프리컴파일을 호출해 소유자의 KYC/KYB attestation을 읽음.
3. PCL이 (에이전트 신원, 소유자 attestation, 위임 범위)에 대해 설정된 정책을 평가.
Agent 프리컴파일 없이는 IdentityRegistry 스토리지 순회가 필요한데, AnteHandler 내에서는 비실용적입니다.
V1 범위
마루 화이트페이퍼 §6.3에 따라 V1은 ERC-8004의 Identity Registry 부분만 구현합니다. Reputation Registry와 Validation Registry는 V2+로 연기되며 V1에서는 이 프리컴파일이 노출하지 않습니다.