호패DOCS
데모 열기
문서 목차빠른 시작
Quickstart

빠른 시작

dApp에 호패 게이트를 넣는 방법입니다. SDK 설치부터 게이트까지 30분이면 충분합니다.

0. 네트워크 정보

항목
체인GIWA Sepolia (테스트넷)
chainId91342
RPChttps://sepolia-rpc.giwa.io
익스플로러https://sepolia-explorer.giwa.io
HopaeRegistry0x3C05Bc238b74d99ad9d8c0345d0f64BD249234d2

1. 설치

bash
pnpm add @hopae/sdk viem
@hopae/sdk는 알파이며 npm 배포 전입니다. GASOK cohort 팀에는 무료 통합 지원을 제공합니다.

2. 확인 — 코어 (프레임워크 무관)

gate.tsts
import { createHopae, KIND } from '@hopae/sdk'

const hopae = createHopae({
  registry: '0x3C05Bc238b74d99ad9d8c0345d0f64BD249234d2', // GIWA Sepolia
  rpcUrl: 'https://sepolia-rpc.giwa.io',
})

// dApp이 필요한 단 하나의 질문: 이 지갑과 거래해도 되는가?
await hopae.isKycVerified(wallet)                    // → boolean

// 세밀한 제어: 종류(KYC/KYB/KYA) · 최소 등급
await hopae.isVerified(wallet, { kind: KIND.KYC, minLevel: 2 })

// 수명주기 전체 조회 (콘솔·디버깅)
const s = await hopae.getStatus(wallet)
// { state: 'active' | 'revoked' | 'lapsed' | 'none', level, uid, issuedAt, expiresAt, … }

isVerified()는 폐기·만료를 자동 반영합니다. 가스가 들지 않는 read이니 캐시하지 말고 트랜잭션 직전에 호출하세요.

3. 보여주기 — React

App.tsxtsx
import { HopaeProvider, HopaeBadge, useHopaeStatus } from '@hopae/sdk/react'

<HopaeProvider config={{
  registry: '0x3C05Bc238b74d99ad9d8c0345d0f64BD249234d2',
  rpcUrl: 'https://sepolia-rpc.giwa.io',
}}>
  <HopaeBadge address={wallet} />        {/* → [⌷ 호패 인증 · KYC L2] */}
</HopaeProvider>

// 훅으로 직접 제어할 때
const { status, isLoading, refetch } = useHopaeStatus(wallet, { refreshInterval: 5000 })

컨트랙트에서 직접 (Solidity)

SDK 없이 view 호출 하나로도 게이트를 넣을 수 있습니다:

MyGatedContract.solsolidity
interface IHopae {
    function isKycVerified(address subject) external view returns (bool);
    function isVerified(address subject, uint16 kind, uint8 minLevel)
        external view returns (bool);
}

contract MyGatedContract {
    IHopae constant hopae = IHopae(0x3C05Bc238b74d99ad9d8c0345d0f64BD249234d2);

    modifier onlyVerified(address wallet) {
        require(hopae.isKycVerified(wallet), "not verified");
        _;
    }
}

레지스트리에서 폐기가 일어나면 별도 조치 없이 게이트에 즉시 반영됩니다. 동작 예시는 컨트랙트 문서의 GatedKRW를 참고하세요.

다음 단계

minLevel을 몇으로 둘지는 인증 종류와 등급 문서를, 전체 API는 SDK 문서를 참고하세요. 발급은 발급 서비스의 권한이라 SDK에 포함되지 않습니다.