세션 생성하기
세션을 생성하려면sessionWallet의 createSession 메서드를 호출합니다. 이 메서드는 세 가지 파라미터를 받습니다.
targetProgramPublicKey: 상호작용하려는 대상 프로그램을 나타내는PublicKey인스턴스topUp: 세션 keypair에 처음부터0.01 SOL을 충전하고 싶다면true, 원하지 않으면falseexpiryInMinutes: 세션 만료 시간을 분 단위로 나타내는 선택 파라미터입니다. 기본값은 60분입니다.
createSession을 호출하면 새로운 임시 keypair가 생성되어 클라이언트 측에 저장됩니다. 이후 세션 토큰도 생성되어 해당 keypair와 함께 저장됩니다. 이를 통해 사용자는 실제 지갑의 개인 키를 노출하지 않고도 생성된 keypair로 안전하게 트랜잭션에 서명할 수 있습니다.
트랜잭션 서명 및 전송
트랜잭션에 서명하고 전송하려면signAndSendTransaction 메서드를 사용합니다. 이 메서드는 먼저 세션 중 생성된 임시 keypair로 트랜잭션에 서명한 뒤, 서명된 트랜잭션을 Solana 네트워크로 전송합니다.
signAndSendTransaction 메서드는 실제 지갑의 개인 키가 노출되지 않도록 하여 추가적인 보안 계층을 제공합니다. 클라이언트 측에 저장된 임시 keypair로 트랜잭션에 서명하므로 사용자의 메인 지갑을 안전하게 보호할 수 있습니다.
세션 철회하기
세션을 철회하려면sessionWallet의 revokeSession 메서드를 호출합니다. 이 메서드는 세 가지 작업을 수행합니다.
- 클라이언트 측 저장소에서 임시 keypair와 세션 토큰을 제거합니다.
- 컨트랙트에서 세션을 철회합니다.
- lamports를 authority에 반환하고 session token PDA를 닫습니다.

