A secure and easy to use dapp connector protocol for Phantasma.
Phantasma Link is a protocol designed to allow dapps to sign transactions and do other on-chain operations on the behalf of users, in a transparent way, without requiring access to the user private key.
To learn more about Phantasma, please read the White Paper.
List of known wallets that support Phantasma Link protocol.
Wallet | Status | Notes |
---|---|---|
Sample Connector | Working, version 2 | Not a real wallet, it's a reference implementation |
Poltergeist | Working, version 2 support | Phantasma Link support in Windows/Mac/Linux versions only |
Ecto | Working, version 1 support | Browser-based |
Phantom | In progress | |
Pavillion | In progress |
If you want to add support to Phantasma Link to your own wallet or other type of application, check the tables below to know which methods you will need to implement.
Method | Arguments | Example | Notes |
---|---|---|---|
authorize | dappName, version | /authorize/mydapp/2 | Will estabilish a connection between a dapp and a wallet |
getAccount | platform | /getAccount/phantasma | Will return various fields about the account available in the connected wallet. If multiple accounts are available, this will return the currently selected account. |
signData | data, signature, platform | /signData/FFAACCEA/Ed25519/phantasma | Will sign binary data with the private key of the current wallet. |
signTx | chain, script, payload, signature, platform | /signTx/main/RAWSCRIPTHERE/Ed25519/phantasma | Will sign with the private key of the current wallet, and relay it to a node |
invokeScript | chain, script | /invokeScript/main/RAWSCRIPTHERE | Will execute a read-only script using onchain data |
writeArchive | hash, blockIndex, rawbytes | /writeArchive/FFB9914E6749E7C4A7750FDD2F30890ECDD63021FA661BD85BE3DD108E0EB372/RAWBYTESHERE | Will write an archive chunk to the Phantasma storage |
If you are a web dapp developer, you will be able to connect your dapp to Phantasma by downloading the Javascript library and integrating it with your code.
If you are creating a Unity or .NET based dapp, you will find a Phantasma Link library client here.
Add links to both Phantasma.js and Phantasma.css files (the actual paths may differ, depending on where you install them).
<link href="phantasma/phantasma.css" rel="stylesheet">
<script src="phantasma/phantasma.js"></script>
Add a login button HTML code somewhere in your web page.
<div class="col-md-4 text-center">
<button type="button" class="btn btn-lg" onclick="loginToPhantasma()">Login</button>
</div>
Add a Javascript function called loginToPhantasma() somewhere in your web page.
let mydappName = 'mydapp';
let requiredVersion = 2;
let link = new PhantasmaLink(mydappName); // here we instantiate a Phantasma Link connection
function loginToPhantasma() {
link.login( function(success) {
if (success) {
console.log('Connected to account ' + link.account.address + ' via ' + link.wallet);
}
}, requiredVersion);
}
You can contribute to Phantasma with issues and PRs. Simply filing issues for problems you encounter is a great way to contribute. Contributing implementations is greatly appreciated.
The Phantasma project is released under the MIT license, see LICENSE.md
for more details.