Wallet에 자금을 지원하고 에이전트 권한 부여
결제 수단을 생성한 후 최종 사용자는 USDC로 Wallet에 자금을 지원하고 에이전트에게 거래에 서명할 수 있는 권한을 부여해야 합니다. 두 단계가 모두 완료될 때까지 클라이언트 측 예외와 함께 프로세스 결제 작업이 실패합니다.
작은 정보
AWS 에이전트 도구 키트의 AgentCore Payments 스킬을 사용하여이 페이지의 단계를 자동화할 수 있습니다. 스킬은 aws-agents 플러그인의 일부입니다. 이를 통해 AI 코딩 에이전트는 agentcore CLI를 사용하여 Payment Manager, 커넥터, 자격 증명 공급자, 결제 수단 및 세션을 생성하고 에이전트에 x402 결제 도구를 추가할 수 있습니다. 자세한 내용은 GitHub의 빠른 시작 및 에이전트 툴킷을 참조하세요. AWS GitHub
Coinbase CDP
Coinbase CDP 커넥터를 사용하여 결제 수단을 생성하면 CreatePaymentInstrument API는 에이전트 권한을 부여하고 Wallet에 자금을 지원하는 포털인 Coinbase WalletHub를 redirectUrl 가리키는를 반환합니다. 최종 사용자를이 URL로 안내하여 Wallet에 자금을 지원하고 단일 인터페이스에서 에이전트 권한을 부여합니다.
WalletHub URL 사용
CreatePaymentInstrument 응답redirectUrl의는 Coinbase WalletHub를 엽니다. 여기서 최종 사용자는 Wallet에 자금을 지원하고 에이전트에게 서명 권한을 부여할 수 있습니다.
instrument = dp_client.create_payment_instrument( userId="test-user-123", paymentManagerArn=PAYMENT_MANAGER_ARN, paymentConnectorId=PAYMENT_CONNECTOR_ID, paymentInstrumentType="EMBEDDED_CRYPTO_WALLET", paymentInstrumentDetails={ "embeddedCryptoWallet": { "network": "ETHEREUM", "linkedAccounts": [{"email": {"emailAddress": "user@example.com"}}] } }, clientToken=str(uuid.uuid4()), ) # Direct the end user to this URL wallet_hub_url = instrument["paymentInstrumentDetails"]["redirectUrl"] print(f"Open the WalletHub: {wallet_hub_url}")
또는 GitHub에 Coinbase AgentCore 템플릿을
월렛에 자금 지원
WalletHub(또는 자체 호스팅 프런트엔드)에서 최종 사용자는 다음 방법 중 하나를 사용하여 Wallet에 자금을 지원할 수 있습니다.
| 방법 | 설명 | 가용성 |
|---|---|---|
|
Coinbase Onramp(카드/뱅크) |
Coinbase의 호스팅 구매 흐름을 통해 신용 카드, 직불 카드, Apple Pay, Google Pay 또는 ACH를 사용하여 직접 USDC를 구매합니다. |
메인넷만 |
|
수신(QR 코드) |
QR 코드와 Wallet 주소를 표시합니다. 사용자가 QR을 스캔하거나 주소를 복사하여 외부 Wallet 또는 Exchange에서 자금을 보냅니다. |
메인넷 및 테스트넷 |
|
외부 Wallet에서 전송 |
브라우저 확장 Wallet(MetaMask, Phantom, Coinbase Wallet)을 연결하고 USDC를 임베디드 Wallet으로 직접 전송합니다. |
메인넷 및 테스트넷 |
테스트넷 환경의 경우 Circle USDC 수도 꼭지의 테스트넷 USDC
에이전트 권한 부여
Coinbase CDP의 에이전트 권한은 Wallet 범위 위임을 사용합니다. 각 Wallet은 에이전트가 트랜잭션에 서명할 수 있는 권한을 부여하는 최종 사용자로부터 독립적인 시간 범위 권한을 받습니다.
-
최종 사용자는 Coinbase 프런트엔드 대시보드의 권한 섹션으로 이동합니다.
-
최종 사용자는 권한을 부여할 하나 이상의 지갑(EVM 및/또는 Solana)을 선택합니다.
-
최종 사용자는 권한 부여를 선택하고 만료 기간을 7일, 30일(기본값), 60일 또는 90일로 선택합니다.
부여되면 에이전트는 부여가 만료될 때까지 최종 사용자의 지갑을 대신하여 트랜잭션에 서명할 수 있습니다. 최종 사용자는 언제든지 동일한 대시보드에서 권한을 취소할 수 있습니다. 권한 부여가 제공되면 결제 세션 생성으로 이동합니다.
권한 취소
최종 사용자는 WalletHub 또는 프런트엔드 대시보드의 권한 섹션에서 언제든지 모든 Wallet에 대한 에이전트 액세스를 취소할 수 있습니다. 취소 후에는 사용자가 새 권한을 부여할 때까지 에이전트가 더 이상 해당 Wallet에 대한 트랜잭션에 서명할 수 없습니다.
(대안) 자체 호스팅 프런트엔드 배포
호스팅된 WalletHub 대신 사용자 지정 가능한 UI가 필요한 경우 Coinbase AgentCore 템플릿을
-
리포지토리를 복제합니다.
git clone https://github.com/coinbase/cdp-agentcore-template.git cd cdp-agentcore-template -
CDP 자격 증명으로
.env.local파일을 생성합니다.NEXT_PUBLIC_CDP_PROJECT_ID=<YOUR_CDP_PROJECT_ID> CDP_API_KEY_ID=<YOUR_CDP_API_KEY_ID> CDP_API_KEY_SECRET=<YOUR_CDP_API_KEY_SECRET> CDP_WALLET_SECRET=<YOUR_CDP_WALLET_SECRET> NEXT_PUBLIC_NETWORK_MODE=testnet -
종속성을 설치하고 애플리케이션을 시작합니다.
npm install npm run dev -
Coinbase 개발자 포털
의 Wallets > Non-custodial Wallet > Security에서 허용된 오리진 목록에 애플리케이션 URL을 추가합니다.
자체 호스팅 프런트엔드는 위에서 설명한 것과 동일한 자금 및 권한 부여 흐름을 제공하며 스타일 및 사용자 경험을 완벽하게 제어합니다.
스트라이프(프라이빗)
GitHub의 Privy AgentCore SDK
프런트엔드 배포
-
앱 설정 > 기본 사항 > 도메인 아래의 권한 대시보드에서 localhost 엔드포인트 허용 목록
-
리포지토리를 복제합니다.
git clone https://github.com/privy-io/aws-agentcore-sdk.git cd aws-agentcore-sdk -
권한 자격 증명으로
.env.local파일을 생성합니다.NEXT_PUBLIC_PRIVY_APP_ID=<YOUR_PRIVY_APP_ID> PRIVY_APP_SECRET=<YOUR_PRIVY_APP_SECRET> NEXT_PUBLIC_PRIVY_SIGNER_ID=<YOUR_PRIVY_AUTHORIZATION_ID> NEXT_PUBLIC_NETWORK_MODE=testnetNEXT_PUBLIC_PRIVY_SIGNER_ID값은 Wallet Infrastructure > Authorization 아래의 Privy 대시보드의 Authorization ID(키 ID)입니다. 이는 퍼블릭 식별자이며 클라이언트 측에서 노출해도 안전합니다. -
종속성을 설치하고 애플리케이션을 시작합니다.
pnpm install pnpm dev
월렛에 자금 지원
최종 사용자가 프리비 프런트엔드를 통해 인증하면 기본(EVM) 및 Solana 네트워크 모두에 대해 임베디드 지갑이 자동으로 생성됩니다. 최종 사용자는 다음 방법 중 하나를 사용하여 Wallet에 자금을 지원할 수 있습니다.
| 방법 | 설명 | 가용성 |
|---|---|---|
|
카드로 결제(스트립) |
에서 Stripe의 호스팅 암호화 온램프를 통해 신용 카드 또는 직불 카드를 사용하여 USDC를 구매합니다 |
메인넷만 |
|
수신(QR 코드) |
EIP-681(EVM) 또는 Solana Pay URI 형식을 사용하여 QR 코드와 Wallet 주소를 표시합니다. 사용자가 QR을 스캔하거나 주소를 복사하여 외부 Wallet 또는 Exchange에서 자금을 보냅니다. |
메인넷 및 테스트넷 |
|
외부 Wallet에서 전송 |
브라우저 확장 Wallet(MetaMask for Base, Phantom for Solana)을 연결하고 USDC를 임베디드 Wallet으로 직접 전송합니다. |
메인넷 및 테스트넷 |
테스트넷 환경의 경우 Circle USDC 수도 꼭지의 테스트넷 USDC
에이전트 권한 부여
권한의 에이전트 권한은 세션 서명자(권한 부여 키라고도 함)를 사용합니다. 최종 사용자는 각 임베디드 월렛에 에이전트의 권한 부여 키를 등록하여 에이전트에게 트랜잭션별 승인 없이 트랜잭션에 서명할 수 있는 권한을 부여합니다.
-
권한 프런트엔드에서 최종 사용자가 로그인하고 자동 임베디드 지갑이 생성됩니다(EVM 1개, Solana 1개).
-
홈 화면에 Connect 에이전트 설정 카드가 표시됩니다.
-
최종 사용자가 에이전트 연결을 선택하면 “에이전트에게 지갑에 대한 액세스 권한 부여”라는 모달이 표시됩니다.
-
최종 사용자는 액세스 권한 부여를 선택합니다.
프런트엔드는 Privy SDKaddSessionSigners에서를 호출하여 각 임베디드 Wallet에 에이전트의 권한 부여 키를 등록합니다. 작업은 멱등성입니다. 서명자가 이미 등록된 경우 오류가 반환되지 않습니다.
연결되면 에이전트는 사용자의 지갑을 대신하여 트랜잭션에 서명할 수 있습니다. 권한은 명시적으로 취소될 때까지 유지됩니다.
(선택 사항) 에이전트 연결 확인
프런트엔드는 권한 API를 호출하여 권한이 활성 상태인지 확인합니다.
GET https://auth.privy.io/api/v1/wallets/{walletId} Authorization: Basic <base64(appId:appSecret)>
응답에는 additional_signers 배열이 포함됩니다. 구성된 권한 부여 ID가이 배열에 나타나면 에이전트가 연결된 것입니다.
권한 부여가 제공되면 결제 세션 생성으로 이동합니다.
Testnet USDC를 사용한 테스트
개발 및 테스트의 경우 테스트 USDC와 함께 테스트넷 네트워크 및 장바구니를 사용합니다.
-
프런트엔드
.env.local파일에NEXT_PUBLIC_NETWORK_MODE=testnet를 설정합니다. -
Circle USDC 수도 꼭지에서 테스트넷 USDC
를 가져옵니다. -
EVM Wallets용 Base Sepolia 선택
-
Solana Wallets용 Solana Devnet 선택
-
-
임베디드 Wallet 주소(프런트엔드 대시보드 또는 QR 코드 화면에 표시됨)를 수도 꼭지에 붙여 넣습니다.
-
수도 꼭지가 몇 초 안에 테스트 USDC를 지갑에 분배합니다.
참고
Stripe card onramp(Privy) 및 Coinbase Onramp는 테스트넷에서 사용할 수 없습니다. 테스트넷 자금 조달을 위해 Circle 수도 꼭지, 외부 지갑 이전 또는 직접 주소 이전을 사용합니다.