Skip to content

Conversation

@phdargen
Copy link
Contributor

@phdargen phdargen commented May 6, 2025

Description

Implements Zora Coins SDK integration

  • Adds ZoraActionProvider
  • Adds coinIt action to create a coin on Zora with given name, symbol, description and image
  • Image can be local file which is then uploaded to ipfs or https url
  • Requires Pinata API key to upload metadata

Tests

Chatbot: typescript/examples/langchain-cdp-chatbot/chatbot.ts
Network: Base mainnet

Prompt: create new zora coin with name TestInProd, symbol TP, image https://metadata-storage-ftm.s3.us-east-2.amazonaws.com/ai-image-485-1746453858028.png description Testin in prod

-------------------
{"success":true,"transactionHash":"0xd13835e50fdfe2aca5b2b4c981dc67cfd0ba6e90ea0724810673e34b3cce06d9","coinAddress":"0x0C66a731f293d7bD024Dc6D0b99c403019Cc3972","imageUri":"https://metadata-storage-ftm.s3.us-east-2.amazonaws.com/ai-image-485-1746453858028.png","uri":"ipfs://bafkreicgfrqvumrlckjs7cxu3lkmb4v6aucbjjp7uu7bnhspip6y4sh5l4","deployment":{"caller":"0xf2d4580ADfe8E012f5550322706d62DF11fDBE21","payoutRecipient":"0xf2d4580ADfe8E012f5550322706d62DF11fDBE21","platformReferrer":"0x0000000000000000000000000000000000000000","currency":"0x1111111111166b7FE7bd91427724B487980aFc69","uri":"ipfs://bafkreicgfrqvumrlckjs7cxu3lkmb4v6aucbjjp7uu7bnhspip6y4sh5l4","name":"TestInProd","symbol":"TP","coin":"0x0C66a731f293d7bD024Dc6D0b99c403019Cc3972","poolKey":{"currency0":"0x0C66a731f293d7bD024Dc6D0b99c403019Cc3972","currency1":"0x1111111111166b7FE7bd91427724B487980aFc69","fee":30000,"tickSpacing":200,"hooks":"0x9ea932730A7787000042e34390B8E435dD839040"},"poolKeyHash":"0x4e3448f87ff0a81c64cfb8a83fff8c9ceeea1b9c954614824bf90d5329c9eb9b","version":"1.1.0"}}
-------------------
The new Zora coin has been successfully created! Here are the details:

- **Name**: TestInProd
- **Symbol**: TP
- **Coin Address**: `0x0C66a731f293d7bD024Dc6D0b99c403019Cc3972`
- **Image**: [View Image](https://metadata-storage-ftm.s3.us-east-2.amazonaws.com/ai-image-485-1746453858028.png)
- **Description**: Testin in prod
- **Transaction Hash**: `0xd13835e50fdfe2aca5b2b4c981dc67cfd0ba6e90ea0724810673e34b3cce06d9`
- **URI**: `[ipfs://bafkreicgfrqvumrlckjs7cxu3lkmb4v6aucbjjp7uu7bnhspip6y4sh5l4`](ipfs://bafkreicgfrqvumrlckjs7cxu3lkmb4v6aucbjjp7uu7bnhspip6y4sh5l4%60)

Coin on Zora: https://zora.co/coin/base:0x0c66a731f293d7bd024dc6d0b99c403019cc3972

Prompt: create new zora coin with name TestInProd, symbol TP, image 'basedPixels.png', description Testin in prod, currency ETH

-------------------
{"success":true,"transactionHash":"0x29515aa5cfb74faef62a5aade772efc4c322cf1dca0d452d34e926ac5a012981","coinAddress":"0x11A87759B9B7eC12a4c29EA8f675291b464aD12a","imageUri":"ipfs://bafkreidl4yckty62d5zd3gpklrm2i7o6h6s2j7ekyyqman3trcyq6dicau","uri":"ipfs://bafkreifmki33prk6zvketrhibqrvanqq5pkjc5cxhlmsri45ynxmwnsmpm","deployment":{"caller":"0xf2d4580ADfe8E012f5550322706d62DF11fDBE21","payoutRecipient":"0xf2d4580ADfe8E012f5550322706d62DF11fDBE21","platformReferrer":"0x0000000000000000000000000000000000000000","currency":"0x0000000000000000000000000000000000000000","uri":"ipfs://bafkreifmki33prk6zvketrhibqrvanqq5pkjc5cxhlmsri45ynxmwnsmpm","name":"TestInProd","symbol":"TP","coin":"0x11A87759B9B7eC12a4c29EA8f675291b464aD12a","poolKey":{"currency0":"0x0000000000000000000000000000000000000000","currency1":"0x11A87759B9B7eC12a4c29EA8f675291b464aD12a","fee":30000,"tickSpacing":200,"hooks":"0x9ea932730A7787000042e34390B8E435dD839040"},"poolKeyHash":"0xb1a89adaeac061997b4471a312b50c6187f72bc8702cade7e688e4831f35a161","version":"1.1.0"},"zoraURL":"https://zora.co/coin/base:0x11A87759B9B7eC12a4c29EA8f675291b464aD12a"}
-------------------
The Zora coin has been successfully created! Here are the details:

- **Name**: TestInProd
- **Symbol**: TP
- **Coin Address**: [0x11A87759B9B7eC12a4c29EA8f675291b464aD12a](https://etherscan.io/address/0x11A87759B9B7eC12a4c29EA8f675291b464aD12a)
- **Transaction Hash**: [0x29515aa5cfb74faef62a5aade772efc4c322cf1dca0d452d34e926ac5a012981](https://etherscan.io/tx/0x29515aa5cfb74faef62a5aade772efc4c322cf1dca0d452d34e926ac5a012981)
- **Image URI**: [ipfs://bafkreidl4yckty62d5zd3gpklrm2i7o6h6s2j7ekyyqman3trcyq6dicau](https://ipfs.io/ipfs/bafkreidl4yckty62d5zd3gpklrm2i7o6h6s2j7ekyyqman3trcyq6dicau)
- **Zora URL**: [View your coin on Zora](https://zora.co/coin/base:0x11A87759B9B7eC12a4c29EA8f675291b464aD12a)

Coin on Zora: https://zora.co/coin/base:0x11A87759B9B7eC12a4c29EA8f675291b464aD12a

Checklist

A couple of things to include in your PR for completeness:

  • Added documentation to all relevant README.md files
  • Added a changelog entry

@phdargen phdargen requested a review from murrlincoln as a code owner May 6, 2025 10:12
@cb-heimdall
Copy link

cb-heimdall commented May 6, 2025

✅ Heimdall Review Status

Requirement Status More Info
Reviews 1/1
Denominator calculation
Show calculation
1 if user is bot 0
1 if user is external 0
2 if repo is sensitive 0
From .codeflow.yml 1
Additional review requirements
Show calculation
Max 0
0
From CODEOWNERS 0
Global minimum 0
Max 1
1
1 if commit is unverified 0
Sum 1

@github-actions github-actions bot added documentation Improvements or additions to documentation action provider New action provider typescript labels May 6, 2025
Copy link
Contributor

@CarsonRoscoe CarsonRoscoe left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hey @phdargen!

Code looks reasonable, and checking out the branch, it seems to work. I am willing to merge once you rebase against main,

Thank you for another contribution :)

@phdargen
Copy link
Contributor Author

Hi @CarsonRoscoe, thanks for checking. Actually Zora just upgraded their contracts and sdk to v4, so the code should be updated. Will let you know when I get to it.

Copy link
Contributor

@CarsonRoscoe CarsonRoscoe left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Appreciate the insight. Please ping me once you get it in, and thanks again for the contribution

Copy link

@veyetex veyetex left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Agree

@phdargen
Copy link
Contributor Author

Hi @CarsonRoscoe, updated to sdk v4 and tested with hosted and local image (see above).

@CarsonRoscoe CarsonRoscoe merged commit 84c2d98 into coinbase:main Jul 25, 2025
25 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

action provider New action provider documentation Improvements or additions to documentation typescript

Development

Successfully merging this pull request may close these issues.

4 participants