WalletScriptingInterface

Description

The WalletScriptingInterface API provides functions related to the user's wallet and verification of certified avatar entities.

Supported Script Types: Interface Scripts • Client Entity Scripts • Avatar Scripts

Properties

Name Type Summary
walletStatus WalletScriptingInterface.WalletStatus The status of the user's wallet. Read-only.
limitedCommerce boolean true if Interface is running in limited commerce mode. In limited commerce mode, certain Interface functionalities are disabled, e.g., users can't buy items that are not free from the Marketplace. The Oculus Store version of Interface runs in limited commerce mode. Read-only.

Methods

Name Return Value Summary
getWalletStatus WalletScriptingInterface.WalletStatus Gets the current status of the user's wallet.
proveAvatarEntityOwnershipVerification None Check that a certified avatar entity is owned by the avatar whose entity it is. The result of the check is provided via the ownershipVerificationSuccess and ownershipVerificationFailed signals.
Warning: Neither of these signals are triggered if the entity is not an avatar entity or is not certified.
refreshWalletStatus None Checks and updates the user's wallet status.

Signals

Name Summary
limitedCommerceChanged Triggered when the user's limited commerce status changes.
ownershipVerificationFailed Triggered when a certified avatar entity's ownership check requested via proveAvatarEntityOwnershipVerification fails.
ownershipVerificationSuccess Triggered when a certified avatar entity's ownership check requested via proveAvatarEntityOwnershipVerification succeeds.
walletNotSetup Triggered when the user rezzes a certified entity but the user's wallet is not ready. So the certified location of the entity cannot be updated in the metaverse.
walletStatusChanged Triggered when the user's wallet status changes.

Type Definitions

WalletStatus
Type: number

A WalletStatus may have one of the following values:

ValueMeaningDescription
0Not logged inThe user is not logged in.
1Not set upThe user's wallet has not been set up.
2Pre-existingThere is a wallet present on the server but not one locally.
3ConflictingThere is a wallet present on the server plus one present locally, and they don't match.
4Not authenticatedThere is a wallet present locally but the user hasn't logged into it.
5ReadyThe wallet is ready for use.

Wallets used to be stored locally but now they're only stored on the server. A wallet is present in both places if your computer previously stored its information locally.

Method Details

(static) getWalletStatus( ) → {WalletScriptingInterface.WalletStatus}
Returns: WalletScriptingInterface.WalletStatus

Gets the current status of the user's wallet.

Example

Use two methods to report your wallet's status.

print("Wallet status: " + WalletScriptingInterface.walletStatus);  // Same value as next line.
print("Wallet status: " + WalletScriptingInterface.getWalletStatus());
(static) proveAvatarEntityOwnershipVerification( entityID )

Check that a certified avatar entity is owned by the avatar whose entity it is. The result of the check is provided via the ownershipVerificationSuccess and ownershipVerificationFailed signals.
Warning: Neither of these signals are triggered if the entity is not an avatar entity or is not certified.

Parameters

Name Type Description
entityID Uuid The avatar entity's ID.
Example

Check the ownership of all nearby certified avatar entities.

// Set up response handling.
function ownershipSuccess(entityID) {
    print("Ownership test succeeded for: " + entityID);
}
function ownershipFailed(entityID) {
    print("Ownership test failed for: " + entityID);
}
WalletScriptingInterface.ownershipVerificationSuccess.connect(ownershipSuccess);
WalletScriptingInterface.ownershipVerificationFailed.connect(ownershipFailed);

// Check ownership of all nearby certified avatar entities.
var entityIDs = Entities.findEntities(MyAvatar.position, 10);
var i, length;
for (i = 0, length = entityIDs.length; i < length; i++) {
    var properties = Entities.getEntityProperties(entityIDs[i], ["entityHostType", "certificateID"]);
    if (properties.entityHostType === "avatar" && properties.certificateID !== "") {
        print("Prove ownership of: " + entityIDs[i]);
        WalletScriptingInterface.proveAvatarEntityOwnershipVerification(entityIDs[i]);
    }
}

// Tidy up.
Script.scriptEnding.connect(function () {
    WalletScriptingInterface.ownershipVerificationFailed.disconnect(ownershipFailed);
    WalletScriptingInterface.ownershipVerificationSuccess.disconnect(ownershipSuccess);
});
(static) refreshWalletStatus( )

Checks and updates the user's wallet status.

Signal Details

limitedCommerceChanged( )
Returns: Signal

Triggered when the user's limited commerce status changes.

ownershipVerificationFailed( entityID )
Returns: Signal

Triggered when a certified avatar entity's ownership check requested via proveAvatarEntityOwnershipVerification fails.

Parameters

Name Type Description
entityID Uuid The ID of the avatar entity checked.
ownershipVerificationSuccess( entityID )
Returns: Signal

Triggered when a certified avatar entity's ownership check requested via proveAvatarEntityOwnershipVerification succeeds.

Parameters

Name Type Description
entityID Uuid The ID of the avatar entity checked.
walletNotSetup( )
Returns: Signal

Triggered when the user rezzes a certified entity but the user's wallet is not ready. So the certified location of the entity cannot be updated in the metaverse.

walletStatusChanged( )
Returns: Signal

Triggered when the user's wallet status changes.

Example

Report when your wallet status changes, e.g., when you log in and out.

WalletScriptingInterface.walletStatusChanged.connect(function () {
    print("Wallet status changed to: " + WalletScriptingInterface.walletStatus");
});