Byzantine Vault Parameters
This page documents the full list of initialization parameters specific to a Byzantine Vault entity. All the Byzantine Vaults must establish these structure of settings beforehand creation.
ByzVaultParams
address
address
address
address
address
address
address
number
boolean
boolean
boolean
boolean
string
string
string
Breaking down the parameters
How to generate metadata URI
We expect the URI to point to a JSON object that follows a specific structure. This ensures consistent display of metadata across the app and makes it easier for others to interpret and use it as well.
To achieve this, please follow the structure below:
interface Metadata {
name: string; // Required
description: string; // Required
social_twitter?: string;
social_discord?: string;
social_telegram?: string;
social_website?: string;
social_github?: string;
}
Only name
and description
are mandatory.
The other fields are optional and allow you to share more context with your users.
Note that, although initially set at creation, the metadata can be updated at any time by the versionManager
by calling updateMetadataURI(metadataURI)
There is two ways of generating Metadata URI, with the vault's SDK or the Pinata interface. Choose the method that best suits your setup:
Install Byzantine SDK
npm install @byzantine/vault-sdk@latest
Generate a Pinata API key (if you don't already have one) and setup your
.env
file
// Fill your .env file
PINATA_API_KEY =
PINATA_SECRET_API_KEY =
Write your code
// Import Byzantine SDK
import { convertMetadataToURI, Metadata } from "@byzantine/vault-sdk";
import * as dotenv from "dotenv";
dotenv.config();
const metadata: Metadata = {
name: "Eigenlayer ETH Vault",
description: "An Eigenlayer vault for ETH restaking"
};
const uri = await convertMetadataToURI(metadata);
console.log("uri:", uri); // This will print your URI!
Run the command
npx tsx index.ts # If using typescript
# or
node index.js # If using Javascript
Last updated