Skip to main content

Infrastructure

Learning about the relationship between accounts is important in understanding how they interact with each other and why some actions are necessary. This section provides insights into:

Buddies

At the root of all users coming into the system there are global buddies and more specifically buddy profiles. Once a wallet interacts with the system, it requires you to create a buddy profile which is unique to every user (ie. their name is a random string of 18 characters) and isn't linked to any organization (See Organizations below). In turn, a buddy can also own other buddies (ie. global buddies) to obtain vanity names that can be used across all participating organizations.

Global buddies

By obtaining a global buddy, the user locks in the name across all participating organizations unless the name was used before. For example, I get the buddy called "john" and now i create all the members i want with the name "john". In the buddy app, you will be prompted to create these members and choose alternatives if that name has been taking before you created the global buddy "john".

buddylink diagram of the buddy structure

Treasuries

In order to store funds received from your referrees, these treasuries are created on a mint per mint basis (ie. 1 treasury for SOL, 1 treasury for USDC, etc.) but also unique per buddies.

In a simple scenario, a member does an action which rewards the referrer in some way. The program will do a transfer to the treasury instantly after that transaction is performed. Once the funds are received, the referrer can immediately claim the amount.

buddylink diagram of the treasury structure

Shared treasuries

A more sophisticated way of doing attribution is through shared treasuries. It allows to share a referral with others by splitting the rewards amongst many.

buddylink diagram of the shared treasury structure

Organizations

A company wanting to offer referral rewards creates an organization which lets you to keep track of the attribution "tree" within its own organzation. The organization can also choose to participate in the global system or be its own cluster (ie. not allow name locking from global buddies).

buddylink diagram of the member structure

Members

To associate a user to an organization, you create a member which is used for creating attribution with others within the organization and allow for validating reward transfers to referrers.

buddylink diagram of the member structure

How referral works

Depending on the application that is currently being used you can either refer someone through an organization or through the buddylink global system. The member route allows for more tracking and analytics to your specific organization but going with global buddy is more to integrate the buddylink system itself and not the referral component which can bring other sort of benefits (See Roadmap for more information).

*Comprehensive explanations and examples coming soon