Skip to main content

Merkle Instant

This section covers the program architecture, as well as the account structure and the token flow for the most important instructions of the Merkle Instant program.

Program Architecture​

The sablier_merkle_instant program implements the following main functionalities:

  • initialize
  • create_campaign
  • claim
  • clawback

Ix Account Architecture​

The following sections detail the accounts created by each instruction.

initialize Instruction​

The Treasury PDA stores this data:

create_campaign Instruction​

Each Campaign account stores the following parameters:

claim Instruction​

The Claim receipt account serves as proof of claim for the given recipient.

Airdrop Token Flow​

The airdrop token flow begins when the campaign creator funds the campaign's ATA. Once funded and the campaign has started, eligible recipients can claim their tokens. The campaign creator can clawback any remaining tokens after the campaign expires. The following diagrams illustrate how tokens move between accounts when each instruction is executed.

create_campaign Instruction​

This instruction creates the campaign account and its ATA, but does not perform the airdrop token transfer. The campaign creator must fund the campaign ATA in a separate transaction after campaign creation. After that, the campaign ATA will hold all tokens available for distribution to eligible recipients.

claim Instruction​

Eligible recipients can claim their airdrop tokens by providing a valid Merkle proof. When claimed, tokens are transferred from the campaign ATA to the recipient's ATA.

clawback Instruction​

After the campaign expiration time, the campaign creator can clawback any remaining/unclaimed tokens. These tokens are transferred from the campaign ATA back to the campaign creator's ATA.