Skip to main content
지갑 키트 SDK는 브라우저에서 실행되므로 귀하의 Helius apiKey는 클라이언트 측에 존재합니다: 제공자가 앱이 로드될 때 이를 지갑 부트스트랩(/waas/config)으로 보냅니다. 이는 클라이언트 측 SDK에서 예상되는 것입니다. 이 페이지는 정확히 그 키가 할 수 있는 것과 할 수 없는 것을 설명하고 이를 잠그는 방법을 설명합니다.

키가 할 수 있는 것과 할 수 없는 것

여기서 시작하십시오. 이것은 잘못 이해하기 쉬운 부분이기 때문입니다: Helius API 키는 RPC/크레딧 자격 증명이며 지갑 키가 아닙니다. 유출된 키는 다음과 같은 작업을 할 수 없습니다:
  • 거래 또는 메시지 서명,
  • 자금 이동 또는 액세스, 또는
  • 사용자의 임베디드 지갑에 접근.
지갑 서명은 최종 사용자의 자체 패스키 또는 세션에 의해 승인되며, 개인 키는 Turnkey의 보안 엔클레이브에 저장됩니다. 절대 귀하의 앱, 서버 또는 API 키가 접근할 수 있는 곳에 있지 않습니다. 키를 노출한다고 해서 지갑이 노출되는 것은 아닙니다. 유출된 키가 할 수 있는 것은 귀하의 Helius 크레딧(RPC 할당량)을 소비하는 것입니다. 이것이 전체 영향 범위입니다. 청구 문제이지 보관 문제는 아닙니다. 아래의 계층이 이를 제한하고 종료합니다.
노출은 청구 우회가 아닙니다. WaaS 서명은 API 키 계층이 아닌 임베디드 지갑이 서명하는 순간 측정됩니다. 유출된 키는 무료 서명을 생성하거나 타인의 사이트에서 서명을 청구할 수 없습니다. 측정은 키의 비밀 유지에 의존하지 않습니다.

잠금 설정

이러한 계층은 가장 낮은 노력에서 가장 강력한 경계까지 진행됩니다. 첫 번째는 필수적인 기본선입니다. 나머지는 위험 허용 범위에 따라 계층화합니다.

1. 도메인으로 키 제한(필수)

귀하의 앱이 실행되는 출처에 키를 잠그어 번들에서 스크랩된 키가 다른 곳에서 쓸모없도록 만듭니다.
1

RPC 접근 제어 열기

대시보드RPC 섹션에서 귀하의 키로 이동하여 접근 제어를 엽니다.
2

허용된 도메인에 귀하의 도메인 추가

앱이 제공되는 모든 출처를 추가합니다 — 프로덕션, 스테이징 및 미리 보기:
3

환경별 개별 키 사용

로컬, 스테이징 및 프로덕션에 대해 별도의 키를 유지하여 하나를 회전해도 다른 키에 영향이 가지 않도록 합니다.
도메인 허용 목록은 브라우저 기반의 오용을 중지시키지만, 결단력 있는 스크립트는 중지시키지 않습니다. 이 확인은 요청의 Origin/Referer 헤더를 읽습니다 — 브라우저는 이를 정직하게 설정하지만, 비브라우저 클라이언트(e.g. curl -H "Origin: yourdapp.com")는 이를 위조할 수 있습니다. 이것은 모든 클라이언트 측 API 키에 해당하는 사항입니다. Helius만이 아닙니다. 도메인 제한은 흔한 경우 — 키가 타인의 사이트에 나타나는 경우 — 를 신뢰성 있게 중지하지만, 위조할 수 없는 경계를 원한다면 IPs/CIDRs에 잠긴 서버 측 키를 사용하십시오 (4단계).

2. 키 없는 보안 RPC URL(자동)

RPC 트래픽은 키를 전혀 포함하지 않습니다. SDK는 실행 시 프로젝트의 키 없는 보안 RPC URL을 해결하고 자동으로 connection 호출에 사용합니다 — 구성할 필요가 없습니다. 이 URL에는 키가 없기 때문에 RPC 요청에서 추출할 것이 없으며, IP당 초당 5회로 제한됩니다 — 따라서 보호가 Origin 확인에 의존하지 않습니다. (유료 플랜에서 사용 가능; 프로젝트에 보안 RPC URL이 없으면 RPC는 3단계의 동일한 출처 경로 처리기로 돌아갑니다.)

3. 서버 측으로 키 이동 — 서버리스

브라우저에서 키를 숨기기 위해 RPC, 전송 및 거래 기록 호출을 보내려면, 이를 서버 측 비밀에서 키를 주입하는 자체 엔드포인트를 통해 라우팅하십시오. 이것은 또한 송신자 최적화 착륙 및 거래 기록에 참여하는 방법입니다. 모든 옵션은 100% 서버리스입니다 — 실행할 서버가 없습니다:
  • Next.js 경로 처리기 — 서버리스 함수(Vercel, Netlify, Cloudflare)로 배포됩니다. 서버 환경에서 HELIUS_API_KEY을 읽습니다.
    app/api/helius/[...path]/route.ts
  • Cloudflare Worker 프록시 — 가장 깨끗한 완전 서버리스 옵션: 키는 Worker 비밀에 있고 브라우저로 전달되지 않습니다.

    Helius RPC 프록시

    클릭 한 번으로 Cloudflare에 배포할 수 있는 오픈 소스 RPC 프록시입니다.

4. 위조할 수 없는 IP/CIDR 경계 추가

공격자가 위조할 수 없는 경계를 위해 서버 측 키를 백엔드의 IP 주소 또는 CIDR 범위에 잠그십시오. Origin 헤더와 달리 요청의 소스 IP는 정상 연결을 통해 위조될 수 없습니다 — 따라서 귀하의 서버가 아닌 다른 곳에서 온 curl은 즉시 거부됩니다. 이는 서버 측 키에만 적용됩니다 — 브라우저 키는 IP로 제한할 수 없습니다. 사용자가 예측할 수 없는 IP에서 연결되기 때문입니다. 깨끗한 패턴은 두 개의 키입니다.
서버리스 함수는 동적 egress IP를 가지므로, CIDR에 고정하려면 안정적인 egress가 필요합니다 — 전용 egress IP가 있는 Cloudflare Worker, Vercel 안전 컴퓨트, 또는 앞에 있는 고정 IP NAT. 그렇지 않으면 주요 이점을 얻을 수 있습니다 (키는 서버 측에 있고 결코 브라우저에 있지 않습니다); 그저 IP 경계를 추가하지 않는 것입니다.
전체 접근 제어 규칙 참조는 키 보호를 참조하십시오.

계층 비교

어떤 계층을 선택하더라도, 이 중 어느 것도 사용자의 지갑 키가 아닙니다 — 그것들은 절대 사용되지 않습니다.

지갑 부트스트랩

경로 처리기 (프로덕션) 설정에서는 지갑 부트스트랩 (/waas/config)도 서버 측 키와 함께 경로 처리기를 통해 진행됩니다. 따라서 Helius 키도 브라우저로 전달되지 않습니다. 프로토타입 설정에서는 브라우저가 부트스트랩을 위해 키를 보냅니다; 이를 도메인 제한하십시오 (1단계). 어떤 경우든 RPC 범위 내 키입니다 — 지갑이나 자금에 닿을 수 없습니다.

체크리스트

배포 전에:
  • 클라이언트 키가 정확한 출처에 도메인 제한됨
  • 로컬/스테이징/프로덕션에 대해 별도의 키
  • 키가 환경 변수에서 읽혀지며, 절대로 하드코딩되지 않음
  • (선택 사항) RPC, 전송, 기록이 서버리스 경로 처리기 또는 Cloudflare Worker를 통해 라우팅됨
  • (선택 사항) 위조할 수 없는 경계를 위한 IP/CIDR에 잠긴 서버 측 키

다음 단계

키 보호

전체 접근 제어 참조: 도메인, IP, CIDR, 프록시.

구성

제공자 구성 및 대시보드 로그인 방법.