X

Tweets

A tweet is a public statement made in short form on twitter. In this regard, it is very similar to broadcasting a transaction to the mempool. When a tweet is made that's initial hashtag indicates it is part of a supported metaprotocol, this is indexed by our subscribers. Our oracles are then able to get validation of the tweet from the Validators and push this onchain.

Format

An X Command is defined with a specific format to simplify the parsing of the command. The first line must contain the MetaProtocol, and Module, with optional hashtags for its Action, Version and/or any #Decorators. A Version is indicated by the third hashtag starting with a V, followed by a number. If the number is larger than the latest version, it will be an invalid command. If no version is provided, the latest version will be used by default.

The following lines will contain arguments, and can be packed on a single line or newline delimited.

Lastly, keyword args are provided by a keyword, followed by colon (:), followed by the argument

You can include --- in the tweet to indicate everything below this point is a comment.

#testprotocol #testmodule #testfunc #v1 #testing
really long first arg
second arg
third arg
name: MY NAME
favorite color: RED
favorite food: Ramen
---
This is what will be provided to the action when it is called

#testprotocol is the MetaProtocol

#testmodule is the Module

#testfunc is the Action

#v1 is the Version

#testing is a decorator

Then for our arguments we have really long first arg, second arg, third arg

And our keyword args are:

  • name: MY NAME

  • favorite color: RED

  • favorite food: Ramen

You can think of this as a function execution like:

# this emulates loading a specific version of a function (V1)
# with a specific decoration (test)
from testprotocol.testmodule import test_testfunV1 as testfunc

# this is the additional context from the command injected into the execution
context = {
    'owner_id': sender_ID,
    'origin': 'X',
    'timestamp': time_sent,
    'references': [],
}

# This is what will be provided to the action when it is called
testfunc(
    "really long first arg",
    "second arg",
    "third arg",
    name="MY NAME",
    favorite_color="RED",
    favorite_food="Ramen",
    context=context,
)

Loading a Tweet

Anyone can push any tweet onchain once it has gotten validator confirmation. We have created simplified tooling for a user to commit a tweet onchain using our cli:

thedrops x tweet <TWEET_ID>

List

A list is a collection of twitter accounts, usually organized by a cohesive theme. These lists can be used to create a group for things like airdrops. If a user is planning a launch and wants to airdrop a percentage of supply to a group of users, a twitter list is a simple way to create this grouping of users. A list can only have up to 100 members, otherwise the additional members will be ignored. It must be public so the validators can verify its members.

thedrops x list <LIST_ID> <ALIAS>

Last updated