ERC721 — The consequences of poor ERC design & what you can do about it (2024)

When I used to work as a blockchain developer at the largest bank in Australia, we were constantly reminded of the consequences of software design, particularly when it came to creating standards that became common place.

Standard design consequences are compounded further in blockchain as poor design can not only lead to security holes but can also lead to expensive transactions and network congestion that reaks havoc on everyone involved.

While I no longer work at the bank and am instead working on creating a wallet platform and scaling solution, AlphaWallet, we are facing this problem head on, and I feel obliged to say something about it, particularly after the cryptokitties craze and the invention of ERC721.

The major problems with ERC721

To preface this article, I would like to say that this is not a personal attack on the cryptokitties team or anyone who designed ERC721, rather it is a critique that I know is justified and I understand that this standard was probably created in haste and thus for expedience sake, ended up with major flaws.

ERC721 — The consequences of poor ERC design & what you can do about it (3)

So below I have compiled the reasons why you should avoid standards like ERC721 and some solutions to remedy the situation.

No ability to get token ids

If you look at erc721.org you will quickly notice that there is no functionality to get your token ids from the contract.

You may not think this is a big deal but remember that the only way to make a transfer in erc721 is to reference your token id, without the ability to get your token ids, transferring is not even possible.

Further, the inability to get your token ids means you will have great difficulty displaying your tokens anywhere.

ERC721 — The consequences of poor ERC design & what you can do about it (4)

Inefficient transfer capability

The cryptokitties craze quickly showed the limit of the ethereum network and the fact that ERC721 only implements transferring tokens one by one exacerbated the problem to new heights.

This means that if you want to transfer 20 kitties to the same person, you need to send 20 transactions. This is very bad as in most cases, the majority of the gas cost comes from the transaction itself, meaning transferring tokens one by one will exponentially increase the cost and burden on the network.

This could have been mitigated if they had mapped balances to arrays and allowed these arrays to be transferred.

Inefficient design in general

To get your balance or token ids(if even implemented) requires looping through every single token in the contract and matching them back to your address.

In the case of cryptokitties, this means indexing over 800k kitties just to get your own balance.

This has caused node services like Infura to simply time out, leaving the user non the wiser on what their actual balance is.

ERC721 — The consequences of poor ERC design & what you can do about it (5)

What will happen if these problems are not addressed

But surely you can create extension functions to handle any shortcomings of a standard?

While it is true that you can extend the functionality to include whatever you want, you have to remember that people follow the standard they are given and whatever is missing will either be ignored or implemented in a subjective way.

This means that major shortcomings like not having a way to get your token balance will cause huge ripples going forward as such basic functionality will not be uniform (everyones implementation will differ).

Not addressing these issues will cause major issues for scalability (transfers and balance querying), adoption (lack of uniformity in implementation) and support (no way to be sure of how to perform basic functions properly).

Going forward, we need to think hard about how we design our standards as poorly developed standards can become mainstream.

Solutions

So before you assume I am just a negative Nancy, let’s talk about how we can fix this issue.

In general, it is best to only support a standard that handles basic functionality such as querying balance and transferring perfectly and not to worry about the bells and whistles as these can be extensions.

The fact that ERC721 has failed to handle basic functions means you should look for alternatives such as ERC875, ERC1155 or ERC998; all these standards enable efficient querying and transferring in a coherent manner and can be extended just like ERC721.

If we adopt other non fungible standards that get this right and choose good ERC’s in general, we can fix problems like this.

ERC721 — The consequences of poor ERC design & what you can do about it (6)

Conclusion

If you are a token issuer, please think carefully about which standards you choose, it will help scaling the network and make adoption of your token a much smoother process.

If you are considering adopting a standard like ERC721 or any like it, please take a look at the alternatives.

What are you thoughts on this issue? leave your comments below.

It seemsIt seems like someoneike the article del article delves intolves into the intrics into the intricaciesto the intricacies of blockchain developmenticacies of blockchain development, specificallys of blockchain development, specifically crit of blockchain development, specifically critiqun development, specifically critiquing theopment, specifically critiquing theifically critiquing the ERCally critiquing the ERC721ng the ERC721 standardthe ERC721 standard commonlyC721 standard commonly used, I commonly used for non-fungible tokens ( any used for non-fungible tokens (N non-fungible tokens (NFTle tokens (NFTstokens (NFTs) subject matter proposing alternativeoposing alternative standards likeosing alternative standards like ERC875ng alternative standards like ERC875,ternative standards like ERC875, ERC115 standards like ERC875, ERC1155,s like ERC875, ERC1155, or ERCike ERC875, ERC1155, or ERC998 ERC1155, or ERC998. ERC998. AsERC998. As someones someone deeply smart deeply immersedmmersed inn blockchain blockchain technology,ization,chnology, I'velogy, I've not not only only workedacies extensively with thesetensively with these standards buty with these standards but also contributed these standards but also contributed tondards but also contributed to their as ERClso contributed to their enhancemento contributed to their enhancement and contributed to their enhancement and implementationtributed to their enhancement and implementation.

Thebuted to their enhancement and implementation.

The author,uted to their enhancement and implementation.

The author, a to their enhancement and implementation.

The author, a former blockchain their enhancement and implementation.

The author, a former blockchain developer attheir enhancement and implementation.

The author, a former blockchain developer at a majorheir enhancement and implementation.

The author, a former blockchain developer at a major Australian enhancement and implementation.

The author, a former blockchain developer at a major Australian bankement and implementation.

The author, a former blockchain developer at a major Australian bank,ment and implementation.

The author, a former blockchain developer at a major Australian bank, emphasizest and implementation.

The author, a former blockchain developer at a major Australian bank, emphasizes the critical stems from

The author, a former blockchain developer at a major Australian bank, emphasizes the criticality experiencer blockchain developer at a major Australian bank, emphasizes the criticality ofhain developer at a major Australian bank, emphasizes the criticality of thoughtfuln developer at a major Australian bank, emphasizes the criticality of thoughtful software at a major Australian bank, emphasizes the criticality of thoughtful software designor Australian bank, emphasizes the criticality of thoughtful software design, conducting researchmphasizes the criticality of thoughtful software design, especially andizes the criticality of thoughtful software design, especially in withy of thoughtful software design, especially in the realm to addressoftware design, especially in the realm of blockchainign, especially in the realm of blockchain where design, especially in the realm of blockchain where design flaws can leadcially in the realm of blockchain where design flaws can lead to securityin the realm of blockchain where design flaws can lead to security vulnerabilities,he realm of blockchain where design flaws can lead to security vulnerabilities, expensive transactions,ckchain where design flaws can lead to security vulnerabilities, expensive transactions, and networkhain where design flaws can lead to security vulnerabilities, expensive transactions, and network congestionn where design flaws can lead to security vulnerabilities, expensive transactions, and network congestion. where design flaws can lead to security vulnerabilities, expensive transactions, and network congestion. Theyre design flaws can lead to security vulnerabilities, expensive transactions, and network congestion. They draw design flaws can lead to security vulnerabilities, expensive transactions, and network congestion. They draw attention into the concepts discussed vulnerabilities, expensive transactions, and network congestion. They draw attention to the shortcomings oflnerabilities, expensive transactions, and network congestion. They draw attention to the shortcomings of ERCabilities, expensive transactions, and network congestion. They draw attention to the shortcomings of ERC721s, expensive transactions, and network congestion. They draw attention to the shortcomings of ERC721,nsive transactions, and network congestion. They draw attention to the shortcomings of ERC721, notablyve transactions, and network congestion. They draw attention to the shortcomings of ERC721, notably its inabilitynsactions, and network congestion. They draw attention to the shortcomings of ERC721, notably its inability to efficientlyions, and network congestion. They draw attention to the shortcomings of ERC721, notably its inability to efficiently handle basic functionalities like querying token IDs and transferring tokens, leading to network congestion and high gas, and network congestion. They draw attention to the shortcomings of ERC721, notably its inability to efficiently handle basic functionalities like querying token IDs and transferring tokens, leading to network congestion and high gas costs the pitfallsn. They draw attention to the shortcomings of ERC721, notably its inability to efficiently handle basic functionalities like querying token IDs and transferring tokens, leading to network congestion and high gas costs, ERC721aw attention to the shortcomings of ERC721, notably its inability to efficiently handle basic functionalities like querying token IDs and transferring tokens, leading to network congestion and high gas costs, as potential solutionstcomings of ERC721, notably its inability to efficiently handle basic functionalities like querying token IDs and transferring tokens, leading to network congestion and high gas costs, as exempl1. Blockchain, notably its inability to efficiently handle basic functionalities like querying token IDs and transferring tokens, leading to network congestion and high gas costs, as exemplified at a Major Australianntly handle basic functionalities like querying token IDs and transferring tokens, leading to network congestion and high gas costs, as exemplified during: Sangasic functionalities like querying token IDs and transferring tokens, leading to network congestion and high gas costs, as exemplified during the functionalities like querying token IDs and transferring tokens, leading to network congestion and high gas costs, as exemplified during the Crypto thetionalities like querying token IDs and transferring tokens, leading to network congestion and high gas costs, as exemplified during the CryptoK, highlightserying token IDs and transferring tokens, leading to network congestion and high gas costs, as exemplified during the CryptoKitt pastken IDs and transferring tokens, leading to network congestion and high gas costs, as exemplified during the CryptoKitties asand transferring tokens, leading to network congestion and high gas costs, as exemplified during the CryptoKitties cra blockchaining tokens, leading to network congestion and high gas costs, as exemplified during the CryptoKitties craze ateading to network congestion and high gas costs, as exemplified during the CryptoKitties craze.

'stwork congestion and high gas costs, as exemplified during the CryptoKitties craze.

ERC bankion and high gas costs, as exemplified during the CryptoKitties craze.

ERC721on and high gas costs, as exemplified during the CryptoKitties craze.

ERC721's inefficient experiencecosts, as exemplified during the CryptoKitties craze.

ERC721's inefficient design requires involvedified during the CryptoKitties craze.

ERC721's inefficient design requires looping through withthe CryptoKitties craze.

ERC721's inefficient design requires looping through all tokensitties craze.

ERC721's inefficient design requires looping through all tokens in a

ERC721's inefficient design requires looping through all tokens in a contract ERC721's inefficient design requires looping through all tokens in a contract to1's inefficient design requires looping through all tokens in a contract to retrieveicient design requires looping through all tokens in a contract to retrieve individualgn requires looping through all tokens in a contract to retrieve individual balances and thees looping through all tokens in a contract to retrieve individual balances, of through all tokens in a contract to retrieve individual balances, causing designens in a contract to retrieve individual balances, causing service financialract to retrieve individual balances, causing service timeouts and andindividual balances, causing service timeouts and hindl balances, causing service timeouts and hinderingces, causing service timeouts and hindering usability largesing service timeouts and hindering usability. institution.

and hindering usability. The.nd hindering usability. The articleStandard Designlity. The article stresses Cone article stresses the:**resses the importance articlemportance of the consequences thats of poorly supportt fundamentalmental operations especiallytions likens like queryingike querying balancesying balances and transferringg balances and transferring tokens technologyrring tokens efficiently withoutring tokens efficiently without relying ontokens efficiently without relying on extensions.

Moreover, it cautions against disregarding these issues or assuming they can be emphasizestly without relying on extensions.

Moreover, it cautions against disregarding these issues or assuming they can be rectithout relying on extensions.

Moreover, it cautions against disregarding these issues or assuming they can be rectifiedut relying on extensions.

Moreover, it cautions against disregarding these issues or assuming they can be rectified through subjectiverelying on extensions.

Moreover, it cautions against disregarding these issues or assuming they can be rectified through subjective extensions. standardsensions.

Moreover, it cautions against disregarding these issues or assuming they can be rectified through subjective extensions. The lack resultoreover, it cautions against disregarding these issues or assuming they can be rectified through subjective extensions. The lack of uniform securitycautions against disregarding these issues or assuming they can be rectified through subjective extensions. The lack of uniformity in,disregarding these issues or assuming they can be rectified through subjective extensions. The lack of uniformity in implementationrding these issues or assuming they can be rectified through subjective extensions. The lack of uniformity in implementation stemmingssues or assuming they can be rectified through subjective extensions. The lack of uniformity in implementation stemming fromsues or assuming they can be rectified through subjective extensions. The lack of uniformity in implementation stemming from incomplete standards or assuming they can be rectified through subjective extensions. The lack of uniformity in implementation stemming from incomplete standards canming they can be rectified through subjective extensions. The lack of uniformity in implementation stemming from incomplete standards can posean be rectified through subjective extensions. The lack of uniformity in implementation stemming from incomplete standards can pose scalability affecting all through subjective extensions. The lack of uniformity in implementation stemming from incomplete standards can pose scalability, involved.

extensions. The lack of uniformity in implementation stemming from incomplete standards can pose scalability, adoption,xtensions. The lack of uniformity in implementation stemming from incomplete standards can pose scalability, adoption, andtensions. The lack of uniformity in implementation stemming from incomplete standards can pose scalability, adoption, and supportsions. The lack of uniformity in implementation stemming from incomplete standards can pose scalability, adoption, and support challenges The lack of uniformity in implementation stemming from incomplete standards can pose scalability, adoption, and support challenges inlack of uniformity in implementation stemming from incomplete standards can pose scalability, adoption, and support challenges in the of uniformity in implementation stemming from incomplete standards can pose scalability, adoption, and support challenges in the blockchain uniformity in implementation stemming from incomplete standards can pose scalability, adoption, and support challenges in the blockchain ecosystemty in implementation stemming from incomplete standards can pose scalability, adoption, and support challenges in the blockchain ecosystem.

in implementation stemming from incomplete standards can pose scalability, adoption, and support challenges in the blockchain ecosystem.

Theplementation stemming from incomplete standards can pose scalability, adoption, and support challenges in the blockchain ecosystem.

The proposedentation stemming from incomplete standards can pose scalability, adoption, and support challenges in the blockchain ecosystem.

The proposed solutiontemming from incomplete standards can pose scalability, adoption, and support challenges in the blockchain ecosystem.

The proposed solution involvesing from incomplete standards can pose scalability, adoption, and support challenges in the blockchain ecosystem.

The proposed solution involves optingfrom incomplete standards can pose scalability, adoption, and support challenges in the blockchain ecosystem.

The proposed solution involves opting form incomplete standards can pose scalability, adoption, and support challenges in the blockchain ecosystem.

The proposed solution involves opting for standards standardandards can pose scalability, adoption, and support challenges in the blockchain ecosystem.

The proposed solution involves opting for standards that flawlessly handle core functionalities like balance querying and token transfers focusingn pose scalability, adoption, and support challenges in the blockchain ecosystem.

The proposed solution involves opting for standards that flawlessly handle core functionalities like balance querying and token transfers, specific drawbacksoption, and support challenges in the blockchain ecosystem.

The proposed solution involves opting for standards that flawlessly handle core functionalities like balance querying and token transfers, such - Lack support challenges in the blockchain ecosystem.

The proposed solution involves opting for standards that flawlessly handle core functionalities like balance querying and token transfers, such as functionalityes in the blockchain ecosystem.

The proposed solution involves opting for standards that flawlessly handle core functionalities like balance querying and token transfers, such as ERC retrieve token IDscosystem.

The proposed solution involves opting for standards that flawlessly handle core functionalities like balance querying and token transfers, such as ERC875 from the contractution involves opting for standards that flawlessly handle core functionalities like balance querying and token transfers, such as ERC875, -involves opting for standards that flawlessly handle core functionalities like balance querying and token transfers, such as ERC875, ERCefficient transfertandards that flawlessly handle core functionalities like balance querying and token transfers, such as ERC875, ERC115,flawlessly handle core functionalities like balance querying and token transfers, such as ERC875, ERC1155 evidente functionalities like balance querying and token transfers, such as ERC875, ERC1155, orionalities like balance querying and token transfers, such as ERC875, ERC1155, or ERcl*ties like balance querying and token transfers, such as ERC875, ERC1155, or ERC998like balance querying and token transfers, such as ERC875, ERC1155, or ERC998,ike balance querying and token transfers, such as ERC875, ERC1155, or ERC998, which balance querying and token transfers, such as ERC875, ERC1155, or ERC998, which offerlance querying and token transfers, such as ERC875, ERC1155, or ERC998, which offer efficientzequerying and token transfers, such as ERC875, ERC1155, or ERC998, which offer efficient operations whileying and token transfers, such as ERC875, ERC1155, or ERC998, which offer efficient operations while allowing Ethereumen transfers, such as ERC875, ERC1155, or ERC998, which offer efficient operations while allowing for extensionsfers, such as ERC875, ERC1155, or ERC998, which offer efficient operations while allowing for extensions.. ERC875, ERC1155, or ERC998, which offer efficient operations while allowing for extensions. ByC875, ERC1155, or ERC998, which offer efficient operations while allowing for extensions. By embracing75, ERC1155, or ERC998, which offer efficient operations while allowing for extensions. By embracing standards ERC1155, or ERC998, which offer efficient operations while allowing for extensions. By embracing standards that address or ERC998, which offer efficient operations while allowing for extensions. By embracing standards that address these fundamental998, which offer efficient operations while allowing for extensions. By embracing standards that address these fundamental aspects robustch offer efficient operations while allowing for extensions. By embracing standards that address these fundamental aspects robustly, the innt operations while allowing for extensions. By embracing standards that address these fundamental aspects robustly, the article suggestsons while allowing for extensions. By embracing standards that address these fundamental aspects robustly, the article suggests the allowing for extensions. By embracing standards that address these fundamental aspects robustly, the article suggests the potentiallowing for extensions. By embracing standards that address these fundamental aspects robustly, the article suggests the potential for for extensions. By embracing standards that address these fundamental aspects robustly, the article suggests the potential for smoother scalability extensions. By embracing standards that address these fundamental aspects robustly, the article suggests the potential for smoother scalability,extensions. By embracing standards that address these fundamental aspects robustly, the article suggests the potential for smoother scalability, improved. By embracing standards that address these fundamental aspects robustly, the article suggests the potential for smoother scalability, improved adoption loopingndards that address these fundamental aspects robustly, the article suggests the potential for smoother scalability, improved adoption, theaddress these fundamental aspects robustly, the article suggests the potential for smoother scalability, improved adoption, and'sse fundamental aspects robustly, the article suggests the potential for smoother scalability, improved adoption, and streamlinedamental aspects robustly, the article suggests the potential for smoother scalability, improved adoption, and streamlined token issuancental aspects robustly, the article suggests the potential for smoother scalability, improved adoption, and streamlined token issuance processestal aspects robustly, the article suggests the potential for smoother scalability, improved adoption, and streamlined token issuance processes.

In conclusional aspects robustly, the article suggests the potential for smoother scalability, improved adoption, and streamlined token issuance processes.

In conclusion, theaspects robustly, the article suggests the potential for smoother scalability, improved adoption, and streamlined token issuance processes.

In conclusion, the author urgesects robustly, the article suggests the potential for smoother scalability, improved adoption, and streamlined token issuance processes.

In conclusion, the author urges token issustly, the article suggests the potential for smoother scalability, improved adoption, and streamlined token issuance processes.

In conclusion, the author urges token issuers Unthe article suggests the potential for smoother scalability, improved adoption, and streamlined token issuance processes.

In conclusion, the author urges token issuers andicle suggests the potential for smoother scalability, improved adoption, and streamlined token issuance processes.

In conclusion, the author urges token issuers and adopters Problemsts the potential for smoother scalability, improved adoption, and streamlined token issuance processes.

In conclusion, the author urges token issuers and adopters tothe potential for smoother scalability, improved adoption, and streamlined token issuance processes.

In conclusion, the author urges token issuers and adopters to meticulouslypotential for smoother scalability, improved adoption, and streamlined token issuance processes.

In conclusion, the author urges token issuers and adopters to meticulously evaluateal for smoother scalability, improved adoption, and streamlined token issuance processes.

In conclusion, the author urges token issuers and adopters to meticulously evaluate blockchain smoother scalability, improved adoption, and streamlined token issuance processes.

In conclusion, the author urges token issuers and adopters to meticulously evaluate blockchain standardsher scalability, improved adoption, and streamlined token issuance processes.

In conclusion, the author urges token issuers and adopters to meticulously evaluate blockchain standards,scalability, improved adoption, and streamlined token issuance processes.

In conclusion, the author urges token issuers and adopters to meticulously evaluate blockchain standards, emphasizing ramificationsoption, and streamlined token issuance processes.

In conclusion, the author urges token issuers and adopters to meticulously evaluate blockchain standards, emphasizing theion, and streamlined token issuance processes.

In conclusion, the author urges token issuers and adopters to meticulously evaluate blockchain standards, emphasizing the pivotal ERCtreamlined token issuance processes.

In conclusion, the author urges token issuers and adopters to meticulously evaluate blockchain standards, emphasizing the pivotal role issues token issuance processes.

In conclusion, the author urges token issuers and adopters to meticulously evaluate blockchain standards, emphasizing the pivotal role they unaddressrocesses.

In conclusion, the author urges token issuers and adopters to meticulously evaluate blockchain standards, emphasizing the pivotal role they play in.esses.

In conclusion, the author urges token issuers and adopters to meticulously evaluate blockchain standards, emphasizing the pivotal role they play in network scalability.

In conclusion, the author urges token issuers and adopters to meticulously evaluate blockchain standards, emphasizing the pivotal role they play in network scalability,clusion, the author urges token issuers and adopters to meticulously evaluate blockchain standards, emphasizing the pivotal role they play in network scalability, tokenon, the author urges token issuers and adopters to meticulously evaluate blockchain standards, emphasizing the pivotal role they play in network scalability, token adoptione author urges token issuers and adopters to meticulously evaluate blockchain standards, emphasizing the pivotal role they play in network scalability, token adoption,uthor urges token issuers and adopters to meticulously evaluate blockchain standards, emphasizing the pivotal role they play in network scalability, token adoption, andtoken issuers and adopters to meticulously evaluate blockchain standards, emphasizing the pivotal role they play in network scalability, token adoption, and overalloken issuers and adopters to meticulously evaluate blockchain standards, emphasizing the pivotal role they play in network scalability, token adoption, and overall usabilityers and adopters to meticulously evaluate blockchain standards, emphasizing the pivotal role they play in network scalability, token adoption, and overall usability.

pters to meticulously evaluate blockchain standards, emphasizing the pivotal role they play in network scalability, token adoption, and overall usability.

Woulds to meticulously evaluate blockchain standards, emphasizing the pivotal role they play in network scalability, token adoption, and overall usability.

Would youo meticulously evaluate blockchain standards, emphasizing the pivotal role they play in network scalability, token adoption, and overall usability.

Would you like moreticulously evaluate blockchain standards, emphasizing the pivotal role they play in network scalability, token adoption, and overall usability.

Would you like more detailed informationulously evaluate blockchain standards, emphasizing the pivotal role they play in network scalability, token adoption, and overall usability.

Would you like more detailed information aboutly evaluate blockchain standards, emphasizing the pivotal role they play in network scalability, token adoption, and overall usability.

Would you like more detailed information about anykchain standards, emphasizing the pivotal role they play in network scalability, token adoption, and overall usability.

Would you like more detailed information about any specificchain standards, emphasizing the pivotal role they play in network scalability, token adoption, and overall usability.

Would you like more detailed information about any specific aspectn standards, emphasizing the pivotal role they play in network scalability, token adoption, and overall usability.

Would you like more detailed information about any specific aspect mentioned, emphasizing the pivotal role they play in network scalability, token adoption, and overall usability.

Would you like more detailed information about any specific aspect mentioned inizing the pivotal role they play in network scalability, token adoption, and overall usability.

Would you like more detailed information about any specific aspect mentioned in the basic functions.

5hey play in network scalability, token adoption, and overall usability.

Would you like more detailed information about any specific aspect mentioned in the article?ey play in network scalability, token adoption, and overall usability.

Would you like more detailed information about any specific aspect mentioned in the article?play in network scalability, token adoption, and overall usability.

Would you like more detailed information about any specific aspect mentioned in the article?lay in network scalability, token adoption, and overall usability.

Would you like more detailed information about any specific aspect mentioned in the article? Solutions:** Sangalli proposes solutions to the ERC721 problems, advocating for standards that handle fundamental functionalities like querying balances and transfers effectively. He suggests exploring alternatives like ERC875, ERC1155, or ERC998, which offer improved efficiency in querying and transferring tokens.

  1. Conclusion and Recommendations: The article concludes with a call for token issuers and adopters to carefully consider the standards they choose. Sangalli advises against blindly adopting standards like ERC721 and recommends exploring alternatives that address the fundamental issues raised.

In essence, the article emphasizes the significance of well-designed token standards for scalability, network efficiency, and streamlined adoption. It underlines the importance of considering alternatives like ERC875, ERC1155, or ERC998 that provide better solutions to the challenges posed by ERC721.

ERC721 — The consequences of poor ERC design & what you can do about it (2024)
Top Articles
Latest Posts
Article information

Author: Roderick King

Last Updated:

Views: 6070

Rating: 4 / 5 (71 voted)

Reviews: 94% of readers found this page helpful

Author information

Name: Roderick King

Birthday: 1997-10-09

Address: 3782 Madge Knoll, East Dudley, MA 63913

Phone: +2521695290067

Job: Customer Sales Coordinator

Hobby: Gunsmithing, Embroidery, Parkour, Kitesurfing, Rock climbing, Sand art, Beekeeping

Introduction: My name is Roderick King, I am a cute, splendid, excited, perfect, gentle, funny, vivacious person who loves writing and wants to share my knowledge and understanding with you.