Solana 에서의 PYUSD: 실전 연동 가이드 (BlockEden.xyz RPC 활용)
PayPal USD (PYUSD)가 Solana에 출시되며 디지털 결제의 중요한 이정표를 세웠습니다. 이 가이드는 엔지니어가 PYUSD를 Solana의 지갑, dApp 및 커머스 플랫폼에 통합하기 위한 직접적이고 실무적인 과정을 제공합니다.
모든 예제는 최신 Token-2022 호환 코드를 사용하며 BlockEden.xyz의 저지연 Solana RPC 엔드포인트와 원활하게 작동하도록 설계되었습니다.
핵심 요약
- 무엇인가: PayPal USD (PYUSD)는 이제 Solana의 네이티브 Token-2022 SPL 토큰으로, 세계적으로 인정받는 스테이블코인을 빠르고 저렴한 수수료로 결제할 수 있도록 지원합니다.
- 주요 파라미터: Mint
2b1kV6DkPAnxd5ixfnxCpjxmKwqjjaYmCZfHsFu24GXo, 소수점 자리수6, 토큰 프로그램Token-2022. - 기능 세트: Solana 토큰 확장(Token Extensions / Token-2022)을 활용합니다. Transfer Hook이 초기화되었으나 현재는 비활성 상태(null 프로그램)이며, 기밀 전송(confidential transfer) 기능 및 기타 확장 기능이 포함되어 있습니다.
- 크로스 체인: 공식 LayerZero 통합을 통해 기존 브릿지 대신 안전한 소각 및 발행(burn-and-mint) 메커니즘을 사용하여 Ethereum과 Solana 간에 PYUSD를 이동할 수 있습니다.
- 실행: BlockEden.xyz의 신뢰할 수 있는 Solana RPC를 사용하여 애플리케이션에 PYUSD 지원을 추가하는 템플릿으로 이 가이드를 활용하세요.
Solana 기반 PYUSD가 중요한 이유
PayPal의 브랜드 파워와 Solana의 성능이 결합되어 디지털 달러를 위한 강력하고 새로운 레일이 생성되었습니다.
- 소비자 신뢰와 크립토 UX의 결합: PYUSD는 규제 대상 신탁 회사인 Paxos에서 발행하며 PayPal 및 Venmo에 긴밀하게 통합되어 있습니다. 이는 사용자에게 친숙한 자산을 제공합니다. 사용자는 하나의 PYUSD 잔액을 보유하고 Ethereum 또는 Solana의 외부 지갑으로 출금하도록 선택할 수 있어 체인의 복잡성을 추상화합니다.
- 결제 준비가 완료된 레일: Solana의 아키텍처는 1초 미만의 트랜잭션 확정성과 센트 단위 미만의 수수료를 제공합니다. PYUSD는 이러한 효율적인 결제 네트워크 위에 안정적이고 인식 가능한 계정 단위를 레이어링하여 결제, 상거래 및 송금에 이상적입니다.
- 기관급 제어 기능: Token-2022 토큰으로 출시됨으로써 PYUSD는 기밀 전송, 풍부한 메타데이터 및 영구 위임(permanent delegate)과 같은 기능에 내장된 확장 프로그램을 활용할 수 있습니다. 이를 통해 복잡하고 감사하기 어려운 별도의 스마트 컨트랙트 없이도 고급 규정 준수 및 기능을 구현할 수 있습니다.
필수 정보 (이것만은 꼭 확인하세요)
코드를 작성하기 전에 다음 파라미터를 고정하세요. 사기성 토큰과의 상호작용을 피하기 위해 항상 신뢰할 수 있는 익스플로러에서 mint 주소를 확인하세요.
- Mint (메인넷):
2b1kV6DkPAnxd5ixfnxCpjxmKwqjjaYmCZfHsFu24GXo - 소수점 자리수:
6(즉, 1 PYUSD = 1,000,000 기본 단위) - 토큰 프로그램:
Token-2022(프로그램 ID:TokenzQdBNbLqP5VEhdkAS6EPFLC1PHnBqCXEpPxuEb) - 사용된 토큰 확장 프로그램 (발행 시):
- Metadata & Metadata Pointer (메타데이터 및 메타데이터 포인터)
- Permanent Delegate (영구 위임)
- Transfer Hook (null 프로그램으로 초기화됨)
- Confidential Transfer Configuration (기밀 전송 구성)
이 모든 정보는 Solana Explorer에서 확인할 수 있 습니다. 익스플로러는 공식 mint 주소와 활성화된 확장 프로그램을 명확하게 보여줍니다.
프로젝트 설정
환경을 준비해 보겠습니다. 완전한 Token-2022 호환성을 보장하기 위해 최신 Solana web3 및 SPL 토큰 라이브러리가 필요합니다.
1. 라이브러리
npm에서 필요한 패키지를 설치합니다.
npm i @solana/web3.js @solana/spl-token
2. RPC 연결
애플리케이션이 BlockEden.xyz Solana 메인넷 RPC URL을 가리키도록 설정합니다. 프로덕션 환경에서는 환경 변수 사용이 필수적입니다.
// package.json
// npm i @solana/web3.js @solana/spl-token
import { Connection, Keypair, PublicKey } from "@solana/web3.js";
import {
TOKEN_2022_PROGRAM_ID,
getMint,
getOrCreateAssociatedTokenAccount,
getAssociatedTokenAddress,
createTransferCheckedInstruction,
} from "@solana/spl-token";
// 대시보드에서 받은 BlockEden.xyz Solana RPC URL을 사용하세요
const RPC_ENDPOINT =
process.env.SOLANA_RPC_URL ??
"[https://your-blockeden-solana-mainnet-endpoint.com](https://your-blockeden-solana-mainnet-endpoint.com)";
export const connection = new Connection(RPC_ENDPOINT, "confirmed");
// PYUSD (메인넷)
export const PYUSD_MINT = new PublicKey(
"2b1kV6DkPAnxd5ixfnxCpjxmKwqjjaYmCZfHsFu24GXo",
);
PYUSD Mint 데이터 읽기
먼저, 프로그래밍 방식으로 PYUSD mint의 속성을 확인해 보겠습니다. 이는 상수가 올바른지 확인하고 총 공급량과 같은 세부 정보를 가져오는 중요한 첫 단계입니다.
// Token-2022 API를 통해 PYUSD mint 정보 확인
const mintInfo = await getMint(
connection,
PYUSD_MINT,
"confirmed",
TOKEN_2022_PROGRAM_ID, // 프로그램 ID 지정
);
console.log({
supply: mintInfo.supply.toString(),
decimals: mintInfo.decimals, // 6 예상
isInitialized: mintInfo.isInitialized,
});
TOKEN_2022_PROGRAM_ID를 명시적으로 전달하는 것에 유의하세요. 이는 토큰 확장 프로그램을 사용할 때 발생하는 가장 흔한 오류의 원인입니다.
연관 토큰 계정(ATA) 생성 또는 가져오기
Token-2022 토큰을 위한 연관 토큰 계정은 반드시 Token-2022 프로그램 ID를 사용하여 파생되어야 합니다. 레거시 TOKEN_PROGRAM_ID를 사용하면 트랜잭션이 "incorrect program id" 오류와 함께 실패합니다.
// 새 ATA의 비용 지불자 및 소유자. 실제 지갑 로직으로 교체하세요.
const owner = Keypair.generate();
// 소유자의 PYUSD ATA 생성 또는 가져오기 (Token-2022 인식)
const ownerAta = await getOrCreateAssociatedTokenAccount(
connection,
owner, // 생성을 위한 비용 지불자
PYUSD_MINT, // Mint 주소
owner.publicKey, // ATA 소유자
false, // allowOwnerOffCurve
"confirmed",
undefined, // options
TOKEN_2022_PROGRAM_ID, // <-- 중요: Token-2022 프로그램 ID 사용
);
console.log("소유자 PYUSD ATA:", ownerAta.address.toBase58());