Explore Philand
  • Welcome to Phi
    • 🏝️What's Phi?
    • 🌄Mission
    • 🏃‍♀️Story
    • 🏄Phi Crew
  • ⚡Products
    • 🏝️Phi Land
      • 🔦User Guide for Phi Land
        • 0️⃣Before Playing Phi
          • 🦊Download a Crypto Wallet
          • 🟣Get $MATIC
          • 🔷Get an ENS Domain
        • 1️⃣Access Phi Land
        • 2️⃣Create your Phi Land
        • 3️⃣Claim Quest Objects
        • 4️⃣Purchase Items on Shop
        • 5️⃣Deposit Objects to Land
        • 6️⃣Build your land
        • 7️⃣Share your land on Twitter
      • 🎧Phi Music
      • ⛓️Hyperlinks & Link List
      • 💫Transferring Land
      • ↔️Phi Connect
    • ⚔️Phi Quest
      • 🔦User Guide for Phi Quest
        • 0️⃣Before Playing Phi
          • 🦊Download a Crypto Wallet
          • 🟣Get $MATIC
        • 1️⃣Access Phi Quest
        • 2️⃣Claim Quest Objects
          • Quest List
          • Adventure
          • Campaign
        • 3️⃣Purchase Items on Shop
        • 4️⃣Play Phi Land with Items you got
      • 🧑Account
      • 🏅Active Score Rank Quests
    • 🍭Phi Opportunity (beta)
    • 💎Phi Material
      • ⚒️Phi Craft
      • 🥗UGC Craft
    • 🔮OpenSea Collection Links
    • 💡How-to's
      • 🏷️Mastering ENS (Ethereum Name Service)
        • How to Register an ENS Domain Name
        • How to Renew an ENS Domain Name
        • How to Manage ENS records
          • How to set up the Avatar record in ENS
            • Using MintYourPFP to set an Avatar to an ENS name
        • How to Transfer ENS to Another Wallet
        • How to set up an ENS Subdomain
    • ❓FAQ
      • Must I have an ENS to play Phi Quest?
      • How can I get an ENS domain?
      • Why don't my ENS domains show up?
      • Can I use ENS subdomains for Phi Land?
      • What happens when I transfer ENS?
      • I can't create a land
      • Why cannot access to my land?
      • Why can't I change the baseplate?
      • Why can’t I claim Quest objects?
      • Any rewards for participating in Testnet?
      • What is Phi Quest?
      • How the Leaderboard on Phi Quest is calculated?
      • Why are there two EXPs?
      • I claimed objects on Phi Quest. How can I create my Phi Land?
      • Why can’t I see my objects in my wallet?
      • Can I trade Quest Objects?
      • Are traded objects included in my EXP calculation?
      • My EXP not showing, leaderboard not updating
      • Which browser should I use?
      • Which devices are supported?
      • How to update my Twitter OGP image (card)?
    • 📬Submit Feedback
      • Bug Report
      • Feature Request
      • User Survey
  • ⚙️DEVELOPERS
    • 🪴Create Philand
    • 🎨Objects NFT
      • ⛓️Quest Object
      • 🌾Free Object
      • 🧊Premium Object
      • 🍰Baseplate Object
      • 🧮Wallpaper Object
      • 💄Other Topics
      • 💡Appendix
    • 🛠️Use PhiMap
      • 🗺️Deposit/Withdraw
      • 🍧Save Philand
      • 👀View Function
      • 💡Appendix
    • 💝Philand API
      • ⌚Introduction
      • 🔑Authentication
        • 😄Use API key
        • 😍Get Access Token
        • 🤩Verify Access Token
        • 🤪Get Refresh Token
        • 😎Refresh JWT
      • 🫔Quest
        • 🎾Get Quest List
        • 🏀Get Quest Status
        • ⚽Trigger Eligible Check
        • 🎯Get Claimed Status
        • 🏓Get Verify Coupon
      • 🏝️Philand
        • 🫑View Philand Link
        • 🍍Get Philand Image
      • 🧸Account
        • 🍞Get Philand List
        • 👑Get PhiRank
      • 🎺Object
        • 🎸Get Object Info
      • 🦖Example Call
        • 🤠Quest Claim
      • 👔Related Links
    • 🧑‍🏫How to Verify your transaction
      • 👓Read Contract Method
      • 🚩Third-party API
      • 🦷Whitelist
    • 📄Contracts
      • 👮Audit
  • 💼Career
    • 👯Phi is hiring
  • 🔗Official links
    • Website
    • Twitter
    • Discord
    • Discourse
    • Medium
    • Github
    • Guild.xyz
    • Lenster
    • Instagram
Powered by GitBook
On this page
  • Quests are at the center of Phi.
  • Example of ENS Quest
  • Network info
  • Quest Object is not Soul-bound-Token
  • Contract
  • Guild.xyz
  • Achieved Quests
  • System WorkFlow
  • EXP
  • The Power of Quest:
  • We will open Quest creation process...

Was this helpful?

  1. DEVELOPERS
  2. Objects NFT

Quest Object

"quest object" : how it relates to "on-chain activity"

PreviousObjects NFTNextFree Object

Last updated 2 years ago

Was this helpful?

Quests are at the center of Phi.

Our quests cover a variety of on-chain activities, such as viewing a user's past gas fees, checking liquidity on Uniswap, viewing token balances, and reviewing gitcoin contribution history.

Each object is carefully designed to represent its associated activity.

Example of ENS Quest

Quest objects can be minted when the user meets certain conditions.

Quest Name
Quest Condition

Web3 ENS Owner

Own an ENS domain

Web3 ENS Lookup

Configured ENS Reverse Record to current address

Web3 ENS Avatar

Configured the 'avatar' record in your primary ENS

Web3 ENS Website

Configured the 'url' record in your primary ENS with your philand URL

Web3 ENS Subdomain

Setup an ENS subdomain

Silver $ENS Hodler

Hold at least 100 $ENS

Gold $ENS Hodler

Hold at least 1000 $ENS

Network info

Quest has Network info. Uniswap Quest is Ethereum Quest. it means that if you create a tx, in Polygon, you can't claim this quest Object.

Quest Object is not Soul-bound-Token

Initially, we planned to implement quest objects as non-transferable tokens that would be bound to a specific user (like SBT, Soulbound Token), but in the current implementation, quest objects can be transferred. You can also buy and sell on Opensea.

Contract

Two smart contracts related to Quest Object:

  • QuestObject: '0x3D8C06e65ebf06A9d40F313a35353be06BD46038'

In PhiClaim's claimQuestObject, ECDSA signatures are used. (This mechanism is similar to creating a Philand.)

    /*
     * @title claimPhiObject
     * @notice Send create Message to PhiObject
     * @param contractAddress : object contractAddress
     * @param tokenId : object nft token_id
     * @param condition : object related name.
     * @param coupon : coupon api response (ECDSA signature format)
     * @dev check that the coupon sent was signed by the admin signer
     */
    function claimQuestObject(
        address contractAddress,
        uint256 tokenId,
        string calldata condition,
        Coupon memory coupon
    ) external onlyIfAllreadyClaimedObject(contractAddress, tokenId) {
        // to prevent bots minting from a contract
        require(msg.sender == tx.origin);
        IQuestObject _questObject = IQuestObject(contractAddress);
        // Check that the coupon sent was signed by the admin signer
        bytes32 digest = keccak256(abi.encode(contractAddress, couponType[condition], msg.sender));
        require(isVerifiedCoupon(digest, coupon), "Invalid coupon");
        // Register as an already CLAIMED ADDRESS
        phiClaimedLists[msg.sender][contractAddress][tokenId] = _CLAIMED;
        _questObject.getObject(msg.sender, tokenId);
        emit LogClaimObject(msg.sender, tokenId);
    }
    
   
    /// @dev get object conditon and number (related with offcahin validation)
    function getCouponType(string memory condition) external view returns (uint256) {
        return couponType[condition];
    }

    /// @dev set object conditon and number (related with offcahin validation)
    function setCouponType(string memory condition, uint256 tokenId) external onlyOwner {
        couponType[condition] = tokenId;
        emit SetCoupon(condition, tokenId);
    }

Guild.xyz

The PhiClaim contract records user's address user who has claimed each token.

//User claimed tokenId status is here
mapping(address => mapping(address => mapping(uint256 => uint256))) public phiClaimedLists;

Achieved Quests

This phiClaimedLists is used to track completed quest information. You can check quickly by the account page.

System WorkFlow

When a user claims a quest object, the frontend sends a request for a coupon to the backend. Next, the backend checks the user's balance of USDC, and if it is sufficient, the system creates a token using an admin private key.

If the coupon is successfully created, the user can obtain the quest object by calling the 'claimQuestObject' function from the frontend using the PhiClaim contract.

EXP

As a unique feature, all quest objects have the concept of "exp." Currently, there is no significant utility to the exp value, but quest objects can be placed in a "philand" to increase the "Landpower." The exp value is determined when the quest object is created.

The Power of Quest:

As demonstrated in the tweet example, our quest can drive the growth of the Ethereum ecosystem by collaboration with other web3 services. By using these other services, we can expand and enhance services, which will be beneficial for users, service providers, and PHI.

Collaboration with other web3 services will continue to be a crucial issue to address in the future

We will open Quest creation process...

We are planning to gradually decentralize the creation of our QuestObject in future updates.

Please look forward to these updates.

PhiClaim: '0x754e78bC0f7B487D304552810A5254497084970C'

Using this information, we grant some roles on Discord for .

⚙️
🎨
⛓️
🧑‍🏫How to Verify your transaction
https://opensea.io/collection/phi-quest-object
https://polygonscan.com/address/0x3D8C06e65ebf06A9d40F313a35353be06BD46038
https://polygonscan.com/address/0x754e78bC0f7B487D304552810A5254497084970C
guild.xyz
Phiguildxyz
Philand (Guild.xyz)
Phi QuestPhi Quest
Logo
We aim to create pixel art that can effectively represent each service.
ENS Quest Object
Account page is useful to check your achieved.
Backend Path for creating coupon
Land Power
Our Quest make a lot of transactions on Uniswap V3
Logo