solana-pfp-program

Description

This repository contains the Rust implementation of the Solana PFP protocol.

The Solana PFP protocol allows Solana users to set a single Metaplex-standard NFT as a universal PFP for the Solana blockchain.

Deployments

Program ID: 6UQLqKYWqErHqdsX6WtANQsMmvfKtWNuSSRj6ybg5in3

Program ID is the same on both mainnet and devnet deployments.

Instructions

SetProfileNFT

Instruction: 0 - Allows users to set a single Metaplex-standard NFT as their PFP

Account keys

  1. [signer] The account of the person setting the NFT profile picture
  2. [writable] NFT profile picture account (PDA)
  3. [] NFT mint account
  4. [] NFT token account
  5. [] NFT Metaplex metadata account
  6. [] Clock sysvar
  7. [] System program

UnsetProfileNFT

Instruction: 1 - Allows users to remove their PFP

Account keys

  1. [signer] The account of the person removing the NFT profile picture
  2. [writable] NFT profile picture account (PDA)

Development

If you want to add new features to the protocol or improve existing ones, please follow the steps below.

Environment Setup

Build

To compile the PFP rust code to the wasm binary, use:

cargo build-bpf

Deployment

To deploy the compiled wasm binary, use:

solana program deploy ./target/deploy/solana_pfp_program.so