Beta Test Plan

This comprehensive, step-by-step test plan will guide you through the process of interacting with the Otacon smart contract, allowing you to experience the platform as a Bounty Program Manager, a Validator, or a Bounty Hunter.


1. Introduction

The Otacon platform is a decentralized bug bounty hunting ecosystem where participants can:

  • Bounty Program Managers: Create and manage bug bounty programs.

  • Validators: Validate reported bugs and proofs submitted by bounty hunters.

  • Bounty Hunters: Find vulnerabilities, submit proofs, and earn rewards.

This test plan aims to simulate real-world interactions with the Otacon smart contract, helping users understand its functionalities and workflows.


2. Becoming a Bounty Program Manager

As a bounty program manager, you'll create and manage bug bounty programs.

Creating a Bounty

Step 1: Set Up Collectible Contracts

Ensure the OtaconBountyRegistry contract is aware of the collectible contract addresses:

await otaconRegistry.setProofCollectibleContract(proofCollectibleAddress);
await otaconRegistry.setSnippetCollectibleContract(snippetCollectibleAddress);
await otaconRegistry.setBountyPassCollectibleContract(bountyPassCollectibleAddress);
await otaconRegistry.setMultiplierCollectible(
  MultiplierTier.S,
  multiplierCollectibleAddress,
  ethers.utils.parseUnits('2', 18), // 2x multiplier
  0 // Collectible type ID
);

Step 2: Prepare Bounty Parameters

Define the bounty creation parameters:

Step 3: Pay Bounty Creation Fee

You can pay the fee using one of three options:

  1. Otacon Tokens

    • Approve Otacon tokens for transfer:

    • Set useOtaconToken to true when calling startBounty.

  2. ETH

    • Send the required ETH amount with the transaction.

    • Set useETH to true.

  3. Bounty Pass Collectible

    • Ensure you own a Bounty Pass collectible.

    • Approve the Bounty Pass for transfer:

    • Provide the bountyPassTokenId when calling startBounty.

Step 4: Create the Bounty


3. Becoming a Validator

Validators are responsible for reviewing and validating proofs submitted by bounty hunters.

Step 1: Request to Become a Validator

Contact the Bounty Program Manager or the Otacon Protocol Owner to be added as a validator for a specific bounty.

Step 2: Manager Adds Validator


4. Becoming a Bounty Hunter

Bounty hunters find vulnerabilities and submit proofs to earn rewards.

Staking a ProofCollectible

Step 1: Obtain a ProofCollectible

Acquire a ProofCollectible (ERC721 token) representing your discovered bug.

Step 2: Approve and Stake the ProofCollectible

Staking a SnippetCollectible

If the bounty requires a code snippet:

Step 1: Obtain a SnippetCollectible

Acquire a SnippetCollectible (ERC721 token) containing your code snippet.

Step 2: Approve and Stake the SnippetCollectible


5. Validating Proofs and Distributing Rewards

Step 1: Validator Validates the Proof

  • Severity: An integer representing the severity level (0-3).

Step 2: Reward Distribution

Upon validation:

  • The bounty hunter receives their reward minus the protocol fee.

  • The protocol fee accumulates in the contract.


6. Claiming Bounty Shares

Participants who have staked multipliers can claim a share of the protocol bounty rewards.

Step 1: Stake a MultiplierCollectible

Step 1.1: Obtain MultiplierCollectible

Acquire a MultiplierCollectible (ERC1155 token) of a specific tier.

Step 1.2: Approve and Stake the MultiplierCollectible

Step 2: Claim Your Share

  • The contract calculates your share based on your staked multiplier.

  • MultiplierCollectibles are burned upon claiming.


7. Diagrams

Workflow Overview

Below is a simplified diagram of the Otacon workflow:

Explanation:

  1. Bounty Creation: The Bounty Program Manager creates a bounty by interacting with the Otacon Bounty Registry.

  2. Proof Submission: Bounty Hunters find vulnerabilities and stake their ProofCollectibles to the bounty.

  3. Validation: Validators review the proofs and validate them.

  4. Rewards Distribution: Upon validation, rewards are distributed to the bounty hunters, and protocol fees are accumulated.

  5. Bounty Share Claim: Participants who have staked MultiplierCollectibles can claim a share of the protocol fees.

Last updated