배포된 컨트랙트 (테스트넷)
마루 테스트넷의 정식 컨트랙트 주소 목록입니다. 유틸리티, AA, EAS, ERC-8004, 상속된 EVM 프리컴파일, 마루 프리컴파일과 네이티브 OKRW ERC20 표현을 포함합니다.
OKRW — 두 EVM 진입점
OKRW는 고정된 두 주소로 노출됩니다. IOkrw 프리컴파일은 마루 고유 작업(
mint, getParams)을 처리하고, 네이티브 ERC20 표현은 표준 ERC20 호출(transfer, approve, transferFrom, balanceOf)을 처리합니다. 두 주소 모두 결국 동일한 aokrw 잔액을 이동시키며, 호출에 필요한 API 표면에 맞는 주소를 선택합니다.| 진입점 | 주소 | 용도 |
|---|---|---|
| IOkrw 프리컴파일 | 0x1000000000000000000000000000000000000001 | mint, getParams |
| 네이티브 ERC20 표현 | 0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE | 표준 ERC20 (transfer, approve, balanceOf, …) |
// 지갑·DEX 연동 — ERC20 주소와 통신합니다
IERC20 okrw = IERC20(0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE);
okrw.approve(router, 10_000_000 ether); // 10,000,000 OKRW
// 마루 확장 작업 — IOkrw 프리컴파일과 통신합니다
import "@maroo-chain/contracts/precompiles/okrw/IOkrw.sol";
IOkrw extn = IOkrw(0x1000000000000000000000000000000000000001);
extn.mint(recipient, 10_000_000 ether); 참고: ERC20 주소는 제네시스에서 `aokrw` base denom을 ERC20 진입점에 매핑하는 토큰 페어로 등록됩니다. 표준 EVM 도구(블록 익스플로러, 지갑, DEX 라우터)가 마루 고유 패치 없이 이 주소와 그대로 동작합니다.
마루 프리컴파일
다음 네 개의 프리컴파일 주소는 테스트넷과 메인넷에서 동일합니다.
@maroo-chain/contracts/precompiles/...의 인터페이스를 가져와 호출합니다.| 프리컴파일 | 주소 | 목적 |
|---|---|---|
IOkrw | 0x1000000000000000000000000000000000000001 | OKRW mint·params |
IPcl | 0x1000000000000000000000000000000000000005 | 프로그래머블 컴플라이언스 레이어 |
IEas | 0x1000000000000000000000000000000000000009 | EAS 디스커버리(getParams) |
IAgent | 0x100000000000000000000000000000000000000A | 에이전트 디스커버리·역방향 조회 |
export const ADDR = {
OKRW_PRECOMPILE: "0x1000000000000000000000000000000000000001",
OKRW_ERC20: "0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE",
PCL: "0x1000000000000000000000000000000000000005",
EAS_PRECOMPILE: "0x1000000000000000000000000000000000000009",
AGENT: "0x100000000000000000000000000000000000000A",
// ERC-8004 IdentityRegistry preinstall
ERC8004_IDENTITY:"0x8004000000000000000000000000000000000001",
} as const; EAS와 ERC-8004 preinstall
실제 EAS attestation 컨트랙트, SchemaRegistry, Indexer는 preinstall로 배포되어 있으므로 하드코딩 대신
IEas.getParams()로 정식 주소를 조회합니다. ERC-8004 IdentityRegistry는 별도의 preinstall로 0x8004000000000000000000000000000000000001에 위치합니다.import { createPublicClient, http } from "viem";
const EAS_PRECOMPILE = "0x1000000000000000000000000000000000000009";
const easAbi = [{
name: "getParams", type: "function", stateMutability: "view",
inputs: [],
outputs: [{ type: "tuple", components: [
{ name: "schemaRegistry", type: "address" },
{ name: "eas", type: "address" },
{ name: "indexer", type: "address" },
]}],
}] as const;
const client = createPublicClient({ transport: http("https://rpc-testnet.maroo.io") });
const { eas, indexer, schemaRegistry } = await client.readContract({
address: EAS_PRECOMPILE,
abi: easAbi,
functionName: "getParams",
});