Skip to content

Automatic verification ​

In a quest with Verify automatically, every step names one on-chain transaction the worker must send. The work2own operator checks each submission against those rules and then completes or rejects it on-chain. The same checks run as advice in manual quests that have on-chain steps.

The rule for a step ​

The employer sets, per step:

FieldMeaning
NetworkRobinhood Chain mainnet (4663) or Robinhood Chain testnet (46630)
ContractThe address the transaction must be sent to
FunctionOptional. The 4-byte function selector the transaction must start with. A signature like swap(uint256,address) is converted to its selector when the quest is created
Minimum valueThe minimum ETH (in wei) the transaction must send. 0 means no minimum

What the operator checks ​

For each on-chain step, using the transaction hash the worker gave:

  1. The transaction exists on the step's network. If it cannot be found yet, the operator keeps waiting. If it is still not found 30 minutes after the submission, the step fails.
  2. It succeeded: a reverted transaction fails.
  3. It was sent by the worker's own wallet (the transaction's from).
  4. It was sent to the contract in the rule (the transaction's to).
  5. It calls the function in the rule, if one is set: the first 4 bytes of the transaction input must equal the selector.
  6. It sent at least the minimum ETH value.
  7. It happened after the quest was created and before the worker submitted. For testnet steps, up to 120 seconds of clock difference are allowed on the submission side.
  8. It is not reused:
    • the same transaction cannot answer two steps of one proof;
    • a worker cannot reuse a transaction that is already part of one of their completed quests, or that already passed a step of another quest they submitted.

Also checked for the whole submission:

  • The proof must be uploaded to work2own for the fingerprint on-chain. If it is missing 1 hour after the submission, the submission is rejected.
  • The proof must be made for this quest and this worker, and answer every step.
  • If the employer never published the steps, submissions are rejected 24 hours after they are made, so the quest can still be closed and refunded.

Outcomes ​

OutcomeWhat happens
Every step passesThe operator calls verifyQuest. The quest is completed and the payout is created
Any step failsThe operator calls rejectQuest. The slot is freed; the worker cannot join this quest again
A step is waitingThe operator checks again after about a minute

The worker sees each step as verified, failed or checking, and the overall line "Verification: pass | fail | wait" with the reason, for example "step 2: the transaction calls another contract".

Failure reasons you may see:

  • no transaction was given
  • transaction not found on Robinhood Chain (or Robinhood Chain testnet)
  • the transaction reverted
  • the transaction was sent by another wallet
  • the transaction calls another contract
  • the transaction calls another function
  • the transaction value is below the minimum
  • the transaction happened before the campaign started
  • the transaction happened after the submission
  • one transaction was given for two steps
  • this transaction was already used for another quest
  • the proof does not answer every step
  • the proof was made for other work
  • no proof content was uploaded for the submitted hash
  • the employer has not published the verification rule

What is not checked ​

The operator reads the transaction itself and its receipt status. It does not:

  • look inside the transaction: calls made through another contract (a router, an aggregator, a multicall, a smart-contract or account-abstraction wallet) do not match, because the transaction's to or from is then a different address;
  • check amounts other than the ETH value: a swap of any size passes, since token amounts, events and logs are not read;
  • check balances or holdings, such as holding an NFT or a minimum token balance;
  • check anything off-chain, such as social media actions. Those belong in a manually reviewed quest.

Employers should write rules that match exactly the transaction a user's wallet sends, and use manual review when a transaction alone does not prove the task.

Timing ​

The operator runs every 15 seconds and sends at most 20 transactions per round. A new submission is usually checked within a minute. If the operator is short of gas, it pauses its work until it is topped up; see Security and roles.

Manual quests with on-chain steps ​

In a manually reviewed quest, the operator runs the same step checks but sends no transaction. The results appear next to the submission for the employer ("verified on-chain", "check failed", "checking") and in the worker's step list. Checks repeat every minute while waiting and every 6 hours after a result. The employer still decides.

work2own is an independent project. It is not affiliated with, endorsed by or sponsored by Robinhood Markets, Inc. Nothing here is investment advice.