Skip to content

futureversecom/sdk-unreal-sylo

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

17 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Unreal Engine Sylo SDK

A Sylo data access plugin for Unreal Engine, by Futureverse

The Sylo SDK is an Unreal Engine plugin for accessing off-chain decentralized data using Sylo DIDs (Decentralized Identifiers). It provides a simple interface for loading Sylo data via Blueprints or C++, with built-in support for authentication and asynchronous requests.

For more on Sylo and the broader Futureverse developer ecosystem, visit the Futureverse Documentation Hub.


🔍 What is Sylo?

Sylo is a protocol for accessing off-chain decentralized data associated with a DID (Decentralized ID). A Sylo DID looks like:

did:sylo-data:0xfFFFffFF0000000000000000000000000000052f/ed38c341-a26a-4426-aed9-4f8f362b70bf

This structure breaks down as follows:

  • did: → Declares this is a decentralized identifier.
  • sylo-data: → Specifies the method used, in this case sylo-data.
  • 0xfFFFffFF0000000000000000000000000000052f → The owner address of the data.
  • ed38c341-a26a-4426-aed9-4f8f362b70bf → A unique ID for the data being accessed.

✨ Features

  • ✅ Load Sylo DID data using Blueprints or C++
  • ✅ Uses a subsystem pattern for easy integration into game instances
  • ✅ Supports token-based authentication
  • ✅ Built-in support for asynchronous Futures and delegates

🔧 Getting Started

1. Add the SDK to your project

Add the UnrealSyloPlugin to your project's plugins folder and enable it in the Plugins tab in Unreal.

2. Access Sylo Subsystem

The USyloSubsystem is automatically created by Unreal if your GameInstance inherits from UGameInstance. You can access it like this:

USyloSubsystem* SyloSubsystem = GetGameInstance()->GetSubsystem<USyloSubsystem>();

🔐 Authentication Setup

Before loading a DID, you must configure an Access Source which provides bearer tokens.

TSharedPtr<ISyloAccessSource> MyAccessSource = MakeShared<FMyCustomAccessSource>();
SyloSubsystem->SetSyloAccessSource(TEXT("MyResolverID"), MyAccessSource);

Your custom class must implement the ISyloAccessSource interface, providing methods for retrieving and refreshing access tokens.


📦 Loading Sylo Data

Blueprint Example

image

C++ Example

SyloSubsystem->LoadSyloDIDFuture(TEXT("did:sylo-data:..."))
	.Next([](FSyloLoadResult Result)
{
	if (Result.bSuccess && Result.Data.IsValid())
	{
		// Process data
	}
});

📘 FSyloLoadResult

Returned by all data load methods:

Property Type Description
bSuccess bool Whether the data load was successful
Data TSharedPtr<TArray<uint8>> Binary data, null if load failed

🧩 Dependencies

  • Unreal Engine 5.3+ (Subsystems, Async/Future support)

📄 License

This SDK is released under the Apache License 2.0.

About

Sylo SDK for Unreal Engine

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •