# PHP Class, API requests for scripting languages, and Harmony Node API Explorer

**URL:** <https://talk.harmony.one/t/php-class-api-requests-for-scripting-languages-and-harmony-node-api-explorer/11306>\
**Category:** Bounties\
**Created:** [February 9, 2022, 1:14am UTC](https://talk.harmony.one/t/php-class-api-requests-for-scripting-languages-and-harmony-node-api-explorer/11306 "2022-02-09T01:14:35Z")\
**Posts on this page:** 20\
**Page:** 1

<div class="post-metadata">

**Author:** ![ILL\_DIE\_TRYING](https://yyz1.discourse-cdn.com/flex035/user_avatar/talk.harmony.one/ill_die_trying/32/14381_2.png) [@ILL\_DIE\_TRYING](https://talk.harmony.one/u/ILL_DIE_TRYING)\
**Post date:** [February 9, 2022, 1:14am UTC](https://talk.harmony.one/t/php-class-api-requests-for-scripting-languages-and-harmony-node-api-explorer/11306/1 "2022-02-09T01:14:35Z")

</div>

Hi Everyone! I hope I did this right.

## Project Name

PHPH1 (PHP Harmony ONE)

## Proposal

Create a PHP class and a few scripts that will return calls to the Node API. It could be used by other scripting languages to dynamically retrieve data for API calls without having to write all the code for the various JSON requests. Once complete, I plan to use it to create a lightweight and simple responsive web based block explorer that views properly on phones and tablets. I have already written a rough form of the class and plan to release it GPL V3 when finished and host it on github. The class package will also contain an API explorer that will show devs the code necessary to use each call.

All class functions will adhere to the API naming convention so a developer can use the API documentation Harmony already provides should they need to.

If possible, work with the Harmony devs to figure out why a few of the RPC request variables do not work as prescribed. And, if wanted, I can update the Node API documentation. The reason I am mentioning this is because I have found two versions of the API documentation and in a few places, The official documentation was wrong and the other version was right. In a few places they don’t have the same params yet the non-official one works and the official one does not.

## NOTE 2022-3-3: Since this request was originally posted, there has been 26 or so methods added to the Harmony Node API Documentation. This means my class will basically need to double in size. I was asked to also generate documentation for the class which I plan to use PHPDOC for. I will need to go back and write in all of the documentation comments in order for PHPDOC to do its magic. I have adjusted the request to reflect this time

## Proposal Ask

My total shows 30 working days at 8 hours per day: 240 hours  
Using bottom end recommended hourly rate: $110/Man Hour.  
My ask is $26,400

## Timeline

1. Create a PHP class with every API call in it.  
a. I have 37 of 63 methods completed  
b. The remaining methods should take approximately ~7 working days (56 hours) to add to the class

2. Optimize and modernize the class code reassess the PHP code logic and revamp if necessary  
a. ~3 working days (reduced from 7). Almost complete.

3. Create a MOBILE FRIENDLY Harmony API explorer into the package to assist developers in learning how the API works  
a. The design has already been implemented and just needs to have the new API method forms and API documentation sections created and a few adjustments. It is time consuming. (~5 working days).

4. Create documentation on the “homepage” of the explorer package including configuration and simple Javascript/jQuery code examples. This also includes how to extend the network and shards in order to do things like run a local node and get data from it. (~5 working days)

5. Create documentation for the class and explorer using PHP DOC. I have to write in all the doc blocks in the code so it generates everything nicely. Get it generated and then probably a few tweaks to the interface. (~5 working days)

6. Create a package where a developer could drop the package into a directory and safely use it for retrieving data using other scripting languages with minimal input. I plan to provide 3 different download packages: Full with full API explorer, minimal with just the class and remote call script, and class only. As long as I have my stuff properly set up on github, this should be pretty easy. (~2 working days)

7. Report API methods that do not react according to the API documentation (this happens as I work throughout entire project as basically an include. As far as time to report and deal with it depends on how fast the line of communication is). I have a few noted already.  
_1 day_

8. Maintain the class and project if/when the API changes/expands (depends on how often the API changes, just part of maintenance).  
a. If we have a method explosion like this last time, this could turn into a lot of work to stay up to date with the API. I was looking and I believe the original EVM has like 62 or so methods. If there are plans to expand, please let me know and I will include it in the bounty if that is okay.

9. Maintain any bug reports etc on Github  
a. _~2 days_ time over a year then I’ll just do it

I wanted to note, I also own a small IT company and have work I have to do for it so it won’t be like I can just go and blast it out. I would require about a 90 day timeframe to finish. There is some buffer in that just in case I have an extra busy spell with my company.

I have time tracking software and will be able to report every session done for the project and a full report when completed. Once I get the latest interface ready, it will be uploaded in full to github and then we can track changes through there as well. NOTE: I have not been tracking time on this project since the beginning. I wasn’t planning on applying for bounty when I started this, it was suggested I do this on reddit by a couple people. I’m starting to track time now.

This is a tool to help along beginners, provide and alternative way with built in testing for developers to query the API and hopefully at the same time assist in helping new developers in the ecosystem. Once it is complete I could do a public thing on Reddit. Or I could develop a video demonstrating some ways it could be used.

Possible future project plan using PHPH1: Build a node, Create a basic, mobile friendly, Harmony blockchain explorer, start exploring the capabilities of a local node. Maybe attempt to create a personal NFT auction house for my wife’s artwork (We have 1 NFT set 90% ready and it is like NOTHING we have seen so far, very unique)

## External Links

GitHub Project: [GitHub - ILL-DIE-TRYING/phph1: PHPH1 is a PHP class that bridges the Harmony ONE Node API to PHP. Through this, many scripting languages will be able to query the PHP class. The class is designed to validate, insure the request data is in the right format, and return information saving web developers from having to write the code themselves.](https://github.com/ILL-DIE-TRYING/phph1)  
Temporary Testing Site: [https://phph1.saddlerockit.com](https://phph1.saddlerockit.com)

---

<div class="post-metadata">

**Author:** ![ILL\_DIE\_TRYING](https://yyz1.discourse-cdn.com/flex035/user_avatar/talk.harmony.one/ill_die_trying/32/14381_2.png) [@ILL\_DIE\_TRYING](https://talk.harmony.one/u/ILL_DIE_TRYING)\
**Post date:** [February 9, 2022, 11:43am UTC](https://talk.harmony.one/t/php-class-api-requests-for-scripting-languages-and-harmony-node-api-explorer/11306/2 "2022-02-09T11:43:10Z")

</div>

> [@ILL\_DIE\_TRYING](#):
>
> [https://phph1.saddlerocit.com](https://phph1.saddlerocit.com)

Misspelled the address and the edit button wouldn’t work;

[https://phph1.saddlerockit.com](https://phph1.saddlerockit.com/)

---

<div class="post-metadata">

**Author:** ![Jacksteroo](https://yyz1.discourse-cdn.com/flex035/user_avatar/talk.harmony.one/jacksteroo/32/15609_2.png) [@Jacksteroo](https://talk.harmony.one/u/Jacksteroo)\
**Post date:** [February 9, 2022, 6:35pm UTC](https://talk.harmony.one/t/php-class-api-requests-for-scripting-languages-and-harmony-node-api-explorer/11306/3 "2022-02-09T18:35:25Z")

</div>

Thanks for submitting this proposal.

Can you break this bounty down to the number of person days per each of the milestones, and when’s the expected completion date / duration?

---

<div class="post-metadata">

**Author:** ![ILL\_DIE\_TRYING](https://yyz1.discourse-cdn.com/flex035/user_avatar/talk.harmony.one/ill_die_trying/32/14381_2.png) [@ILL\_DIE\_TRYING](https://talk.harmony.one/u/ILL_DIE_TRYING)\
**Post date:** [February 9, 2022, 10:12pm UTC](https://talk.harmony.one/t/php-class-api-requests-for-scripting-languages-and-harmony-node-api-explorer/11306/4 "2022-02-09T22:12:07Z")

</div>

Hello!

I edited the original post and expanded on time, people days as requested, and a little bit more.

Thank You for the opportunity!

If you need anything else please let me know. I hope I got you what you were looking for this time.

---

<div class="post-metadata">

**Author:** ![Jacksteroo](https://yyz1.discourse-cdn.com/flex035/user_avatar/talk.harmony.one/jacksteroo/32/15609_2.png) [@Jacksteroo](https://talk.harmony.one/u/Jacksteroo)\
**Post date:** [February 9, 2022, 10:26pm UTC](https://talk.harmony.one/t/php-class-api-requests-for-scripting-languages-and-harmony-node-api-explorer/11306/5 "2022-02-09T22:26:01Z")

</div>

All good. PHP fan here. This will help web2 developers adopt quicker. I can see this expand to other languages like Python, Javascript, etc. Can you add more time around UX to [https://phph1.saddlerockit.com/](https://phph1.saddlerockit.com/)? Super important component for adoption.

Also, can you estimate the equivalent dollar estimate, per our bounty guidelines?

---

<div class="post-metadata">

**Author:** ![ILL\_DIE\_TRYING](https://yyz1.discourse-cdn.com/flex035/user_avatar/talk.harmony.one/ill_die_trying/32/14381_2.png) [@ILL\_DIE\_TRYING](https://talk.harmony.one/u/ILL_DIE_TRYING)\
**Post date:** [February 9, 2022, 10:38pm UTC](https://talk.harmony.one/t/php-class-api-requests-for-scripting-languages-and-harmony-node-api-explorer/11306/6 "2022-02-09T22:38:59Z")

</div>

I already have a newer and MUCH nicer interface started. If you would like, I can make a short video of it so you can see where I am going. I’m not the best UI/UX guy but I think the latest version on my dev site will hit the mark. I searched the site for bounty guidelines and found a page but it didn’t mention anything about man hours or such. Could you direct me please?

 ![menu](https://canada1.discourse-cdn.com/flex035/uploads/harmony1/original/2X/4/42d34cdf52c7b0f6b3c4f2d7f0f7c38bf0af5dde.jpeg)

---

<div class="post-metadata">

**Author:** ![ILL\_DIE\_TRYING](https://yyz1.discourse-cdn.com/flex035/user_avatar/talk.harmony.one/ill_die_trying/32/14381_2.png) [@ILL\_DIE\_TRYING](https://talk.harmony.one/u/ILL_DIE_TRYING)\
**Post date:** [February 9, 2022, 10:56pm UTC](https://talk.harmony.one/t/php-class-api-requests-for-scripting-languages-and-harmony-node-api-explorer/11306/7 "2022-02-09T22:56:46Z")

</div>

Sorry it would only let me put one pic in a post.

 ![settings_desktop](https://canada1.discourse-cdn.com/flex035/uploads/harmony1/original/2X/c/c69b42630ee6b1de64e9a72308a71f30094dbb19.jpeg)

---

<div class="post-metadata">

**Author:** ![ILL\_DIE\_TRYING](https://yyz1.discourse-cdn.com/flex035/user_avatar/talk.harmony.one/ill_die_trying/32/14381_2.png) [@ILL\_DIE\_TRYING](https://talk.harmony.one/u/ILL_DIE_TRYING)\
**Post date:** [February 9, 2022, 11:47pm UTC](https://talk.harmony.one/t/php-class-api-requests-for-scripting-languages-and-harmony-node-api-explorer/11306/8 "2022-02-09T23:47:36Z")

</div>

Just making sure I found the right place. Is this correct?

“We recommend $10K-$200K as a bounty’s reward, small teams of 1-3 persons engaging over 3-12 weeks, and effective hourly rates of $110-$185”

---

<div class="post-metadata">

**Author:** ![Jacksteroo](https://yyz1.discourse-cdn.com/flex035/user_avatar/talk.harmony.one/jacksteroo/32/15609_2.png) [@Jacksteroo](https://talk.harmony.one/u/Jacksteroo)\
**Post date:** [February 11, 2022, 9:33am UTC](https://talk.harmony.one/t/php-class-api-requests-for-scripting-languages-and-harmony-node-api-explorer/11306/9 "2022-02-11T09:33:36Z")

</div>

Correct.

The documentation should present itself similarly to industry standard docs. Some examples:

- [Programmable Messaging PHP Quickstart - Send & Receive SMS | Twilio](https://www.twilio.com/docs/sms/quickstart/php)
- [REST API Documentation Tool | Swagger UI](https://swagger.io/tools/swagger-ui/)

Or use GitBook

---

<div class="post-metadata">

**Author:** ![ILL\_DIE\_TRYING](https://yyz1.discourse-cdn.com/flex035/user_avatar/talk.harmony.one/ill_die_trying/32/14381_2.png) [@ILL\_DIE\_TRYING](https://talk.harmony.one/u/ILL_DIE_TRYING)\
**Post date:** [February 11, 2022, 12:22pm UTC](https://talk.harmony.one/t/php-class-api-requests-for-scripting-languages-and-harmony-node-api-explorer/11306/10 "2022-02-11T12:22:02Z")

</div>

I actually have plans for built in documentation. It should be extremely similar to what is seen in the Postman documentation at [https://api.hmny.io/](https://api.hmny.io/) . The home page would include installation, usage, and other stuff, each method would have its specific documentation built into the method page. I’ve almost got a template complete for the new design and methods. Once I get everything where I am satisfied, I will upload the new version with limited methods for the time being and feedback while I convert each method to the new design. I’m hoping and believe it will be well received. I’ll update the ask ASAP as I am working for a client at the moment. Thank you for the assist!

Edit: I have to kind of chuckle at this. I was very tired this morning. Would PHP Documenter be sufficient for documenting the class?

---

<div class="post-metadata">

**Author:** ![ILL\_DIE\_TRYING](https://yyz1.discourse-cdn.com/flex035/user_avatar/talk.harmony.one/ill_die_trying/32/14381_2.png) [@ILL\_DIE\_TRYING](https://talk.harmony.one/u/ILL_DIE_TRYING)\
**Post date:** [February 11, 2022, 2:07pm UTC](https://talk.harmony.one/t/php-class-api-requests-for-scripting-languages-and-harmony-node-api-explorer/11306/11 "2022-02-11T14:07:39Z")

</div>

Screenshots of where I am currently at with the method documentation portion of the template. The documentation for the method isn’t formatted yet but _should_ come out looking like the postman docs pretty much. As you can see, with every method I will be coloring the required fields in the form. Feedback is welcome!

 ![params1](https://canada1.discourse-cdn.com/flex035/uploads/harmony1/original/2X/1/1c9e7fad84e4ee62491a96207231314fbef3689c.jpeg)  
 ![params2](https://canada1.discourse-cdn.com/flex035/uploads/harmony1/original/2X/3/34bf9616b2b6c7d70554f66cfcb34aded19b68ab.jpeg)

---

<div class="post-metadata">

**Author:** ![ILL\_DIE\_TRYING](https://yyz1.discourse-cdn.com/flex035/user_avatar/talk.harmony.one/ill_die_trying/32/14381_2.png) [@ILL\_DIE\_TRYING](https://talk.harmony.one/u/ILL_DIE_TRYING)\
**Post date:** [February 11, 2022, 2:14pm UTC](https://talk.harmony.one/t/php-class-api-requests-for-scripting-languages-and-harmony-node-api-explorer/11306/12 "2022-02-11T14:14:59Z")

</div>

Sorry for multiple replies. For some reason I am unable to locate the edit button for the original post so I can enter my ask portion. Do they lock after so long or something maybe?

---

<div class="post-metadata">

**Author:** ![ILL\_DIE\_TRYING](https://yyz1.discourse-cdn.com/flex035/user_avatar/talk.harmony.one/ill_die_trying/32/14381_2.png) [@ILL\_DIE\_TRYING](https://talk.harmony.one/u/ILL_DIE_TRYING)\
**Post date:** [February 15, 2022, 12:25am UTC](https://talk.harmony.one/t/php-class-api-requests-for-scripting-languages-and-harmony-node-api-explorer/11306/13 "2022-02-15T00:25:23Z")

</div>

Please have a look at [https://phph1.saddlerockit.com](https://phph1.saddlerockit.com)  
Be sure to try on your phone as well

There is only one working method so far as I have focused hard on the interface. Feel free to try changing from mainnet to testnet or shards or whatever. When you open the one method, there is a bar above the form you can click.

---

<div class="post-metadata">

**Author:** ![ILL\_DIE\_TRYING](https://yyz1.discourse-cdn.com/flex035/user_avatar/talk.harmony.one/ill_die_trying/32/14381_2.png) [@ILL\_DIE\_TRYING](https://talk.harmony.one/u/ILL_DIE_TRYING)\
**Post date:** [February 15, 2022, 3:34pm UTC](https://talk.harmony.one/t/php-class-api-requests-for-scripting-languages-and-harmony-node-api-explorer/11306/14 "2022-02-15T15:34:30Z")

</div>

Just leaving a note. There has been work done on the Harmony API documentation recently which will expand the scope of my work. Also the documentation will expand the scope of work a little bit as well. Great to see work being done in this area!

---

<div class="post-metadata">

**Author:** ![ILL\_DIE\_TRYING](https://yyz1.discourse-cdn.com/flex035/user_avatar/talk.harmony.one/ill_die_trying/32/14381_2.png) [@ILL\_DIE\_TRYING](https://talk.harmony.one/u/ILL_DIE_TRYING)\
**Post date:** [February 24, 2022, 11:05am UTC](https://talk.harmony.one/t/php-class-api-requests-for-scripting-languages-and-harmony-node-api-explorer/11306/15 "2022-02-24T11:05:41Z")

</div>

Hello! I am sure you have been very busy doing the conference and catching up afterwards. Just a friendly reminder I am here and still working on this project. I would love to be able to finish out this request so I know it is complete whether I am accepted or not. I just can’t edit the original request anymore for some reason. I appreciate the opportunity to apply at the very least. Have a good one!

---

<div class="post-metadata">

**Author:** ![Jacksteroo](https://yyz1.discourse-cdn.com/flex035/user_avatar/talk.harmony.one/jacksteroo/32/15609_2.png) [@Jacksteroo](https://talk.harmony.one/u/Jacksteroo)\
**Post date:** [March 3, 2022, 5:07am UTC](https://talk.harmony.one/t/php-class-api-requests-for-scripting-languages-and-harmony-node-api-explorer/11306/16 "2022-03-03T05:07:36Z")

</div>

Updated your account @ILL_DIE_TRYING

Can you help justify the total ask based on the guidelines mentioned

> “We recommend $10K-$200K as a bounty’s reward, small teams of 1-3 persons engaging over 3-12 weeks, and effective hourly rates of $110-$185”

Thanks

---

<div class="post-metadata">

**Author:** ![ILL\_DIE\_TRYING](https://yyz1.discourse-cdn.com/flex035/user_avatar/talk.harmony.one/ill_die_trying/32/14381_2.png) [@ILL\_DIE\_TRYING](https://talk.harmony.one/u/ILL_DIE_TRYING)\
**Post date:** [March 3, 2022, 3:34pm UTC](https://talk.harmony.one/t/php-class-api-requests-for-scripting-languages-and-harmony-node-api-explorer/11306/17 "2022-03-03T15:34:06Z")

</div>

Hello!

I believe I have everything needed now. Please review the entire proposal as much of it has been rewritten. My ask is also there. Thank you for such an opportunity! I never imagined I would be applying for something like this when I started building this project.

---

<div class="post-metadata">

**Author:** ![Jacksteroo](https://yyz1.discourse-cdn.com/flex035/user_avatar/talk.harmony.one/jacksteroo/32/15609_2.png) [@Jacksteroo](https://talk.harmony.one/u/Jacksteroo)\
**Post date:** [March 3, 2022, 6:40pm UTC](https://talk.harmony.one/t/php-class-api-requests-for-scripting-languages-and-harmony-node-api-explorer/11306/18 "2022-03-03T18:40:32Z")

</div>

Thanks for updating the proposal.

Approved for a **Bounty** grant of $26,400. Congratulations to the team and thank you for continuing to update the community with the developments on this to expand the Harmony Ecosystem! 🎉

Looking forward to the initiative to launch on Harmony’s Mainnet with the milestones above.

> Meanwhile, to prepare receiving funds, email your identification documents to [kyc@harmony.one](mailto:kyc@harmony.one) and create a Gnosis Safe MultiSig wallet at [https://multisig.harmony.one](https://multisig.harmony.one/) and using instructions below  
> ➡ [Setup Gnosis Safe with MetaMask & 1Wallet](https://open.harmony.one/onequest-daily-race-for-1m-users/setup-gnosis-safe-with-metamask-1wallet)

Checkout the Funding FAQ for further info at [Harmony Funding FAQ](https://harmony.one/funding-faq)

We’d love 💙 to see weekly updates on this channel to keep the community posted on this proposal’s progress!

---

<div class="post-metadata">

**Author:** ![ILL\_DIE\_TRYING](https://yyz1.discourse-cdn.com/flex035/user_avatar/talk.harmony.one/ill_die_trying/32/14381_2.png) [@ILL\_DIE\_TRYING](https://talk.harmony.one/u/ILL_DIE_TRYING)\
**Post date:** [March 3, 2022, 6:50pm UTC](https://talk.harmony.one/t/php-class-api-requests-for-scripting-languages-and-harmony-node-api-explorer/11306/19 "2022-03-03T18:50:00Z")

</div>

OMG! THANK YOU ALL!! I will be busy today so won’t be able to do anything until tonight or tomorrow morning. Again, thank you and the team so much!

---

<div class="post-metadata">

**Author:** ![Zorbax](https://avatars.discourse-cdn.com/v4/letter/z/2bfe46/32.png) [@Zorbax](https://talk.harmony.one/u/Zorbax)\
**Post date:** [March 3, 2022, 8:58pm UTC](https://talk.harmony.one/t/php-class-api-requests-for-scripting-languages-and-harmony-node-api-explorer/11306/20 "2022-03-03T20:58:47Z")

</div>

Congrats for the approval!

[Next page](https://talk.harmony.one/t/php-class-api-requests-for-scripting-languages-and-harmony-node-api-explorer/11306.md?page=2)
