You can associate your Twitter account with your DEMOS address by following these steps:
import { Demos } from "@kynesyslabs/demosdk/websdk"
import { Identities } from "@kynesyslabs/demosdk/abstraction";
// the DEMOS rpc
const rpc = "https://node2.demos.sh"
const demos = new Demos();
await demos.connect(rpc);
await demos.connectWallet(mnemonic);
const identities = new Identities();
const proofPayload = await identities.createWeb2ProofPayload(demos)
console.log("Tweet this:", proofPayload)
demos:dw2p:ed25519:e9dd684a031e142ce312b695275b226ab8824f2fd3674db52f28be6c3e9fe027f88a8a9509563....
const proof = "https://x.com/cwilvxi/status/1905612827840196726"
const validityData = await identities.addTwitterIdentity(demos, proof)
console.log("validity data: ", validityData)
if (validityData.result == 200){
const res = await demos.broadcast(validityData)
console.log(res)
}
{
"result": 200,
"response": {
"message": "Verified twitter proof. Transaction applied."
},
"require_reply": false,
"extra": {
"confirmationBlock": 9
}
}
const web2Ids = await identities.getWeb2Identities()
{
"result": 200,
"response": {
"twitter": [
{
"proof": "https://x.com/cwilvxi/status/1905612827840196726",
"username": "cwilvxi",
"proofHash": "d1ebcb162c3d5c7d...a6078a90ee56fb21652"
}
]
},
"require_reply": false,
"extra": null
}
const payload = {
context: "twitter",
username: "cwilvxi"
}
const validityData = await identities.removeWeb2Identity(demos, payload);
if (validityData.result == 200) {
const res = await demos.broadcast(validityData);
console.log(res);
}
{
"result": 200,
"response": {
"message": "Identity removed. Transaction applied."
},
"require_reply": false,
"extra": {
"confirmationBlock": 25
}
}