@pyra-marketplace/pyra-sdk
v1.0.15
Published
[![npm version](https://img.shields.io/npm/v/@pyra-marketplace/pyra-sdk.svg)](https://www.npmjs.com/package/@pyra-marketplace/pyra-sdk) ![npm](https://img.shields.io/npm/dw/@pyra-marketplace/pyra-sdk) [![License](https://img.shields.io/npm/l/@pyra-marketp
Downloads
5
Keywords
Readme
Pyra-SDK
Overview
Based on Asset-SDK, Pyra-SDK implements a three-layer scalable data platform to monetize user content. It provides a set of easy-to-use methods and classes for PyraZone, PyraMarket, and RevenuePool.
Install
Before installing asset-sdk, you should install @meteor-web3/connector, which is the entrance of Dataverse and Meteor.
pnpm install @meteor-web3/connector # if you haven't installed it yet
pnpm install @pyra-marketplace/pyra-sdk
Examples
create pyra-zone
import {
Connector,
MeteorWebProvider
} from "@meteor-web3/connector";
import { PyraZone } from "@pyra-marketplace/pyra-sdk";
import { ethers } from "ethers";
const connector = new Connector(new MeteorWebProvider());
const loadOrCreatePyraZone = async () => {
let _assetId: string;
const pyraZones = await PyraZone.loadPyraZones({
chainId: ChainId.BaseSepolia,
publishers: [connector.address]
});
if (pyraZones.length > 0) {
_assetId = pyraZones[0].asset_id;
} else {
const pyraZone = new PyraZone({
chainId: ChainId.BaseSepolia,
connector
});
_assetId = await pyraZone.createPyraZone();
}
console.log({ _assetId });
};
create tier-key
import {
Connector,
MeteorWebProvider
} from "@meteor-web3/connector";
import { PyraZone } from "@pyra-marketplace/pyra-sdk";
const connector = new Connector(new MeteorWebProvider());
const createTierkey = async () => {
const pyraZone = new PyraZone({
chainId: ChainId.BaseSepolia,
assetId: "SOME_ASSET_ID",
connector
});
const res = await pyraZone.createTierkey();
console.log({ tier: res.tier });
};
create tier-file
import {
Connector,
MeteorWebProvider
} from "@meteor-web3/connector";
import { PyraZone } from "@pyra-marketplace/pyra-sdk";
const connector = new Connector(new MeteorWebProvider());
const createTierFile = async (tier: number = 0) => {
const pyraZone = new PyraZone({
chainId: ChainId.BaseSepolia,
assetId: "SOME_ASSET_ID",
connector
});
const date = new Date().toISOString();
const res = await pyraZone.createTierFile({
modelId: "PYRA_MODEL_ID",
fileName: "create a file",
fileContent: {
modelVersion: "0.0.1",
title: "test title",
description: "test description",
tags: ["test tag1", "test tag2"],
resources: [
"https://bafkreib76wz6wewtkfmp5rhm3ep6tf4xjixvzzyh64nbyge5yhjno24yl4.ipfs.w3s.link"
],
createdAt: date,
updatedAt: date,
encrypted: JSON.stringify({
resources: true
})
},
tier
});
const indexFileId = res.fileContent.file.fileId;
console.log({ res, indexFileId });
};
You can find more pyra-sdk usage in demo.
License
This project is licensed under the MIT License - see the LICENSE file for details.
Contributing
Contributions to this project are welcome. To contribute, please follow these steps:
- Fork the repository and create a new branch.
- Make your changes and test them thoroughly.
- Submit a pull request with a detailed description of your changes.