Cómo vincular el valor al token fuera de ethereum

Tengo un sistema de juego en línea. Emití algunos tokens a través de ethereum. ¿Cómo puedo vincular el valor de los tokens emitidos en ethereum a mi sistema de juego, que está fuera del ecosistema de ethereum? (es decir) Los usuarios deben poder comprar elementos del juego como armas, potenciadores, etc. utilizando los tokens personalizados.

Lógicamente, supongo que funcionará de la siguiente manera: le pido al usuario la clave pública de su billetera ethereum. El usuario envía los tokens a mi billetera. Consultaré ethereum usando alguna API y me daré cuenta de que el usuario X ha depositado algunos tokens en mi billetera. Cuando se haya realizado la transacción, emitiré los elementos del juego.

Otra forma de ver la pregunta es, cuando vendo tokens a usuarios en una ICO, ¿cómo usará el usuario esos tokens para cambiarlos por algún valor en mi producto?

El código de ejemplo es muy apreciado.

No sigo completamente su pregunta y lo que está tratando de lograr. ¿Sería más fácil aceptar pagos en ether y acreditar a los usuarios con un token fuera de la cadena dentro del juego?
Estoy considerando las ICO como una alternativa a Kickstarter para financiar mi proyecto. Entonces, la pregunta es, si vendo tokens a los usuarios, ¿qué hay para ellos? ¿Cómo se beneficiará un usuario al conservar un token? ¿Cómo se ve el aspecto técnico?
El beneficio para los compradores de fichas es lo que les des a cambio de las fichas. Por ejemplo, una ficha de metro en Toronto se puede usar para viajar en nuestro metro. Una vez que haya comprado uno, incluso si el precio de los tokens aumenta, su token aún puede usarse para viajar en el metro. Por lo tanto, su valor está vinculado al valor de viajar en metro. Podrías ofrecer un refuerzo de salud del 100 % en el juego por 5 fichas. Y entonces ese es el valor de los tokens. Ese es un posible beneficio para los poseedores de fichas.
Con un modelo de crowdfunding, se podría decir que, durante un período de promoción, las personas pueden obtener 150 tokens por ether. Después de su período de financiación colectiva, solo otorga 100 tokens por ether. Ese es el beneficio por participar en tu crowdsale. Es posible que no haya ningún beneficio en tener tokens. Eso está dictado por la economía y está en gran medida fuera de su control. Si su juego no es popular, alguien puede estar dispuesto a vender sus fichas por centavos de dólar porque simplemente no les importa lo suficiente como para jugar. O sobreprecio sus artículos en el juego.
Los participantes en la venta inicial de Ethereum obtuvieron más de 1000 ETH por bitcoin y ahora parecen genios. Pero ethereum podría haber quebrado con la misma facilidad. Como las personas que recogieron dogecoin a 0,2 centavos de dólar cada una.

Respuestas (2)

Una vez que haya distribuido tokens a través de una ICO, escribirá un código en su aplicación que requiere dichos tokens. El valor por el que se intercambian los tokens depende totalmente de usted y depende de los parámetros de la aplicación que está creando.

El código de contrato para el token que cree incluirá una función sendCoin() de algún tipo que envía tokens entre direcciones de Ethereum. Entonces, en el código, especificaría una dirección para recolectar tokens en el juego y los usuarios luego enviarían tokens a esa dirección en una transacción en la cadena Ethereum. Enviar los tokens requerirá un nodo Ethereum actualizado (para acceder al código de contrato del token y enviar una transacción), por lo que los usuarios de su juego deberán tener un nodo local actualizado en su sistema, o tal vez solo podría tener un nodo remoto. en funcionamiento al que se conectan de forma centralizada (si no te importa tener descentralización en tu juego).

Aquí está probablemente el problema real de que no hay una solución fácil ya resuelta: hasta que se procese esa transacción, incluidos los tokens enviados, no hay forma de saber que le han enviado tokens (al menos escaneando la cadena de bloques). Cada nuevo bloque tarda unos 13 segundos en extraerse, por lo que ese es el tiempo mínimo que el usuario tendrá que esperar para recoger lo que esté comprando. Simplemente puede registrar sus compras y verificar sus saldos (sin tiempo de espera) y luego darles el artículo antes de que se extraiga la transacción. Hay muchas maneras de hacer esto, y no se pueden cubrir todas en una sola pregunta.

Por último, diré que asegúrese de que el juego que está creando esté descentralizado de alguna manera, de lo contrario, no tiene sentido usar tokens creados en Ethereum.

EDITAR: Olvidé mencionar que enviar tokens a otra dirección de Ethereum requerirá una cierta cantidad de éter en la cuenta de envío (sin importar el costo del gas de la función sendCoin()). Entonces, si están ejecutando un nodo Ethereum local, necesitarán algo de éter en su cuenta.

Digamos que la transacción se realizó. ¿Cómo podría detectar esto desde mi código de juego?
Tu código de juego tendría que interactuar con la cadena Ethereum. Además de una función sendCoin(), necesitaría una función coinBalanceOf() que devuelva el saldo de una dirección determinada. Una vez que se realiza la transacción, el juego puede consultar los saldos de la cadena de bloques para verificar si el usuario pagó los tokens requeridos. También necesitaría almacenamiento en su contrato de token para los saldos.

Puede usar eventos de transferencia ERC20 a la dirección del receptor designado

(O haga un contrato inteligente especial con una compra y un evento de compra)

Una vez que se haya enviado el evento, puedes otorgar el elemento del juego.

Realmente tan simple como eso. Si desea un precio dinámico, puede consultar la funcionalidad de actualización en este: https://github.com/hunterlong/fiatcontract/blob/master/contracts/FiatContract.sol