# Ether on a Stick

Max Fang and Philip Hayes

## What it does

Ether on a Stick is a platform that allows participants to contribute economic incentives for the completion of arbitrary tasks. More specifically, it allows participants to pool their money into a smart contract that will pay out to a specified target if and only if a threshold percentage of contributors to the pool, weighted by contribution amount, votes that the specified target has indeed carried out an action by a specified due date.

Example: A company pollutes a river, negatively affecting everyone nearby. Residents would like the river to be cleaned up, and are willing to pay for it, but only if the river is cleaned up. Solution: Residents use Ether on a Stick to pool their funds together that will pay out to the company if and only if a specified proportion of contributors to the pool vote that the company has indeed cleaned up the river.

## How we built it

Ether on a Stick implements with code a game theoretical mechanism called a Dominant Assurance Contract that coordinates the voluntary creation of public goods in the face of the free rider problem. It is a decentralized app (or "dapp") built on the Ethereum network, implementing a "smart contract" in Serpent, Ethereum's Python-like contract language. Its decentralized and trustless nature enables the creation of agreements without a 3rd party escrow who can be influenced or corrupted to determine the wrong user.

## Challenges

The first 20 hours of the hackathon were mostly spent setting up and learning how to use the Ethereum client and interact with the network. A significant portion was also spent planning the exact specifications of the contract and deciding what mechanisms would make the network most resistant to attack. Despite the lack of any kind of API reference, writing the contract itself was easier, but deploying it to Ethereum testnet was another challenge, as large swaths of the underlying technology hasn't been built yet.

## What's next for Ether on a Stick

We'd like to take a step much closer to a game-theoretically sound system (don't quote us, we haven't written a paper on it) by implementing a sort of token-based reputation system, similar to that of Augur. In this system, a small portion of pooled funds are set aside to be rewarded to reputation token bearing oracles that correctly vote on outcomes of events. "Correctly voting" means voting with the majority of the other randomly selected oracles for a given event. We would also have to restrict events to only those which are easily and publically verifiable; however, by decoupling voting from contribution, this bypasses a Sybil attack wherein malicious actors (or the contract-specified target of the funds) can use a large amount of financial capital to sway the vote in their favor.
## Critical notes:

* Website MUST be viewed between 67% and 75% on any Mac or Windows laptop
[Website](https://vapor-protocol.webflow.io/)

## What inspired you?

* We were inspired to build this project to solve one of the most core problems experienced by native and non-native Crypto users. Needing native gas to process transactions on a new chain is a nightmare to acquire and necessitates a centralized exchange that the user can interact with (with all the pain points of CEXs like KYC and delays). We’ve figured out a way to use Zetachain’s cross-chain swaps to be able to send gas to any chain as long as you have some tokens on one chain. This way, users don’t have to route through CEX and acquire gas without touching a custodial actor.

## If we had more time

* One of the best ways to improve our product would be to incorporate fiat onramps so users don’t have to have any existing tokens on any chain to split gas across chains. Integrating Stripe or Ramp Network would be simple to do but we ran out of time to look into it. This feature would make our product fully abstracted for the Web3 newbie, allowing them to start with gas on any chain they wanted using the fiat money they already possess.

## How we built our project

* On the backend, we implemented a Solidity smart contract that conducted cross-chain swaps. This contract would first take the native token on the first chain and use the Uniswap quoter and router to swap it into ZETA tokens on the first chain. Then, we would use Zetachain’s cross chain messaging Connector API to send the ZETA tokens to a second chain. On receiving these tokens on the second chain, the smart contract would deconstruct the message, then use the Uniswap quoter and router again to swap the ZETA tokens back into the desired native token on the second chain.
* On the frontend, we used a combination of Webflow and React. We used Webflow to make a landing page that described many of the features of our project as well as a sample user flow. For the actual smart contract interaction, we linked the Webflow landing page to a React page that uses web3.js to interact with the smart contracts.
* Setting up the smart contracts was quite involved. First, we had to deploy this contract onto every single chain that we wanted to potentially swap tokens into. Then, we had to call the setInteractorByChainId function so that each contract would know where its counterparts on other chains lived. After all of this was set up, swaps were ready to be made by the user.

## Challenges we faced

* This was the first time any of us had dealt with programming on the blockchain across chains. Thinking in terms of sending messages across chains was quite challenging but also very rewarding once we understood the programming paradigms.
* Our biggest difficulty was the transaction not succeeding on the other side of the bridge. While we have a few guesses as to why that may be, we had difficulty navigating the block explorer and the documentation, so we were unable to understand exactly why transactions were failing.
## Inspiration

it's really fucking cool that big LLMs (ChatGPT) are able to figure out on their own how to use various tools to accomplish tasks.

for example, see Toolformer: Language Models Can Teach Themselves to Use Tools (<https://arxiv.org/abs/2302.04761>)

this enables a new paradigm self-assembling software: machines controlling machines.

what if we could harness this to make our own lives better -- a lil LLM that works for you?

## What it does

i made an AI assistant (SMS) using GPT-3 that's able to access various online services (calendar, email, google maps) to do things on your behalf.

it's just like talking to your friend and asking them to help you out.

## How we built it

a lot of prompt engineering + few shot prompting.

## What's next for jarbls

shopping, logistics, research, etc -- possibilities are endless

* more integrations !!!
the capabilities explode exponentially with the number of integrations added
* long term memory

come by and i can give you a demo