플러그인

Permanent Transfer Delegate

Last updated January 31, 2026

Permanent Transfer Delegate Plugin은 영구적으로 유지되는 취소 불가능한 transfer 권한을 제공합니다. 일반 Transfer Delegate와 달리 이 권한은 취소되지 않으며 Asset을 반복적으로 전송할 수 있습니다.

학습 내용

  • 영구 transfer 기능이 있는 Asset 생성
  • Collection 전체 transfer 권한 활성화
  • 사용 사례: 게임, 구독, 자동화 시스템
  • permanent vs 일반 transfer delegate 이해

개요

Permanent Transfer Delegate는 생성 시에만 추가할 수 있는 permanent plugin입니다. delegate는 소유자 승인 없이 무제한으로 Asset을 전송할 수 있습니다.

  • Asset/Collection 생성 시에만 추가 가능
  • 권한은 영구적으로 유지 (취소되지 않음)
  • forceApprove 사용 - 동결 상태에서도 전송 가능
  • Collection 레벨: Collection 내의 모든 Asset 전송 가능

범위 외

일반 transfer delegate (Transfer Delegate 참조), 에스크로 없는 리스팅 (일반 delegate 사용), Token Metadata transfer 권한.

빠른 시작

바로가기: Asset 생성

  1. Asset/Collection 생성 시 PermanentTransferDelegate plugin 추가
  2. authority를 프로그램 또는 delegate 주소로 설정
  3. delegate는 언제든지 무제한으로 Asset 전송 가능

Permanent vs 일반 Transfer Delegate

기능Transfer DelegatePermanent Transfer Delegate
생성 후 추가✅ 가능❌ 생성 시에만
전송 후 권한 유지❌ 1회 전송 후 취소✅ 영구 유지
다중 전송❌ 1회성✅ 무제한
동결된 Asset 전송 가능❌ 불가✅ 가능 (forceApprove)
Collection에서 동작❌ 불가✅ 가능
Transfer Delegate 선택: 1회성 에스크로 없는 판매가 필요한 경우.
Permanent Transfer Delegate 선택: 게임, 렌탈, 또는 반복 전송이 필요한 자동화 시스템의 경우.

일반적인 사용 사례

  • 게임 메커니즘: 게임 이벤트 (전투 패배, 거래) 발생 시 Asset 전송
  • 렌탈 반환: 렌탈한 NFT를 자동으로 소유자에게 반환
  • 구독 관리: 구독 종료 또는 갱신 시 토큰 전송
  • DAO 트레저리 관리: DAO가 Asset 배포를 관리할 수 있도록 허용
  • 자동화 시스템: 전송마다 승인 없이 Asset을 이동해야 하는 프로그램

호환성

MPL Core Asset
MPL Core Collection

동작

  • Asset: delegated 주소를 사용하여 Asset 전송을 허용합니다.
  • Collection: collection authority를 사용하여 Collection 내의 모든 Asset 전송을 허용합니다. 한 번에 모두 전송하지 않습니다.

인수

인수
frozenbool

Permanent Transfer Plugin이 있는 MPL Core Asset 생성

Permanent Transfer Plugin이 있는 MPL Core Asset 생성

import { publicKey } from '@metaplex-foundation/umi'
import { create } from '@metaplex-foundation/mpl-core'
const assetSigner = generateSigner(umi)
const delegate = publicKey('33333333333333333333333333333')
await create(umi, {
asset: assetSigner,
name: 'My Asset',
uri: 'https://example.com/my-asset.json',
plugins: [
{
type: 'PermanentTransferDelegate',
authority: { type: 'Address', address: delegate },
},
],
}).sendAndConfirm(umi)

일반적인 오류

Cannot add permanent plugin after creation

Permanent plugin은 Asset/Collection 생성 시에만 추가할 수 있습니다. 기존 Asset에는 Permanent Transfer Delegate를 추가할 수 없습니다.

Authority mismatch

plugin authority만 전송할 수 있습니다. 올바른 키페어로 서명하고 있는지 확인하세요.

참고 사항

  • 생성 시에만: Asset/Collection 존재 후에는 추가 불가
  • Force approve: 동결 상태에서도 전송 가능
  • Collection 동작: Collection 내의 모든 Asset을 개별적으로 전송 가능
  • 영구적: 권한은 취소되지 않음
  • 무제한 전송: delegate가 전송할 수 있는 횟수에 제한 없음

FAQ

Transfer Delegate와 Permanent Transfer Delegate의 차이점은 무엇인가요?

일반 Transfer Delegate는 1회 전송 후 취소됩니다. Permanent Transfer Delegate는 영구적으로 유지되며 무제한으로 전송할 수 있습니다.

Permanent Transfer Delegate가 동결된 Asset을 전송할 수 있나요?

네. Permanent plugin은 forceApprove를 사용하여 동결 거부를 무시합니다.

기존 Asset에 이것을 추가할 수 있나요?

아니요. Permanent plugin은 Asset 생성 시에만 추가할 수 있습니다. 기존 Asset에는 일반 Transfer Delegate를 사용하세요.

Collection 레벨의 Permanent Transfer Delegate는 어떻게 작동하나요?

delegate는 Collection 내의 개별 Asset을 전송할 수 있지만, 한 번에 모두 전송할 수는 없습니다. 각 전송은 별도의 트랜잭션입니다.

관련 Plugin

용어집

용어정의
Permanent Plugin생성 시에만 추가할 수 있고 영구적으로 유지되는 Plugin
forceApprove다른 plugin의 거부를 무시하는 검증
Collection TransferCollection 내의 모든 Asset을 전송하는 기능