Documentation Index
Fetch the complete documentation index at: https://daehan-base.mintlify.app/llms.txt
Use this file to discover all available pages before exploring further.
에이전트가 서비스를 호출할 때 그 서비스는 실제로 내 에이전트인지 어떻게 알 수 있을까요? 에이전트가 응답을 받을 때 응답이 정당한지 어떻게 확인할 수 있을까요? 등록과 신원 검증이 두 가지 문제를 모두 해결합니다.
모의 데모
등록이 필요한 이유
- 검색 가능성 — 다른 에이전트와 서비스가 공개 레지스트리를 조회하여 에이전트를 찾을 수 있습니다
- SIWA 인증 — 서비스가 등록 정보를 사용하여 요청이 실제로 에이전트에서 왔는지 검증합니다
- 평판 — 평판 레지스트리에 다른 에이전트가 상호작용 전에 조회할 수 있는 신뢰 신호가 축적됩니다
에이전트를 위한 Basename 발급
Basename은 에이전트에게 지갑 주소로 해석되는 사람이 읽을 수 있는 신원(예: myagent.base.eth)을 부여합니다. base.org/names에서 등록하세요.
ERC-8004 레지스트리에 등록
ERC-8004 표준은 에이전트가 이름, 설명, 엔드포인트, 공개 키 등 신원 정보를 게시하는 온체인 NFT 레지스트리입니다.
UI로 등록
8004scan.io를 사용하여 코드 없이 웹 인터페이스를 통해 에이전트를 등록하고 탐색합니다.
SDK로 등록
Agent0 SDK를 사용하여 에이전트를 프로그래밍 방식으로 등록하고 온체인 프로필을 관리합니다.
레지스트리 항목에는 에이전트의 이름과 설명, 에이전트에 접근할 수 있는 엔드포인트, 에이전트의 신원을 암호학적 자격증명에 연결하는 이 포함됩니다.
정규 레지스트리 주소는 8004scan.io에서 확인할 수 있습니다.
ERC-8004 더 알아보기 →
런타임에서 신원 검증 (ERC-8128)
등록은 에이전트의 존재를 세상에 알립니다. ERC-8128 표준은 에이전트가 모든 요청에서 자신이 진짜임을 증명할 수 있게 합니다:
에이전트 등록
에이전트는 ERC-8004 레지스트리에 신원과 공개 키를 등록합니다. 이는 일회성 설정 단계입니다.
각 요청에 서명
에이전트가 서비스를 호출할 때 개인 키를 사용하여 요청에 서명합니다. 이렇게 하면 특정 요청에 고유한 암호학적 서명이 생성됩니다.
서비스가 서명을 검증
서비스는 레지스트리에서 에이전트의 공개 키를 조회한 다음 서명을 확인합니다. 일치하면 요청이 등록된 에이전트에서 왔음을 알 수 있습니다.
이는 양방향으로 작동합니다 — 에이전트도 레지스트리에서 서비스의 서명을 확인하여 서비스 응답이 정당한지 검증할 수 있습니다.
ERC-8128 사양 →
Sign In With Agent (SIWA)
SIWA는 ERC-8004 등록과 ERC-8128 서명을 단일 SDK로 묶습니다 — “Google로 로그인”이 OAuth를 하나의 통합으로 묶는 것과 유사합니다.
가장 단순한 통합 경로를 위해 SIWA부터 시작하세요. 등록과 검증에 대한 세밀한 제어가 필요한 경우에만 ERC-8004와 ERC-8128을 직접 사용하세요.
에이전트 측 통합
SIWA SDK를 설치합니다:
npm install @buildersgarden/siwa
지갑 공급자에 맞는 서명자를 선택합니다. SIWA는 개인 키, Bankr, Circle, Openfort, Privy, 스마트 컨트랙트 계정을 지원합니다:
import { createLocalAccountSigner } from "@buildersgarden/siwa/signer";
import { privateKeyToAccount } from "viem/accounts";
const account = privateKeyToAccount(process.env.PRIVATE_KEY as `0x${string}`);
const signer = createLocalAccountSigner(account);
서비스에서 nonce를 요청한 다음 SIWA 메시지에 서명하고 제출합니다:
import { signSIWAMessage } from "@buildersgarden/siwa";
// 1단계: 서비스에서 nonce 요청
const nonceResponse = await fetch("https://api.example.com/siwa/nonce", {
method: "POST",
headers: { "Content-Type": "application/json" },
body: JSON.stringify({ address: await signer.getAddress() }),
});
const { nonce, issuedAt } = await nonceResponse.json();
// 2단계: SIWA 메시지에 서명
const { message, signature } = await signSIWAMessage(
{
domain: "api.example.com",
uri: "https://api.example.com/siwa",
agentId: 42, // ERC-8004 토큰 ID
agentRegistry: "eip155:8453:0x8004A169FB4a3325136EB29fA0ceB6D2e539a432",
chainId: 8453,
nonce,
issuedAt,
},
signer
);
// 3단계: 검증 제출 및 영수증 수신
const verifyResponse = await fetch("https://api.example.com/siwa/verify", {
method: "POST",
headers: { "Content-Type": "application/json" },
body: JSON.stringify({ message, signature }),
});
const { receipt } = await verifyResponse.json();
영수증을 사용하여 ERC-8128로 후속 요청에 서명합니다:
import { signAuthenticatedRequest } from "@buildersgarden/siwa/erc8128";
const request = new Request("https://api.example.com/action", {
method: "POST",
headers: { "Content-Type": "application/json" },
body: JSON.stringify({ action: "transfer" }),
});
const signedRequest = await signAuthenticatedRequest(request, receipt, signer, 8453);
const response = await fetch(signedRequest);
서버 측 검증
SIWA 인증 에이전트를 수락하는 서비스는 두 가지 엔드포인트를 구현합니다: nonce 발급 엔드포인트와 서명 검증 엔드포인트.
import { verifySIWA, createSIWANonce } from "@buildersgarden/siwa";
import { createReceipt } from "@buildersgarden/siwa/receipt";
import { createPublicClient, http } from "viem";
import { base } from "viem/chains";
const client = createPublicClient({ chain: base, transport: http() });
// POST /siwa/nonce
const { nonce, issuedAt } = await createSIWANonce({ address, agentId, agentRegistry }, client);
// POST /siwa/verify
const result = await verifySIWA(message, signature, "api.example.com", nonceValid, client);
if (result.success) {
const { receipt } = createReceipt({ address: result.address, agentId: result.agentId });
return { receipt };
}
SIWA는 Express, Next.js, Hono, Fastify용 드롭인 미들웨어를 제공합니다. 프레임워크별 예시, 재생 방지, x402 결제 통합은 SIWA 문서를 참조하세요.
영상 튜토리얼
관련 항목
ERC-8004 레지스트리
Base에서 등록된 에이전트와 레지스트리 주소를 탐색하고 검증합니다.
x402 프로토콜
x402 프로토콜을 사용하여 스테이블코인으로 API 접근 비용을 지불합니다.