Provider Service¶
The Provider Service enables the creation and management of ecosystems.
Named vs Anonymous ecosystems
There are two types of ecosystems: named and anonymous.
Named ecosystems are suitable for production, and will be prepared for you by Trinsic during onboarding.
Anonymous ecosystems have auto-generated names (such as eager-elephant-94jkn5h
), and may be created by anyone at any time.
Using an anonymous ecosystem for purposes other than prototyping and testing is considered an unauthorized use of Trinsic's platform.
Create Ecosystem¶
Creates a new ecosystem, along with a root controlling account.
If name
is left empty, an anonymous ecosystem will be created.
trinsic provider create-ecosystem --name <ECOSYSTEM_NAME> --email <OWNER_EMAIL>
let createResponse = await trinsic.provider().createEcosystem(
CreateEcosystemRequest.fromPartial({
description: "Test ecosystem from Node",
}),
);
var (ecosystem, authToken) = await trinsic.Provider.CreateEcosystemAsync(new() {
Description = "My ecosystem",
});
actual_create = await trinsic_service.provider.create_ecosystem(
request=CreateEcosystemRequest(description="My ecosystem")
)
actualCreate, err := trinsic.Provider().CreateEcosystem(context.Background(), &provider.CreateEcosystemRequest{
Description: "My ecosystem",
Domain: "https://example.com",
})
var response =
trinsic
.provider()
.createEcosystem(
CreateEcosystemRequest.newBuilder()
.setDescription("My ecosystem")
.setDomain("https://example.com")
.build())
.get();
CreateEcosystemRequest
Upgrade Wallet DID¶
Restricted API
This feature is not yet publicly available, and the list of supported DID Methods is not final.
Please contact Trinsic to enable this endpoint on your account.
Ledger Interactions
Depending on the DID Method chosen, you may be responsible for ledger write fees; additionally, there are some logistical concerns to be aware of.
Click here to learn more.
Upgrades a wallet's DID from the default did:web
to another DID Method. This endpoint may only be called by an ecosystem provider.
Trinsic will register a DID Document for you, and update the wallet's public_did
property to the newly-registered DID. Credentials previously issued by this wallet will not have their issuer
field updated to the new DID, but they will still verify correctly.
Presently, once a wallet's DID has been upgraded, its DID Method cannot be changed again. However, it is possible to perform further upgrades within a method, to go from a testing to production network (for example, did:ion:test
to did:ion
).
trinsic provider upgrade-did --wallet-id {wallet_id} --method ion --method-options testnet
let upgradeResponse = await trinsic.provider().upgradeDID(
UpgradeDidRequest.fromPartial({
walletId: walletId,
method: SupportedDidMethod.ION,
ionOptions: IonOptions.fromPartial({
network: IonOptions_IonNetwork.TestNet,
}),
}),
);
var upgradeResponse = await trinsic.Provider.UpgradeDIDAsync(new() {
WalletId = walletId,
Method = SupportedDidMethod.Ion,
IonOptions = new() {
Network = IonOptions.Types.IonNetwork.TestNet
}
});
import asyncio
from trinsic.trinsic_util import set_eventloop_policy
async def provider_demo():
return
if __name__ == "__main__":
set_eventloop_policy()
asyncio.run(provider_demo())
upgradeResponse, err := trinsic.Provider().UpgradeDID(context.Background(), &provider.UpgradeDidRequest{
Account: &provider.UpgradeDidRequest_WalletId{
WalletId: walletId,
},
Method: common.SupportedDidMethod_ION,
Options: &provider.UpgradeDidRequest_IonOptions{
IonOptions: &provider.IonOptions{
Network: provider.IonOptions_TestNet,
},
},
})
var upgradeRequest =
UpgradeDidRequest.newBuilder()
.setWalletId(account.getAuthToken())
.setMethod(SupportedDidMethod.ION)
.setIonOptions(
IonOptions.newBuilder().setNetwork(IonOptions.IonNetwork.TestNet).build())
.build();
var upgradeResponse = trinsic.provider().upgradeDID(upgradeRequest).get();
walletId
and didUri
.email
and didUri
.email
and walletId
.