EAS_POLICY
트랜잭션 발신자가 지정된 스키마의 유효한 EAS attestation을 보유하도록 요구. KYC/KYB 강제 게이트.
발신자가 특정 EAS 스키마로 발행된 유효한 (만료되지 않고 폐기되지 않은) attestation을 보유했는지를 트랜잭션 게이팅의 기준으로 삼습니다. KYC, KYB, 자격 증명, 자격 기반 게이트의 표준 프리미티브. EAS 프리컴파일을 통해 attestation을 해결하므로 AnteHandler 평가 중 조회가 저렴합니다.
파라미터 스키마
``
json
{
"eas_contract": "<address>",
"index_contract": "<address>",
"schema_uid": "<bytes32>"
}
`
eas_contract — 쿼리할 EAS 배포의 주소 (일반적으로 정식 마루 EAS).index_contract — 인덱서 컨트랙트 주소. EAS 프리컴파일이 attestation 조회를 O(1)로 만들기 위해 사용.schema_uid` — 발신자가 attestation을 보유해야 할 특정 스키마. 32바이트 hex 값으로 인코딩.평가
1. 정책 파라미터 읽기 → schema UID, EAS 컨트랙트, 인덱스 컨트랙트.
2.
3.
2.
EAS.getReceivedUIDCount(sender, schemaUid) 호출 (EAS 프리컴파일 경유). 0이면 → EasAttestationRequired로 거절.3.
EAS.getReceivedUIDs(sender, schemaUid)가 반환한 각 UID에 대해 EAS.getAttestation(uid)로 조회하고 검사: revocationTime == 0 AND (expirationTime == 0 OR expirationTime > block.timestamp). 유효한 UID 하나라도 있으면 → 입장 허용. 모두 폐기/만료면 → EasAttestationRequired로 거절.거절 시 ReasonCode
EasAttestationRequired — 지갑 UX: KYC/KYB 온보딩 파트너 트리거해 사용자가 attestation을 획득. 새 attestation을 받으면 동일 트랜잭션이 성공.전형적 사용
- KYC 게이트 전역 레벨 (
GlobalPolicyConfig): "KYC 인증 계정만 규제 경로 사용". - 상위 등급 기능: DeFi 풀 접근에 기관 KYB 스키마를 요구하는
ContractPolicyConfig. - 계층 모델:
OKRW_EAS_TRANSFER_LIMIT_POLICY와 결합해 미인증 사용자에게 제한된 접근, 인증 사용자에게 더 높은 한도 부여.