Building on Buoyant

Buoyant is currently only available on Devnet!

Program Information

Source code: https://github.com/IlliniBlockchain/buoyant

Program ID (Devnet): Fpwgc9Tq7k2nMzVxYqPWwKGA7FbCQwo2BgekpT69Cgbf

Subscription metadata account PDA seed scheme:

let subscription_seeds = &[
    b"subscription_metadata",
    payee.as_ref(),
    &amount.to_le_bytes(),
    &duration.to_le_bytes(),
    &count.to_le_bytes(),
];
let (pda, bump) = Pubkey::find_program_address(subscription_seeds, program_id);

Subscription count PDA seed scheme:

let counter_seeds = &[
    b"subscription_counter",
    payee.as_ref(),
    &amount.to_le_bytes(),
    &duration.to_le_bytes(),
];
let (pda, bump) = Pubkey::find_program_address(counter_seeds, program_id);

Subscription mint PDA seed scheme:

let mint_seeds = &[
    b"subscription_mint",
    subscription_pda.as_ref(),
    &subscription.renewal_count.to_le_bytes(),
];
let (pda, bump) = Pubkey::find_program_address(mint_seeds, program_id);

Subscription registry PDA seed scheme:

let registry_seeds = &[
    b"subscription_registry",
    &count.to_le_bytes(),
];
let (pda, bump) = Pubkey::find_program_address(registry_seeds, program_id);

Registry count PDA seed scheme:

let counter_seeds = &[
    b"registry_counter",
];
let (pda, bump) = Pubkey::find_program_address(counter_seeds, program_id);

More coming soon...

  • JS/TS + Rust API, Anchor API/IDL

  • Helper functions and example code for...

    • Creating subscriptions

    • Checking if subscriptions are active, owned by a certain user, expiry date in datetime format

    • Scripts for managing renewals/expiry

Last updated