Activating a Alphanet Faucet Wallet Remotely (without tezos-client)2019 Community Moderator ElectionError:...
Do my Windows system binaries contain sensitive information?
How to use a mathematical expression as xticklable
What is better: yes / no radio, or simple checkbox?
Can a person refuse a presidential pardon?
Why is commutativity optional in multiplication for rings?
How to avoid being sexist when trying to employ someone to function in a very sexist environment?
It took me a lot of time to make this, pls like. (YouTube Comments #1)
How Should I Define/Declare String Constants
Could quantum mechanics be necessary to analyze some biology scenarios?
Can chords be played on the flute?
Does Windows 10's telemetry include sending *.doc files if Word crashed?
Can the Assuming function be used with ContourPlot or DensityPlot?
Finding the number of integers that are a square and a cube at the same time
Charged enclosed by the sphere
Do authors have to be politically correct in article-writing?
Removing debris from PCB
Can I become debt free or should I file for bankruptcy? How do I manage my debt and finances?
How to satisfy a player character's curiosity about another player character?
Word to be used for "standing with your toes pointing out"
How to properly claim credit for peer review?
On what did Lego base the appearance of the new Hogwarts minifigs?
Why is c4 a better move in this position?
How to mitigate "bandwagon attacking" from players?
What are these green text/line displays shown during the livestream of Crew Dragon's approach to dock with the ISS?
Activating a Alphanet Faucet Wallet Remotely (without tezos-client)
2019 Community Moderator ElectionError: Protocol not supported when trying to connect eztz-cli to tezos nodeTzScan API for alphanet?Why is my faucet wallet on Alphanet not recognized?Is it possible to run alphanet and zeronet nodes from the same server that is running a mainnet node?
Yesterday I learned that the JSON provided from the Alphanet wallet must first be activated using activate account
e.g. ./tezos-client activate account myRandomAlias with tzWhAtEvEr.json
(thanks Fredcy!) which also led me to find this section in the developer documentation https://tezos.gitlab.io/master/introduction/howtouse.html#get-free-tez.
Is there a way to perform this action without tezos-client, but rather by using a library such as eztz or sotez with a remote provider? I see that sotez does have a "Activate" method, but I have tried several combinations of values extracted from the faucet JSON to no avail. https://github.com/AndrewKishino/sotez/wiki/Documentation#activate
When ZuluRepublic initially engaged Tezos about implementing Tezos into our suite of products, we were told that this could likely be achieved without hosting our own node, but now I am wondering if that isn't true?
Edit:
To elaborate, my intention is to handle key generation, storage, transaction building, and signing local (offline methods) and using a remote provider only to fetch public data like blocks, transactions, balances, and to broadcast signed transactions.
I am accustomed to faucets that ask for an address to send tokens to, where I would enter the address to a wallet I control, and then I can begin experimenting with sending and receiving tezzies in my codebase. But with this faucet, it seems like I would need to have my own node so I can use tezos-client to activate it.
eztz alphanet
New contributor
add a comment |
Yesterday I learned that the JSON provided from the Alphanet wallet must first be activated using activate account
e.g. ./tezos-client activate account myRandomAlias with tzWhAtEvEr.json
(thanks Fredcy!) which also led me to find this section in the developer documentation https://tezos.gitlab.io/master/introduction/howtouse.html#get-free-tez.
Is there a way to perform this action without tezos-client, but rather by using a library such as eztz or sotez with a remote provider? I see that sotez does have a "Activate" method, but I have tried several combinations of values extracted from the faucet JSON to no avail. https://github.com/AndrewKishino/sotez/wiki/Documentation#activate
When ZuluRepublic initially engaged Tezos about implementing Tezos into our suite of products, we were told that this could likely be achieved without hosting our own node, but now I am wondering if that isn't true?
Edit:
To elaborate, my intention is to handle key generation, storage, transaction building, and signing local (offline methods) and using a remote provider only to fetch public data like blocks, transactions, balances, and to broadcast signed transactions.
I am accustomed to faucets that ask for an address to send tokens to, where I would enter the address to a wallet I control, and then I can begin experimenting with sending and receiving tezzies in my codebase. But with this faucet, it seems like I would need to have my own node so I can use tezos-client to activate it.
eztz alphanet
New contributor
add a comment |
Yesterday I learned that the JSON provided from the Alphanet wallet must first be activated using activate account
e.g. ./tezos-client activate account myRandomAlias with tzWhAtEvEr.json
(thanks Fredcy!) which also led me to find this section in the developer documentation https://tezos.gitlab.io/master/introduction/howtouse.html#get-free-tez.
Is there a way to perform this action without tezos-client, but rather by using a library such as eztz or sotez with a remote provider? I see that sotez does have a "Activate" method, but I have tried several combinations of values extracted from the faucet JSON to no avail. https://github.com/AndrewKishino/sotez/wiki/Documentation#activate
When ZuluRepublic initially engaged Tezos about implementing Tezos into our suite of products, we were told that this could likely be achieved without hosting our own node, but now I am wondering if that isn't true?
Edit:
To elaborate, my intention is to handle key generation, storage, transaction building, and signing local (offline methods) and using a remote provider only to fetch public data like blocks, transactions, balances, and to broadcast signed transactions.
I am accustomed to faucets that ask for an address to send tokens to, where I would enter the address to a wallet I control, and then I can begin experimenting with sending and receiving tezzies in my codebase. But with this faucet, it seems like I would need to have my own node so I can use tezos-client to activate it.
eztz alphanet
New contributor
Yesterday I learned that the JSON provided from the Alphanet wallet must first be activated using activate account
e.g. ./tezos-client activate account myRandomAlias with tzWhAtEvEr.json
(thanks Fredcy!) which also led me to find this section in the developer documentation https://tezos.gitlab.io/master/introduction/howtouse.html#get-free-tez.
Is there a way to perform this action without tezos-client, but rather by using a library such as eztz or sotez with a remote provider? I see that sotez does have a "Activate" method, but I have tried several combinations of values extracted from the faucet JSON to no avail. https://github.com/AndrewKishino/sotez/wiki/Documentation#activate
When ZuluRepublic initially engaged Tezos about implementing Tezos into our suite of products, we were told that this could likely be achieved without hosting our own node, but now I am wondering if that isn't true?
Edit:
To elaborate, my intention is to handle key generation, storage, transaction building, and signing local (offline methods) and using a remote provider only to fetch public data like blocks, transactions, balances, and to broadcast signed transactions.
I am accustomed to faucets that ask for an address to send tokens to, where I would enter the address to a wallet I control, and then I can begin experimenting with sending and receiving tezzies in my codebase. But with this faucet, it seems like I would need to have my own node so I can use tezos-client to activate it.
eztz alphanet
eztz alphanet
New contributor
New contributor
edited 13 hours ago
Michael Rodriguez
New contributor
asked 14 hours ago
Michael RodriguezMichael Rodriguez
325
325
New contributor
New contributor
add a comment |
add a comment |
2 Answers
2
active
oldest
votes
Yes this is possible with sotez. There initially was a bug with the activate function which was just fixed in 0.2.11. You can do something like the following to activate an account as well as generate the keys:
import { rpc, crypto } from 'sotez';
// tz1eQV2GqDTY7dTucnjzNgvB5nP4H5c7Xr5m.json
const accountJSON = {
"mnemonic": [
"raw",
"peace",
"visual",
"boil",
"prefer",
"rebel",
"anchor",
"right",
"elegant",
"side",
"gossip",
"enroll",
"force",
"salmon",
"between"
],
"secret": "0c5fa9a3d707acc816d23940efdef01aa071bdc6",
"amount": "12358548903",
"pkh": "tz1eQV2GqDTY7dTucnjzNgvB5nP4H5c7Xr5m",
"password": "wc0W7jn3Vf",
"email": "gfjilgzu.trfhzzzk@tezos.example.org"
};
const activateAccount = async (accountJSON) => {
let keys;
try {
const activatedOperation = await rpc.activate(accountJSON.pkh, accountJSON.secret);
await rpc.awaitOperation(activatedOperation.hash);
keys = await crypto.generateKeys(accountJSON.mnemonic.join(' '), `${accountJSON.email}${accountJSON.password}`);
console.log(keys);
} catch (e) {
console.log(e);
}
};
activateAccount(accountJSON);
Some things you can see from the example is that the mnemonic is entered as a string and the passphrase is the concatenated email and password values from the JSON file.
New contributor
Brilliant! It seems I was doing it correctly before, but I had sotez 0.2.9. Thank you!
– Michael Rodriguez
12 hours ago
add a comment |
You can do this using the eztz library. Here are the relevant commands you want to look at:
//Point to alphanet node
eztz.node.setProvider("https://alphanet.tezrpc.me");
//From https://faucet.tzalpha.net/
var faucet = {
"mnemonic": [
"viable",
"decline",
"spend",
"excess",
"hour",
"panel",
"decade",
"sniff",
"blame",
"crane",
"enact",
"clever",
"rival",
"bundle",
"silk"
],
"secret": "b318178ddad24f1f9f789aecdbe62a4f4723f47f",
"amount": "19080702922",
"pkh": "tz1XfgzFAdNijPdANxxJ69wYUdHfYrWr4bqS",
"password": "Omxz6rDlHz",
"email": "xktvhnlk.vnzorwib@tezos.example.org"
};
//Generate keys
var keys = eztz.crypto.generateKeys(faucet.mnemonic.join(" "), faucet.email + faucet.password);
if (keys.pkh != faucet.pkh) throw "Invalid";
//Activate
eztz.rpc.activate(faucet.pkh, faucet.secret).then(function(d){
console.log(d);
});
This queries the remote tezrpc Alphanet node, constructs keys and forges operations locally and injects the activation operation into the node.
add a comment |
Your Answer
StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "698"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});
function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: false,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: null,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
noCode: true, onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});
}
});
Michael Rodriguez is a new contributor. Be nice, and check out our Code of Conduct.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2ftezos.stackexchange.com%2fquestions%2f664%2factivating-a-alphanet-faucet-wallet-remotely-without-tezos-client%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
2 Answers
2
active
oldest
votes
2 Answers
2
active
oldest
votes
active
oldest
votes
active
oldest
votes
Yes this is possible with sotez. There initially was a bug with the activate function which was just fixed in 0.2.11. You can do something like the following to activate an account as well as generate the keys:
import { rpc, crypto } from 'sotez';
// tz1eQV2GqDTY7dTucnjzNgvB5nP4H5c7Xr5m.json
const accountJSON = {
"mnemonic": [
"raw",
"peace",
"visual",
"boil",
"prefer",
"rebel",
"anchor",
"right",
"elegant",
"side",
"gossip",
"enroll",
"force",
"salmon",
"between"
],
"secret": "0c5fa9a3d707acc816d23940efdef01aa071bdc6",
"amount": "12358548903",
"pkh": "tz1eQV2GqDTY7dTucnjzNgvB5nP4H5c7Xr5m",
"password": "wc0W7jn3Vf",
"email": "gfjilgzu.trfhzzzk@tezos.example.org"
};
const activateAccount = async (accountJSON) => {
let keys;
try {
const activatedOperation = await rpc.activate(accountJSON.pkh, accountJSON.secret);
await rpc.awaitOperation(activatedOperation.hash);
keys = await crypto.generateKeys(accountJSON.mnemonic.join(' '), `${accountJSON.email}${accountJSON.password}`);
console.log(keys);
} catch (e) {
console.log(e);
}
};
activateAccount(accountJSON);
Some things you can see from the example is that the mnemonic is entered as a string and the passphrase is the concatenated email and password values from the JSON file.
New contributor
Brilliant! It seems I was doing it correctly before, but I had sotez 0.2.9. Thank you!
– Michael Rodriguez
12 hours ago
add a comment |
Yes this is possible with sotez. There initially was a bug with the activate function which was just fixed in 0.2.11. You can do something like the following to activate an account as well as generate the keys:
import { rpc, crypto } from 'sotez';
// tz1eQV2GqDTY7dTucnjzNgvB5nP4H5c7Xr5m.json
const accountJSON = {
"mnemonic": [
"raw",
"peace",
"visual",
"boil",
"prefer",
"rebel",
"anchor",
"right",
"elegant",
"side",
"gossip",
"enroll",
"force",
"salmon",
"between"
],
"secret": "0c5fa9a3d707acc816d23940efdef01aa071bdc6",
"amount": "12358548903",
"pkh": "tz1eQV2GqDTY7dTucnjzNgvB5nP4H5c7Xr5m",
"password": "wc0W7jn3Vf",
"email": "gfjilgzu.trfhzzzk@tezos.example.org"
};
const activateAccount = async (accountJSON) => {
let keys;
try {
const activatedOperation = await rpc.activate(accountJSON.pkh, accountJSON.secret);
await rpc.awaitOperation(activatedOperation.hash);
keys = await crypto.generateKeys(accountJSON.mnemonic.join(' '), `${accountJSON.email}${accountJSON.password}`);
console.log(keys);
} catch (e) {
console.log(e);
}
};
activateAccount(accountJSON);
Some things you can see from the example is that the mnemonic is entered as a string and the passphrase is the concatenated email and password values from the JSON file.
New contributor
Brilliant! It seems I was doing it correctly before, but I had sotez 0.2.9. Thank you!
– Michael Rodriguez
12 hours ago
add a comment |
Yes this is possible with sotez. There initially was a bug with the activate function which was just fixed in 0.2.11. You can do something like the following to activate an account as well as generate the keys:
import { rpc, crypto } from 'sotez';
// tz1eQV2GqDTY7dTucnjzNgvB5nP4H5c7Xr5m.json
const accountJSON = {
"mnemonic": [
"raw",
"peace",
"visual",
"boil",
"prefer",
"rebel",
"anchor",
"right",
"elegant",
"side",
"gossip",
"enroll",
"force",
"salmon",
"between"
],
"secret": "0c5fa9a3d707acc816d23940efdef01aa071bdc6",
"amount": "12358548903",
"pkh": "tz1eQV2GqDTY7dTucnjzNgvB5nP4H5c7Xr5m",
"password": "wc0W7jn3Vf",
"email": "gfjilgzu.trfhzzzk@tezos.example.org"
};
const activateAccount = async (accountJSON) => {
let keys;
try {
const activatedOperation = await rpc.activate(accountJSON.pkh, accountJSON.secret);
await rpc.awaitOperation(activatedOperation.hash);
keys = await crypto.generateKeys(accountJSON.mnemonic.join(' '), `${accountJSON.email}${accountJSON.password}`);
console.log(keys);
} catch (e) {
console.log(e);
}
};
activateAccount(accountJSON);
Some things you can see from the example is that the mnemonic is entered as a string and the passphrase is the concatenated email and password values from the JSON file.
New contributor
Yes this is possible with sotez. There initially was a bug with the activate function which was just fixed in 0.2.11. You can do something like the following to activate an account as well as generate the keys:
import { rpc, crypto } from 'sotez';
// tz1eQV2GqDTY7dTucnjzNgvB5nP4H5c7Xr5m.json
const accountJSON = {
"mnemonic": [
"raw",
"peace",
"visual",
"boil",
"prefer",
"rebel",
"anchor",
"right",
"elegant",
"side",
"gossip",
"enroll",
"force",
"salmon",
"between"
],
"secret": "0c5fa9a3d707acc816d23940efdef01aa071bdc6",
"amount": "12358548903",
"pkh": "tz1eQV2GqDTY7dTucnjzNgvB5nP4H5c7Xr5m",
"password": "wc0W7jn3Vf",
"email": "gfjilgzu.trfhzzzk@tezos.example.org"
};
const activateAccount = async (accountJSON) => {
let keys;
try {
const activatedOperation = await rpc.activate(accountJSON.pkh, accountJSON.secret);
await rpc.awaitOperation(activatedOperation.hash);
keys = await crypto.generateKeys(accountJSON.mnemonic.join(' '), `${accountJSON.email}${accountJSON.password}`);
console.log(keys);
} catch (e) {
console.log(e);
}
};
activateAccount(accountJSON);
Some things you can see from the example is that the mnemonic is entered as a string and the passphrase is the concatenated email and password values from the JSON file.
New contributor
edited 12 hours ago
New contributor
answered 13 hours ago
AKISHAKISH
1863
1863
New contributor
New contributor
Brilliant! It seems I was doing it correctly before, but I had sotez 0.2.9. Thank you!
– Michael Rodriguez
12 hours ago
add a comment |
Brilliant! It seems I was doing it correctly before, but I had sotez 0.2.9. Thank you!
– Michael Rodriguez
12 hours ago
Brilliant! It seems I was doing it correctly before, but I had sotez 0.2.9. Thank you!
– Michael Rodriguez
12 hours ago
Brilliant! It seems I was doing it correctly before, but I had sotez 0.2.9. Thank you!
– Michael Rodriguez
12 hours ago
add a comment |
You can do this using the eztz library. Here are the relevant commands you want to look at:
//Point to alphanet node
eztz.node.setProvider("https://alphanet.tezrpc.me");
//From https://faucet.tzalpha.net/
var faucet = {
"mnemonic": [
"viable",
"decline",
"spend",
"excess",
"hour",
"panel",
"decade",
"sniff",
"blame",
"crane",
"enact",
"clever",
"rival",
"bundle",
"silk"
],
"secret": "b318178ddad24f1f9f789aecdbe62a4f4723f47f",
"amount": "19080702922",
"pkh": "tz1XfgzFAdNijPdANxxJ69wYUdHfYrWr4bqS",
"password": "Omxz6rDlHz",
"email": "xktvhnlk.vnzorwib@tezos.example.org"
};
//Generate keys
var keys = eztz.crypto.generateKeys(faucet.mnemonic.join(" "), faucet.email + faucet.password);
if (keys.pkh != faucet.pkh) throw "Invalid";
//Activate
eztz.rpc.activate(faucet.pkh, faucet.secret).then(function(d){
console.log(d);
});
This queries the remote tezrpc Alphanet node, constructs keys and forges operations locally and injects the activation operation into the node.
add a comment |
You can do this using the eztz library. Here are the relevant commands you want to look at:
//Point to alphanet node
eztz.node.setProvider("https://alphanet.tezrpc.me");
//From https://faucet.tzalpha.net/
var faucet = {
"mnemonic": [
"viable",
"decline",
"spend",
"excess",
"hour",
"panel",
"decade",
"sniff",
"blame",
"crane",
"enact",
"clever",
"rival",
"bundle",
"silk"
],
"secret": "b318178ddad24f1f9f789aecdbe62a4f4723f47f",
"amount": "19080702922",
"pkh": "tz1XfgzFAdNijPdANxxJ69wYUdHfYrWr4bqS",
"password": "Omxz6rDlHz",
"email": "xktvhnlk.vnzorwib@tezos.example.org"
};
//Generate keys
var keys = eztz.crypto.generateKeys(faucet.mnemonic.join(" "), faucet.email + faucet.password);
if (keys.pkh != faucet.pkh) throw "Invalid";
//Activate
eztz.rpc.activate(faucet.pkh, faucet.secret).then(function(d){
console.log(d);
});
This queries the remote tezrpc Alphanet node, constructs keys and forges operations locally and injects the activation operation into the node.
add a comment |
You can do this using the eztz library. Here are the relevant commands you want to look at:
//Point to alphanet node
eztz.node.setProvider("https://alphanet.tezrpc.me");
//From https://faucet.tzalpha.net/
var faucet = {
"mnemonic": [
"viable",
"decline",
"spend",
"excess",
"hour",
"panel",
"decade",
"sniff",
"blame",
"crane",
"enact",
"clever",
"rival",
"bundle",
"silk"
],
"secret": "b318178ddad24f1f9f789aecdbe62a4f4723f47f",
"amount": "19080702922",
"pkh": "tz1XfgzFAdNijPdANxxJ69wYUdHfYrWr4bqS",
"password": "Omxz6rDlHz",
"email": "xktvhnlk.vnzorwib@tezos.example.org"
};
//Generate keys
var keys = eztz.crypto.generateKeys(faucet.mnemonic.join(" "), faucet.email + faucet.password);
if (keys.pkh != faucet.pkh) throw "Invalid";
//Activate
eztz.rpc.activate(faucet.pkh, faucet.secret).then(function(d){
console.log(d);
});
This queries the remote tezrpc Alphanet node, constructs keys and forges operations locally and injects the activation operation into the node.
You can do this using the eztz library. Here are the relevant commands you want to look at:
//Point to alphanet node
eztz.node.setProvider("https://alphanet.tezrpc.me");
//From https://faucet.tzalpha.net/
var faucet = {
"mnemonic": [
"viable",
"decline",
"spend",
"excess",
"hour",
"panel",
"decade",
"sniff",
"blame",
"crane",
"enact",
"clever",
"rival",
"bundle",
"silk"
],
"secret": "b318178ddad24f1f9f789aecdbe62a4f4723f47f",
"amount": "19080702922",
"pkh": "tz1XfgzFAdNijPdANxxJ69wYUdHfYrWr4bqS",
"password": "Omxz6rDlHz",
"email": "xktvhnlk.vnzorwib@tezos.example.org"
};
//Generate keys
var keys = eztz.crypto.generateKeys(faucet.mnemonic.join(" "), faucet.email + faucet.password);
if (keys.pkh != faucet.pkh) throw "Invalid";
//Activate
eztz.rpc.activate(faucet.pkh, faucet.secret).then(function(d){
console.log(d);
});
This queries the remote tezrpc Alphanet node, constructs keys and forges operations locally and injects the activation operation into the node.
answered 13 hours ago
Stephen AndrewsStephen Andrews
2,169317
2,169317
add a comment |
add a comment |
Michael Rodriguez is a new contributor. Be nice, and check out our Code of Conduct.
Michael Rodriguez is a new contributor. Be nice, and check out our Code of Conduct.
Michael Rodriguez is a new contributor. Be nice, and check out our Code of Conduct.
Michael Rodriguez is a new contributor. Be nice, and check out our Code of Conduct.
Thanks for contributing an answer to Tezos Stack Exchange!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2ftezos.stackexchange.com%2fquestions%2f664%2factivating-a-alphanet-faucet-wallet-remotely-without-tezos-client%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown