feat/near chain signatures support - #562

Open
EdsonAlcala wants to merge 47 commits into
coinbase:mainfrom
EdsonAlcala:feat/near-chain-signatures-support
Open

feat/near chain signatures support#562
EdsonAlcala wants to merge 47 commits into
coinbase:mainfrom
EdsonAlcala:feat/near-chain-signatures-support

Conversation

@EdsonAlcala

@EdsonAlcalaEdsonAlcala commented Mar 13, 2025

Copy link
Copy Markdown

Description

This PR adds support for the NEAR protocol chain signatures, that allows a NEAR protocol account to control other accounts/addresses across multiple chains.

In order to enable the chain signatures support a NearKeyPairWalletProvider was required.

The PR also includes an example bot.

The following actions contain the functionality of the NEAR protocol chain signatures:

  • get cross chain address
  • get cross chain public key
  • sign payload

Tests

  • Added unit tests
  • Testet prompts

Sign payload

Chatbot: typescript/examples/langchain-near-chatbot/chatbot.ts
Network: near-testnet
Setup: Users will be able to create a NEAR account
Prompt: sign me this payload "0x470637f6dcc98931d6d22afa2b491c20caf0c3ba595d707606fe7915c30ef0a7" using chain signatures -------------------
The signature result is big_r: 02ACE91E6368E5859640CB8E988D70E6C1551E3B8AEC897084C5A2797EF606CCE8, big_s: 3A84B3C0C157FFE0AC271A07F6ABB4BA8821E010F359FAEE05D82796122926F2 and recovery_id: 0
-------------------
The payload has been successfully signed. Here are the signature details:
- **big_r**: 02ACE91E6368E5859640CB8E988D70E6C1551E3B8AEC897084C5A2797EF606CCE8
- **big_s**: 3A84B3C0C157FFE0AC271A07F6ABB4BA8821E010F359FAEE05D82796122926F2
- **recovery_id**: 0
Let me know if you need any further assistance!

Get cross chain public key

Chatbot: typescript/examples/langchain-near-chatbot/chatbot.ts
Network: near-testnet
Setup: Users will be able to create a NEAR account
Prompt: what is the cross chain public key for the account sample.testnet
-------------------
Computed public key for account id sample.testnet, network near-testnet and derivation path account-1 is 0433cea8fa3b41fa277d16af5895aca4bcea550470a40dfaa4aaff3d7eafeb5b1bf13e9b6d8e55a3f2ecba326a3e79002d601835a0b16848b040653360e4ba411d
-------------------
The cross-chain public key for the account "sample.testnet" on the NEAR testnet with the derivation path "account-1" is:
**Public Key**: 0433cea8fa3b41fa277d16af5895aca4bcea550470a40dfaa4aaff3d7eafeb5b1bf13e9b6d8e55a3f2ecba326a3e79002d601835a0b16848b040653360e4ba411d
If you need any more help, feel free to ask!

Checklist

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

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

@cb-heimdall

cb-heimdall commented Mar 13, 2025

Copy link
Copy Markdown

🟡 Heimdall Review Status

RequirementStatusMore Info
Reviews 🟡 0/1
Denominator calculation
Show calculation
1 if user is bot0
1 if user is external0
From .codeflow.yml1
Additional review requirements
Show calculation
Max0
0
From CODEOWNERS0
Global minimum0
Max 1
1
1 if commit is unverified1
Sum2

@github-actionsgithub-actionsBot added documentation Improvements or additions to documentation action provider New action provider wallet provider New wallet provider example New example agent typescript labels Mar 13, 2025
@EdsonAlcalaEdsonAlcala changed the title wip: Feat/near chain signatures supportFeat/near chain signatures supportMar 17, 2025
@EdsonAlcala
EdsonAlcala marked this pull request as ready for review March 17, 2025 16:29
@EdsonAlcalaEdsonAlcala changed the title Feat/near chain signatures supportfeat/near chain signatures supportMar 17, 2025
@EdsonAlcala
EdsonAlcalaforce-pushed the feat/near-chain-signatures-support branch from 53a5467 to 47e1901CompareMarch 21, 2025 09:40
@github-actionsgithub-actionsBot added framework extension New framework extension python labels Mar 21, 2025
@EdsonAlcala
EdsonAlcalaforce-pushed the feat/near-chain-signatures-support branch from 47e1901 to a0e0917CompareMarch 21, 2025 10:14
@github-actionsgithub-actionsBot removed framework extension New framework extension python labels Mar 21, 2025
@EdsonAlcala

Copy link
Copy Markdown
Author

hey @murrlincoln, any comments on this PR? Thanks

Comment threadtypescript/agentkit/src/action-providers/near/nearActionProvider.ts Outdated
Comment threadtypescript/agentkit/src/wallet-providers/nearKeypairWalletProvider.ts Outdated
@EdsonAlcala

Copy link
Copy Markdown
Author

@CarsonRoscoe let me know what are your thoughts. Best

@EdsonAlcala

EdsonAlcala commented Apr 18, 2025

Copy link
Copy Markdown
Author

@CarsonRoscoe@murrlincoln I would like to ask you what is the criteria to merge and review PRs. Considering more recent PRs like #665 was merged before this one.

In general this PR has been open since March 13, that means after 36 days we are still here waiting and I have applied all your changes and suggestions.

No more changes have been required from our side.

If there are doubts or suggestions I'm happy to jump on a call and discuss about it. On the other hand, if the PR is not up to your coding standards or is not welcome you can also let me know. Because I have been constantly rebasing and merging and there is not clarity with it. I mean not even the pipeline has run.

@EdsonAlcala

Copy link
Copy Markdown
Author

@CarsonRoscoe@murrlincoln Is this really the way to treat contributors?

@EdsonAlcala

Copy link
Copy Markdown
Author

@CarsonRoscoe@murrlincoln any updates?

@EdsonAlcala

EdsonAlcala commented May 29, 2025

Copy link
Copy Markdown
Author

any updates on this? @CarsonRoscoe@murrlincoln

1 similar comment
@EdsonAlcala

Copy link
Copy Markdown
Author

any updates on this? @CarsonRoscoe@murrlincoln

Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

action providerNew action providerbananadocumentationImprovements or additions to documentationexampleNew example agenttypescriptwallet providerNew wallet provider

Development

Successfully merging this pull request may close these issues.

5 participants

@EdsonAlcala@cb-heimdall@CarsonRoscoe@murrlincoln@Tanker187
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all
 blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks");
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Skip to content

feat/near chain signatures support - #562

Open
EdsonAlcala wants to merge 47 commits into
coinbase:mainfrom
EdsonAlcala:feat/near-chain-signatures-support
Open

feat/near chain signatures support#562
EdsonAlcala wants to merge 47 commits into
coinbase:mainfrom
EdsonAlcala:feat/near-chain-signatures-support

Conversation

@EdsonAlcala

@EdsonAlcalaEdsonAlcala commented Mar 13, 2025

Copy link
Copy Markdown

Description

This PR adds support for the NEAR protocol chain signatures, that allows a NEAR protocol account to control other accounts/addresses across multiple chains.

In order to enable the chain signatures support a NearKeyPairWalletProvider was required.

The PR also includes an example bot.

The following actions contain the functionality of the NEAR protocol chain signatures:

  • get cross chain address
  • get cross chain public key
  • sign payload

Tests

  • Added unit tests
  • Testet prompts

Sign payload

Chatbot: typescript/examples/langchain-near-chatbot/chatbot.ts
Network: near-testnet
Setup: Users will be able to create a NEAR account
Prompt: sign me this payload "0x470637f6dcc98931d6d22afa2b491c20caf0c3ba595d707606fe7915c30ef0a7" using chain signatures -------------------
The signature result is big_r: 02ACE91E6368E5859640CB8E988D70E6C1551E3B8AEC897084C5A2797EF606CCE8, big_s: 3A84B3C0C157FFE0AC271A07F6ABB4BA8821E010F359FAEE05D82796122926F2 and recovery_id: 0
-------------------
The payload has been successfully signed. Here are the signature details:
- **big_r**: 02ACE91E6368E5859640CB8E988D70E6C1551E3B8AEC897084C5A2797EF606CCE8
- **big_s**: 3A84B3C0C157FFE0AC271A07F6ABB4BA8821E010F359FAEE05D82796122926F2
- **recovery_id**: 0
Let me know if you need any further assistance!

Get cross chain public key

Chatbot: typescript/examples/langchain-near-chatbot/chatbot.ts
Network: near-testnet
Setup: Users will be able to create a NEAR account
Prompt: what is the cross chain public key for the account sample.testnet
-------------------
Computed public key for account id sample.testnet, network near-testnet and derivation path account-1 is 0433cea8fa3b41fa277d16af5895aca4bcea550470a40dfaa4aaff3d7eafeb5b1bf13e9b6d8e55a3f2ecba326a3e79002d601835a0b16848b040653360e4ba411d
-------------------
The cross-chain public key for the account "sample.testnet" on the NEAR testnet with the derivation path "account-1" is:
**Public Key**: 0433cea8fa3b41fa277d16af5895aca4bcea550470a40dfaa4aaff3d7eafeb5b1bf13e9b6d8e55a3f2ecba326a3e79002d601835a0b16848b040653360e4ba411d
If you need any more help, feel free to ask!

Checklist

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

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

@cb-heimdall

cb-heimdall commented Mar 13, 2025

Copy link
Copy Markdown

🟡 Heimdall Review Status

RequirementStatusMore Info
Reviews 🟡 0/1
Denominator calculation
Show calculation
1 if user is bot0
1 if user is external0
From .codeflow.yml1
Additional review requirements
Show calculation
Max0
0
From CODEOWNERS0
Global minimum0
Max 1
1
1 if commit is unverified1
Sum2

@github-actionsgithub-actionsBot added documentation Improvements or additions to documentation action provider New action provider wallet provider New wallet provider example New example agent typescript labels Mar 13, 2025
@EdsonAlcalaEdsonAlcala changed the title wip: Feat/near chain signatures supportFeat/near chain signatures supportMar 17, 2025
@EdsonAlcala
EdsonAlcala marked this pull request as ready for review March 17, 2025 16:29
@EdsonAlcalaEdsonAlcala changed the title Feat/near chain signatures supportfeat/near chain signatures supportMar 17, 2025
@EdsonAlcala
EdsonAlcalaforce-pushed the feat/near-chain-signatures-support branch from 53a5467 to 47e1901CompareMarch 21, 2025 09:40
@github-actionsgithub-actionsBot added framework extension New framework extension python labels Mar 21, 2025
@EdsonAlcala
EdsonAlcalaforce-pushed the feat/near-chain-signatures-support branch from 47e1901 to a0e0917CompareMarch 21, 2025 10:14
@github-actionsgithub-actionsBot removed framework extension New framework extension python labels Mar 21, 2025
@EdsonAlcala

Copy link
Copy Markdown
Author

hey @murrlincoln, any comments on this PR? Thanks

Comment threadtypescript/agentkit/src/action-providers/near/nearActionProvider.ts Outdated
Comment threadtypescript/agentkit/src/wallet-providers/nearKeypairWalletProvider.ts Outdated
@EdsonAlcala

Copy link
Copy Markdown
Author

@CarsonRoscoe let me know what are your thoughts. Best

@EdsonAlcala

EdsonAlcala commented Apr 18, 2025

Copy link
Copy Markdown
Author

@CarsonRoscoe@murrlincoln I would like to ask you what is the criteria to merge and review PRs. Considering more recent PRs like #665 was merged before this one.

In general this PR has been open since March 13, that means after 36 days we are still here waiting and I have applied all your changes and suggestions.

No more changes have been required from our side.

If there are doubts or suggestions I'm happy to jump on a call and discuss about it. On the other hand, if the PR is not up to your coding standards or is not welcome you can also let me know. Because I have been constantly rebasing and merging and there is not clarity with it. I mean not even the pipeline has run.

@EdsonAlcala

Copy link
Copy Markdown
Author

@CarsonRoscoe@murrlincoln Is this really the way to treat contributors?

@EdsonAlcala

Copy link
Copy Markdown
Author

@CarsonRoscoe@murrlincoln any updates?

@EdsonAlcala

EdsonAlcala commented May 29, 2025

Copy link
Copy Markdown
Author

any updates on this? @CarsonRoscoe@murrlincoln

1 similar comment
@EdsonAlcala

Copy link
Copy Markdown
Author

any updates on this? @CarsonRoscoe@murrlincoln

Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

action providerNew action providerbananadocumentationImprovements or additions to documentationexampleNew example agenttypescriptwallet providerNew wallet provider

Development

Successfully merging this pull request may close these issues.

5 participants

@EdsonAlcala@cb-heimdall@CarsonRoscoe@murrlincoln@Tanker187
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

feat/near chain signatures support - #562

Open
EdsonAlcala wants to merge 47 commits into
coinbase:mainfrom
EdsonAlcala:feat/near-chain-signatures-support
Open

feat/near chain signatures support#562
EdsonAlcala wants to merge 47 commits into
coinbase:mainfrom
EdsonAlcala:feat/near-chain-signatures-support

Conversation

@EdsonAlcala

@EdsonAlcalaEdsonAlcala commented Mar 13, 2025

Copy link
Copy Markdown

Description

This PR adds support for the NEAR protocol chain signatures, that allows a NEAR protocol account to control other accounts/addresses across multiple chains.

In order to enable the chain signatures support a NearKeyPairWalletProvider was required.

The PR also includes an example bot.

The following actions contain the functionality of the NEAR protocol chain signatures:

  • get cross chain address
  • get cross chain public key
  • sign payload

Tests

  • Added unit tests
  • Testet prompts

Sign payload

Chatbot: typescript/examples/langchain-near-chatbot/chatbot.ts
Network: near-testnet
Setup: Users will be able to create a NEAR account
Prompt: sign me this payload "0x470637f6dcc98931d6d22afa2b491c20caf0c3ba595d707606fe7915c30ef0a7" using chain signatures -------------------
The signature result is big_r: 02ACE91E6368E5859640CB8E988D70E6C1551E3B8AEC897084C5A2797EF606CCE8, big_s: 3A84B3C0C157FFE0AC271A07F6ABB4BA8821E010F359FAEE05D82796122926F2 and recovery_id: 0
-------------------
The payload has been successfully signed. Here are the signature details:
- **big_r**: 02ACE91E6368E5859640CB8E988D70E6C1551E3B8AEC897084C5A2797EF606CCE8
- **big_s**: 3A84B3C0C157FFE0AC271A07F6ABB4BA8821E010F359FAEE05D82796122926F2
- **recovery_id**: 0
Let me know if you need any further assistance!

Get cross chain public key

Chatbot: typescript/examples/langchain-near-chatbot/chatbot.ts
Network: near-testnet
Setup: Users will be able to create a NEAR account
Prompt: what is the cross chain public key for the account sample.testnet
-------------------
Computed public key for account id sample.testnet, network near-testnet and derivation path account-1 is 0433cea8fa3b41fa277d16af5895aca4bcea550470a40dfaa4aaff3d7eafeb5b1bf13e9b6d8e55a3f2ecba326a3e79002d601835a0b16848b040653360e4ba411d
-------------------
The cross-chain public key for the account "sample.testnet" on the NEAR testnet with the derivation path "account-1" is:
**Public Key**: 0433cea8fa3b41fa277d16af5895aca4bcea550470a40dfaa4aaff3d7eafeb5b1bf13e9b6d8e55a3f2ecba326a3e79002d601835a0b16848b040653360e4ba411d
If you need any more help, feel free to ask!

Checklist

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

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

@cb-heimdall

cb-heimdall commented Mar 13, 2025

Copy link
Copy Markdown

🟡 Heimdall Review Status

RequirementStatusMore Info
Reviews 🟡 0/1
Denominator calculation
Show calculation
1 if user is bot0
1 if user is external0
From .codeflow.yml1
Additional review requirements
Show calculation
Max0
0
From CODEOWNERS0
Global minimum0
Max 1
1
1 if commit is unverified1
Sum2

@github-actionsgithub-actionsBot added documentation Improvements or additions to documentation action provider New action provider wallet provider New wallet provider example New example agent typescript labels Mar 13, 2025
@EdsonAlcalaEdsonAlcala changed the title wip: Feat/near chain signatures supportFeat/near chain signatures supportMar 17, 2025
@EdsonAlcala
EdsonAlcala marked this pull request as ready for review March 17, 2025 16:29
@EdsonAlcalaEdsonAlcala changed the title Feat/near chain signatures supportfeat/near chain signatures supportMar 17, 2025
@EdsonAlcala
EdsonAlcalaforce-pushed the feat/near-chain-signatures-support branch from 53a5467 to 47e1901CompareMarch 21, 2025 09:40
@github-actionsgithub-actionsBot added framework extension New framework extension python labels Mar 21, 2025
@EdsonAlcala
EdsonAlcalaforce-pushed the feat/near-chain-signatures-support branch from 47e1901 to a0e0917CompareMarch 21, 2025 10:14
@github-actionsgithub-actionsBot removed framework extension New framework extension python labels Mar 21, 2025
@EdsonAlcala

Copy link
Copy Markdown
Author

hey @murrlincoln, any comments on this PR? Thanks

Comment threadtypescript/agentkit/src/action-providers/near/nearActionProvider.ts Outdated
Comment threadtypescript/agentkit/src/wallet-providers/nearKeypairWalletProvider.ts Outdated
@EdsonAlcala

Copy link
Copy Markdown
Author

@CarsonRoscoe let me know what are your thoughts. Best

@EdsonAlcala

EdsonAlcala commented Apr 18, 2025

Copy link
Copy Markdown
Author

@CarsonRoscoe@murrlincoln I would like to ask you what is the criteria to merge and review PRs. Considering more recent PRs like #665 was merged before this one.

In general this PR has been open since March 13, that means after 36 days we are still here waiting and I have applied all your changes and suggestions.

No more changes have been required from our side.

If there are doubts or suggestions I'm happy to jump on a call and discuss about it. On the other hand, if the PR is not up to your coding standards or is not welcome you can also let me know. Because I have been constantly rebasing and merging and there is not clarity with it. I mean not even the pipeline has run.

@EdsonAlcala

Copy link
Copy Markdown
Author

@CarsonRoscoe@murrlincoln Is this really the way to treat contributors?

@EdsonAlcala

Copy link
Copy Markdown
Author

@CarsonRoscoe@murrlincoln any updates?

@EdsonAlcala

EdsonAlcala commented May 29, 2025

Copy link
Copy Markdown
Author

any updates on this? @CarsonRoscoe@murrlincoln

1 similar comment
@EdsonAlcala

Copy link
Copy Markdown
Author

any updates on this? @CarsonRoscoe@murrlincoln

Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

action providerNew action providerbananadocumentationImprovements or additions to documentationexampleNew example agenttypescriptwallet providerNew wallet provider

Development

Successfully merging this pull request may close these issues.

5 participants

@EdsonAlcala@cb-heimdall@CarsonRoscoe@murrlincoln@Tanker187
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length > 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

feat/near chain signatures support - #562

Open
EdsonAlcala wants to merge 47 commits into
coinbase:mainfrom
EdsonAlcala:feat/near-chain-signatures-support
Open

feat/near chain signatures support#562
EdsonAlcala wants to merge 47 commits into
coinbase:mainfrom
EdsonAlcala:feat/near-chain-signatures-support

Conversation

@EdsonAlcala

@EdsonAlcalaEdsonAlcala commented Mar 13, 2025

Copy link
Copy Markdown

Description

This PR adds support for the NEAR protocol chain signatures, that allows a NEAR protocol account to control other accounts/addresses across multiple chains.

In order to enable the chain signatures support a NearKeyPairWalletProvider was required.

The PR also includes an example bot.

The following actions contain the functionality of the NEAR protocol chain signatures:

  • get cross chain address
  • get cross chain public key
  • sign payload

Tests

  • Added unit tests
  • Testet prompts

Sign payload

Chatbot: typescript/examples/langchain-near-chatbot/chatbot.ts
Network: near-testnet
Setup: Users will be able to create a NEAR account
Prompt: sign me this payload "0x470637f6dcc98931d6d22afa2b491c20caf0c3ba595d707606fe7915c30ef0a7" using chain signatures -------------------
The signature result is big_r: 02ACE91E6368E5859640CB8E988D70E6C1551E3B8AEC897084C5A2797EF606CCE8, big_s: 3A84B3C0C157FFE0AC271A07F6ABB4BA8821E010F359FAEE05D82796122926F2 and recovery_id: 0
-------------------
The payload has been successfully signed. Here are the signature details:
- **big_r**: 02ACE91E6368E5859640CB8E988D70E6C1551E3B8AEC897084C5A2797EF606CCE8
- **big_s**: 3A84B3C0C157FFE0AC271A07F6ABB4BA8821E010F359FAEE05D82796122926F2
- **recovery_id**: 0
Let me know if you need any further assistance!

Get cross chain public key

Chatbot: typescript/examples/langchain-near-chatbot/chatbot.ts
Network: near-testnet
Setup: Users will be able to create a NEAR account
Prompt: what is the cross chain public key for the account sample.testnet
-------------------
Computed public key for account id sample.testnet, network near-testnet and derivation path account-1 is 0433cea8fa3b41fa277d16af5895aca4bcea550470a40dfaa4aaff3d7eafeb5b1bf13e9b6d8e55a3f2ecba326a3e79002d601835a0b16848b040653360e4ba411d
-------------------
The cross-chain public key for the account "sample.testnet" on the NEAR testnet with the derivation path "account-1" is:
**Public Key**: 0433cea8fa3b41fa277d16af5895aca4bcea550470a40dfaa4aaff3d7eafeb5b1bf13e9b6d8e55a3f2ecba326a3e79002d601835a0b16848b040653360e4ba411d
If you need any more help, feel free to ask!

Checklist

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

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

@cb-heimdall

cb-heimdall commented Mar 13, 2025

Copy link
Copy Markdown

🟡 Heimdall Review Status

RequirementStatusMore Info
Reviews 🟡 0/1
Denominator calculation
Show calculation
1 if user is bot0
1 if user is external0
From .codeflow.yml1
Additional review requirements
Show calculation
Max0
0
From CODEOWNERS0
Global minimum0
Max 1
1
1 if commit is unverified1
Sum2

@github-actionsgithub-actionsBot added documentation Improvements or additions to documentation action provider New action provider wallet provider New wallet provider example New example agent typescript labels Mar 13, 2025
@EdsonAlcalaEdsonAlcala changed the title wip: Feat/near chain signatures supportFeat/near chain signatures supportMar 17, 2025
@EdsonAlcala
EdsonAlcala marked this pull request as ready for review March 17, 2025 16:29
@EdsonAlcalaEdsonAlcala changed the title Feat/near chain signatures supportfeat/near chain signatures supportMar 17, 2025
@EdsonAlcala
EdsonAlcalaforce-pushed the feat/near-chain-signatures-support branch from 53a5467 to 47e1901CompareMarch 21, 2025 09:40
@github-actionsgithub-actionsBot added framework extension New framework extension python labels Mar 21, 2025
@EdsonAlcala
EdsonAlcalaforce-pushed the feat/near-chain-signatures-support branch from 47e1901 to a0e0917CompareMarch 21, 2025 10:14
@github-actionsgithub-actionsBot removed framework extension New framework extension python labels Mar 21, 2025
@EdsonAlcala

Copy link
Copy Markdown
Author

hey @murrlincoln, any comments on this PR? Thanks

Comment threadtypescript/agentkit/src/action-providers/near/nearActionProvider.ts Outdated
Comment threadtypescript/agentkit/src/wallet-providers/nearKeypairWalletProvider.ts Outdated
@EdsonAlcala

Copy link
Copy Markdown
Author

@CarsonRoscoe let me know what are your thoughts. Best

@EdsonAlcala

EdsonAlcala commented Apr 18, 2025

Copy link
Copy Markdown
Author

@CarsonRoscoe@murrlincoln I would like to ask you what is the criteria to merge and review PRs. Considering more recent PRs like #665 was merged before this one.

In general this PR has been open since March 13, that means after 36 days we are still here waiting and I have applied all your changes and suggestions.

No more changes have been required from our side.

If there are doubts or suggestions I'm happy to jump on a call and discuss about it. On the other hand, if the PR is not up to your coding standards or is not welcome you can also let me know. Because I have been constantly rebasing and merging and there is not clarity with it. I mean not even the pipeline has run.

@EdsonAlcala

Copy link
Copy Markdown
Author

@CarsonRoscoe@murrlincoln Is this really the way to treat contributors?

@EdsonAlcala

Copy link
Copy Markdown
Author

@CarsonRoscoe@murrlincoln any updates?

@EdsonAlcala

EdsonAlcala commented May 29, 2025

Copy link
Copy Markdown
Author

any updates on this? @CarsonRoscoe@murrlincoln

1 similar comment
@EdsonAlcala

Copy link
Copy Markdown
Author

any updates on this? @CarsonRoscoe@murrlincoln

Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

action providerNew action providerbananadocumentationImprovements or additions to documentationexampleNew example agenttypescriptwallet providerNew wallet provider

Development

Successfully merging this pull request may close these issues.

5 participants

@EdsonAlcala@cb-heimdall@CarsonRoscoe@murrlincoln@Tanker187
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content

feat/near chain signatures support - #562

Open
EdsonAlcala wants to merge 47 commits into
coinbase:mainfrom
EdsonAlcala:feat/near-chain-signatures-support
Open

feat/near chain signatures support#562
EdsonAlcala wants to merge 47 commits into
coinbase:mainfrom
EdsonAlcala:feat/near-chain-signatures-support

Conversation

@EdsonAlcala

@EdsonAlcalaEdsonAlcala commented Mar 13, 2025

Copy link
Copy Markdown

Description

This PR adds support for the NEAR protocol chain signatures, that allows a NEAR protocol account to control other accounts/addresses across multiple chains.

In order to enable the chain signatures support a NearKeyPairWalletProvider was required.

The PR also includes an example bot.

The following actions contain the functionality of the NEAR protocol chain signatures:

  • get cross chain address
  • get cross chain public key
  • sign payload

Tests

  • Added unit tests
  • Testet prompts

Sign payload

Chatbot: typescript/examples/langchain-near-chatbot/chatbot.ts
Network: near-testnet
Setup: Users will be able to create a NEAR account
Prompt: sign me this payload "0x470637f6dcc98931d6d22afa2b491c20caf0c3ba595d707606fe7915c30ef0a7" using chain signatures -------------------
The signature result is big_r: 02ACE91E6368E5859640CB8E988D70E6C1551E3B8AEC897084C5A2797EF606CCE8, big_s: 3A84B3C0C157FFE0AC271A07F6ABB4BA8821E010F359FAEE05D82796122926F2 and recovery_id: 0
-------------------
The payload has been successfully signed. Here are the signature details:
- **big_r**: 02ACE91E6368E5859640CB8E988D70E6C1551E3B8AEC897084C5A2797EF606CCE8
- **big_s**: 3A84B3C0C157FFE0AC271A07F6ABB4BA8821E010F359FAEE05D82796122926F2
- **recovery_id**: 0
Let me know if you need any further assistance!

Get cross chain public key

Chatbot: typescript/examples/langchain-near-chatbot/chatbot.ts
Network: near-testnet
Setup: Users will be able to create a NEAR account
Prompt: what is the cross chain public key for the account sample.testnet
-------------------
Computed public key for account id sample.testnet, network near-testnet and derivation path account-1 is 0433cea8fa3b41fa277d16af5895aca4bcea550470a40dfaa4aaff3d7eafeb5b1bf13e9b6d8e55a3f2ecba326a3e79002d601835a0b16848b040653360e4ba411d
-------------------
The cross-chain public key for the account "sample.testnet" on the NEAR testnet with the derivation path "account-1" is:
**Public Key**: 0433cea8fa3b41fa277d16af5895aca4bcea550470a40dfaa4aaff3d7eafeb5b1bf13e9b6d8e55a3f2ecba326a3e79002d601835a0b16848b040653360e4ba411d
If you need any more help, feel free to ask!

Checklist

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

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

@cb-heimdall

cb-heimdall commented Mar 13, 2025

Copy link
Copy Markdown

🟡 Heimdall Review Status

RequirementStatusMore Info
Reviews 🟡 0/1
Denominator calculation
Show calculation
1 if user is bot0
1 if user is external0
From .codeflow.yml1
Additional review requirements
Show calculation
Max0
0
From CODEOWNERS0
Global minimum0
Max 1
1
1 if commit is unverified1
Sum2

@github-actionsgithub-actionsBot added documentation Improvements or additions to documentation action provider New action provider wallet provider New wallet provider example New example agent typescript labels Mar 13, 2025
@EdsonAlcalaEdsonAlcala changed the title wip: Feat/near chain signatures supportFeat/near chain signatures supportMar 17, 2025
@EdsonAlcala
EdsonAlcala marked this pull request as ready for review March 17, 2025 16:29
@EdsonAlcalaEdsonAlcala changed the title Feat/near chain signatures supportfeat/near chain signatures supportMar 17, 2025
@EdsonAlcala
EdsonAlcalaforce-pushed the feat/near-chain-signatures-support branch from 53a5467 to 47e1901CompareMarch 21, 2025 09:40
@github-actionsgithub-actionsBot added framework extension New framework extension python labels Mar 21, 2025
@EdsonAlcala
EdsonAlcalaforce-pushed the feat/near-chain-signatures-support branch from 47e1901 to a0e0917CompareMarch 21, 2025 10:14
@github-actionsgithub-actionsBot removed framework extension New framework extension python labels Mar 21, 2025
@EdsonAlcala

Copy link
Copy Markdown
Author

hey @murrlincoln, any comments on this PR? Thanks

Comment threadtypescript/agentkit/src/action-providers/near/nearActionProvider.ts Outdated
Comment threadtypescript/agentkit/src/wallet-providers/nearKeypairWalletProvider.ts Outdated
@EdsonAlcala

Copy link
Copy Markdown
Author

@CarsonRoscoe let me know what are your thoughts. Best

@EdsonAlcala

EdsonAlcala commented Apr 18, 2025

Copy link
Copy Markdown
Author

@CarsonRoscoe@murrlincoln I would like to ask you what is the criteria to merge and review PRs. Considering more recent PRs like #665 was merged before this one.

In general this PR has been open since March 13, that means after 36 days we are still here waiting and I have applied all your changes and suggestions.

No more changes have been required from our side.

If there are doubts or suggestions I'm happy to jump on a call and discuss about it. On the other hand, if the PR is not up to your coding standards or is not welcome you can also let me know. Because I have been constantly rebasing and merging and there is not clarity with it. I mean not even the pipeline has run.

@EdsonAlcala

Copy link
Copy Markdown
Author

@CarsonRoscoe@murrlincoln Is this really the way to treat contributors?

@EdsonAlcala

Copy link
Copy Markdown
Author

@CarsonRoscoe@murrlincoln any updates?

@EdsonAlcala

EdsonAlcala commented May 29, 2025

Copy link
Copy Markdown
Author

any updates on this? @CarsonRoscoe@murrlincoln

1 similar comment
@EdsonAlcala

Copy link
Copy Markdown
Author

any updates on this? @CarsonRoscoe@murrlincoln

Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

action providerNew action providerbananadocumentationImprovements or additions to documentationexampleNew example agenttypescriptwallet providerNew wallet provider

Development

Successfully merging this pull request may close these issues.

5 participants

@EdsonAlcala@cb-heimdall@CarsonRoscoe@murrlincoln@Tanker187
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

feat/near chain signatures support - #562

Open
EdsonAlcala wants to merge 47 commits into
coinbase:mainfrom
EdsonAlcala:feat/near-chain-signatures-support
Open

feat/near chain signatures support#562
EdsonAlcala wants to merge 47 commits into
coinbase:mainfrom
EdsonAlcala:feat/near-chain-signatures-support

Conversation

@EdsonAlcala

@EdsonAlcalaEdsonAlcala commented Mar 13, 2025

Copy link
Copy Markdown

Description

This PR adds support for the NEAR protocol chain signatures, that allows a NEAR protocol account to control other accounts/addresses across multiple chains.

In order to enable the chain signatures support a NearKeyPairWalletProvider was required.

The PR also includes an example bot.

The following actions contain the functionality of the NEAR protocol chain signatures:

  • get cross chain address
  • get cross chain public key
  • sign payload

Tests

  • Added unit tests
  • Testet prompts

Sign payload

Chatbot: typescript/examples/langchain-near-chatbot/chatbot.ts
Network: near-testnet
Setup: Users will be able to create a NEAR account
Prompt: sign me this payload "0x470637f6dcc98931d6d22afa2b491c20caf0c3ba595d707606fe7915c30ef0a7" using chain signatures -------------------
The signature result is big_r: 02ACE91E6368E5859640CB8E988D70E6C1551E3B8AEC897084C5A2797EF606CCE8, big_s: 3A84B3C0C157FFE0AC271A07F6ABB4BA8821E010F359FAEE05D82796122926F2 and recovery_id: 0
-------------------
The payload has been successfully signed. Here are the signature details:
- **big_r**: 02ACE91E6368E5859640CB8E988D70E6C1551E3B8AEC897084C5A2797EF606CCE8
- **big_s**: 3A84B3C0C157FFE0AC271A07F6ABB4BA8821E010F359FAEE05D82796122926F2
- **recovery_id**: 0
Let me know if you need any further assistance!

Get cross chain public key

Chatbot: typescript/examples/langchain-near-chatbot/chatbot.ts
Network: near-testnet
Setup: Users will be able to create a NEAR account
Prompt: what is the cross chain public key for the account sample.testnet
-------------------
Computed public key for account id sample.testnet, network near-testnet and derivation path account-1 is 0433cea8fa3b41fa277d16af5895aca4bcea550470a40dfaa4aaff3d7eafeb5b1bf13e9b6d8e55a3f2ecba326a3e79002d601835a0b16848b040653360e4ba411d
-------------------
The cross-chain public key for the account "sample.testnet" on the NEAR testnet with the derivation path "account-1" is:
**Public Key**: 0433cea8fa3b41fa277d16af5895aca4bcea550470a40dfaa4aaff3d7eafeb5b1bf13e9b6d8e55a3f2ecba326a3e79002d601835a0b16848b040653360e4ba411d
If you need any more help, feel free to ask!

Checklist

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

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

@cb-heimdall

cb-heimdall commented Mar 13, 2025

Copy link
Copy Markdown

🟡 Heimdall Review Status

RequirementStatusMore Info
Reviews 🟡 0/1
Denominator calculation
Show calculation
1 if user is bot0
1 if user is external0
From .codeflow.yml1
Additional review requirements
Show calculation
Max0
0
From CODEOWNERS0
Global minimum0
Max 1
1
1 if commit is unverified1
Sum2

@github-actionsgithub-actionsBot added documentation Improvements or additions to documentation action provider New action provider wallet provider New wallet provider example New example agent typescript labels Mar 13, 2025
@EdsonAlcalaEdsonAlcala changed the title wip: Feat/near chain signatures supportFeat/near chain signatures supportMar 17, 2025
@EdsonAlcala
EdsonAlcala marked this pull request as ready for review March 17, 2025 16:29
@EdsonAlcalaEdsonAlcala changed the title Feat/near chain signatures supportfeat/near chain signatures supportMar 17, 2025
@EdsonAlcala
EdsonAlcalaforce-pushed the feat/near-chain-signatures-support branch from 53a5467 to 47e1901CompareMarch 21, 2025 09:40
@github-actionsgithub-actionsBot added framework extension New framework extension python labels Mar 21, 2025
@EdsonAlcala
EdsonAlcalaforce-pushed the feat/near-chain-signatures-support branch from 47e1901 to a0e0917CompareMarch 21, 2025 10:14
@github-actionsgithub-actionsBot removed framework extension New framework extension python labels Mar 21, 2025
@EdsonAlcala

Copy link
Copy Markdown
Author

hey @murrlincoln, any comments on this PR? Thanks

Comment threadtypescript/agentkit/src/action-providers/near/nearActionProvider.ts Outdated
Comment threadtypescript/agentkit/src/wallet-providers/nearKeypairWalletProvider.ts Outdated
@EdsonAlcala

Copy link
Copy Markdown
Author

@CarsonRoscoe let me know what are your thoughts. Best

@EdsonAlcala

EdsonAlcala commented Apr 18, 2025

Copy link
Copy Markdown
Author

@CarsonRoscoe@murrlincoln I would like to ask you what is the criteria to merge and review PRs. Considering more recent PRs like #665 was merged before this one.

In general this PR has been open since March 13, that means after 36 days we are still here waiting and I have applied all your changes and suggestions.

No more changes have been required from our side.

If there are doubts or suggestions I'm happy to jump on a call and discuss about it. On the other hand, if the PR is not up to your coding standards or is not welcome you can also let me know. Because I have been constantly rebasing and merging and there is not clarity with it. I mean not even the pipeline has run.

@EdsonAlcala

Copy link
Copy Markdown
Author

@CarsonRoscoe@murrlincoln Is this really the way to treat contributors?

@EdsonAlcala

Copy link
Copy Markdown
Author

@CarsonRoscoe@murrlincoln any updates?

@EdsonAlcala

EdsonAlcala commented May 29, 2025

Copy link
Copy Markdown
Author

any updates on this? @CarsonRoscoe@murrlincoln

1 similar comment
@EdsonAlcala

Copy link
Copy Markdown
Author

any updates on this? @CarsonRoscoe@murrlincoln

Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

action providerNew action providerbananadocumentationImprovements or additions to documentationexampleNew example agenttypescriptwallet providerNew wallet provider

Development

Successfully merging this pull request may close these issues.

5 participants

@EdsonAlcala@cb-heimdall@CarsonRoscoe@murrlincoln@Tanker187
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

feat/near chain signatures support - #562

Open
EdsonAlcala wants to merge 47 commits into
coinbase:mainfrom
EdsonAlcala:feat/near-chain-signatures-support
Open

feat/near chain signatures support#562
EdsonAlcala wants to merge 47 commits into
coinbase:mainfrom
EdsonAlcala:feat/near-chain-signatures-support

Conversation

@EdsonAlcala

@EdsonAlcalaEdsonAlcala commented Mar 13, 2025

Copy link
Copy Markdown

Description

This PR adds support for the NEAR protocol chain signatures, that allows a NEAR protocol account to control other accounts/addresses across multiple chains.

In order to enable the chain signatures support a NearKeyPairWalletProvider was required.

The PR also includes an example bot.

The following actions contain the functionality of the NEAR protocol chain signatures:

  • get cross chain address
  • get cross chain public key
  • sign payload

Tests

  • Added unit tests
  • Testet prompts

Sign payload

Chatbot: typescript/examples/langchain-near-chatbot/chatbot.ts
Network: near-testnet
Setup: Users will be able to create a NEAR account
Prompt: sign me this payload "0x470637f6dcc98931d6d22afa2b491c20caf0c3ba595d707606fe7915c30ef0a7" using chain signatures -------------------
The signature result is big_r: 02ACE91E6368E5859640CB8E988D70E6C1551E3B8AEC897084C5A2797EF606CCE8, big_s: 3A84B3C0C157FFE0AC271A07F6ABB4BA8821E010F359FAEE05D82796122926F2 and recovery_id: 0
-------------------
The payload has been successfully signed. Here are the signature details:
- **big_r**: 02ACE91E6368E5859640CB8E988D70E6C1551E3B8AEC897084C5A2797EF606CCE8
- **big_s**: 3A84B3C0C157FFE0AC271A07F6ABB4BA8821E010F359FAEE05D82796122926F2
- **recovery_id**: 0
Let me know if you need any further assistance!

Get cross chain public key

Chatbot: typescript/examples/langchain-near-chatbot/chatbot.ts
Network: near-testnet
Setup: Users will be able to create a NEAR account
Prompt: what is the cross chain public key for the account sample.testnet
-------------------
Computed public key for account id sample.testnet, network near-testnet and derivation path account-1 is 0433cea8fa3b41fa277d16af5895aca4bcea550470a40dfaa4aaff3d7eafeb5b1bf13e9b6d8e55a3f2ecba326a3e79002d601835a0b16848b040653360e4ba411d
-------------------
The cross-chain public key for the account "sample.testnet" on the NEAR testnet with the derivation path "account-1" is:
**Public Key**: 0433cea8fa3b41fa277d16af5895aca4bcea550470a40dfaa4aaff3d7eafeb5b1bf13e9b6d8e55a3f2ecba326a3e79002d601835a0b16848b040653360e4ba411d
If you need any more help, feel free to ask!

Checklist

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

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

@cb-heimdall

cb-heimdall commented Mar 13, 2025

Copy link
Copy Markdown

🟡 Heimdall Review Status

RequirementStatusMore Info
Reviews 🟡 0/1
Denominator calculation
Show calculation
1 if user is bot0
1 if user is external0
From .codeflow.yml1
Additional review requirements
Show calculation
Max0
0
From CODEOWNERS0
Global minimum0
Max 1
1
1 if commit is unverified1
Sum2

@github-actionsgithub-actionsBot added documentation Improvements or additions to documentation action provider New action provider wallet provider New wallet provider example New example agent typescript labels Mar 13, 2025
@EdsonAlcalaEdsonAlcala changed the title wip: Feat/near chain signatures supportFeat/near chain signatures supportMar 17, 2025
@EdsonAlcala
EdsonAlcala marked this pull request as ready for review March 17, 2025 16:29
@EdsonAlcalaEdsonAlcala changed the title Feat/near chain signatures supportfeat/near chain signatures supportMar 17, 2025
@EdsonAlcala
EdsonAlcalaforce-pushed the feat/near-chain-signatures-support branch from 53a5467 to 47e1901CompareMarch 21, 2025 09:40
@github-actionsgithub-actionsBot added framework extension New framework extension python labels Mar 21, 2025
@EdsonAlcala
EdsonAlcalaforce-pushed the feat/near-chain-signatures-support branch from 47e1901 to a0e0917CompareMarch 21, 2025 10:14
@github-actionsgithub-actionsBot removed framework extension New framework extension python labels Mar 21, 2025
@EdsonAlcala

Copy link
Copy Markdown
Author

hey @murrlincoln, any comments on this PR? Thanks

Comment threadtypescript/agentkit/src/action-providers/near/nearActionProvider.ts Outdated
Comment threadtypescript/agentkit/src/wallet-providers/nearKeypairWalletProvider.ts Outdated
@EdsonAlcala

Copy link
Copy Markdown
Author

@CarsonRoscoe let me know what are your thoughts. Best

@EdsonAlcala

EdsonAlcala commented Apr 18, 2025

Copy link
Copy Markdown
Author

@CarsonRoscoe@murrlincoln I would like to ask you what is the criteria to merge and review PRs. Considering more recent PRs like #665 was merged before this one.

In general this PR has been open since March 13, that means after 36 days we are still here waiting and I have applied all your changes and suggestions.

No more changes have been required from our side.

If there are doubts or suggestions I'm happy to jump on a call and discuss about it. On the other hand, if the PR is not up to your coding standards or is not welcome you can also let me know. Because I have been constantly rebasing and merging and there is not clarity with it. I mean not even the pipeline has run.

@EdsonAlcala

Copy link
Copy Markdown
Author

@CarsonRoscoe@murrlincoln Is this really the way to treat contributors?

@EdsonAlcala

Copy link
Copy Markdown
Author

@CarsonRoscoe@murrlincoln any updates?

@EdsonAlcala

EdsonAlcala commented May 29, 2025

Copy link
Copy Markdown
Author

any updates on this? @CarsonRoscoe@murrlincoln

1 similar comment
@EdsonAlcala

Copy link
Copy Markdown
Author

any updates on this? @CarsonRoscoe@murrlincoln

Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

action providerNew action providerbananadocumentationImprovements or additions to documentationexampleNew example agenttypescriptwallet providerNew wallet provider

Development

Successfully merging this pull request may close these issues.

5 participants

@EdsonAlcala@cb-heimdall@CarsonRoscoe@murrlincoln@Tanker187
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content

feat/near chain signatures support - #562

Open
EdsonAlcala wants to merge 47 commits into
coinbase:mainfrom
EdsonAlcala:feat/near-chain-signatures-support
Open

feat/near chain signatures support#562
EdsonAlcala wants to merge 47 commits into
coinbase:mainfrom
EdsonAlcala:feat/near-chain-signatures-support

Conversation

@EdsonAlcala

@EdsonAlcalaEdsonAlcala commented Mar 13, 2025

Copy link
Copy Markdown

Description

This PR adds support for the NEAR protocol chain signatures, that allows a NEAR protocol account to control other accounts/addresses across multiple chains.

In order to enable the chain signatures support a NearKeyPairWalletProvider was required.

The PR also includes an example bot.

The following actions contain the functionality of the NEAR protocol chain signatures:

  • get cross chain address
  • get cross chain public key
  • sign payload

Tests

  • Added unit tests
  • Testet prompts

Sign payload

Chatbot: typescript/examples/langchain-near-chatbot/chatbot.ts
Network: near-testnet
Setup: Users will be able to create a NEAR account
Prompt: sign me this payload "0x470637f6dcc98931d6d22afa2b491c20caf0c3ba595d707606fe7915c30ef0a7" using chain signatures -------------------
The signature result is big_r: 02ACE91E6368E5859640CB8E988D70E6C1551E3B8AEC897084C5A2797EF606CCE8, big_s: 3A84B3C0C157FFE0AC271A07F6ABB4BA8821E010F359FAEE05D82796122926F2 and recovery_id: 0
-------------------
The payload has been successfully signed. Here are the signature details:
- **big_r**: 02ACE91E6368E5859640CB8E988D70E6C1551E3B8AEC897084C5A2797EF606CCE8
- **big_s**: 3A84B3C0C157FFE0AC271A07F6ABB4BA8821E010F359FAEE05D82796122926F2
- **recovery_id**: 0
Let me know if you need any further assistance!

Get cross chain public key

Chatbot: typescript/examples/langchain-near-chatbot/chatbot.ts
Network: near-testnet
Setup: Users will be able to create a NEAR account
Prompt: what is the cross chain public key for the account sample.testnet
-------------------
Computed public key for account id sample.testnet, network near-testnet and derivation path account-1 is 0433cea8fa3b41fa277d16af5895aca4bcea550470a40dfaa4aaff3d7eafeb5b1bf13e9b6d8e55a3f2ecba326a3e79002d601835a0b16848b040653360e4ba411d
-------------------
The cross-chain public key for the account "sample.testnet" on the NEAR testnet with the derivation path "account-1" is:
**Public Key**: 0433cea8fa3b41fa277d16af5895aca4bcea550470a40dfaa4aaff3d7eafeb5b1bf13e9b6d8e55a3f2ecba326a3e79002d601835a0b16848b040653360e4ba411d
If you need any more help, feel free to ask!

Checklist

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

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

@cb-heimdall

cb-heimdall commented Mar 13, 2025

Copy link
Copy Markdown

🟡 Heimdall Review Status

RequirementStatusMore Info
Reviews 🟡 0/1
Denominator calculation
Show calculation
1 if user is bot0
1 if user is external0
From .codeflow.yml1
Additional review requirements
Show calculation
Max0
0
From CODEOWNERS0
Global minimum0
Max 1
1
1 if commit is unverified1
Sum2

@github-actionsgithub-actionsBot added documentation Improvements or additions to documentation action provider New action provider wallet provider New wallet provider example New example agent typescript labels Mar 13, 2025
@EdsonAlcalaEdsonAlcala changed the title wip: Feat/near chain signatures supportFeat/near chain signatures supportMar 17, 2025
@EdsonAlcala
EdsonAlcala marked this pull request as ready for review March 17, 2025 16:29
@EdsonAlcalaEdsonAlcala changed the title Feat/near chain signatures supportfeat/near chain signatures supportMar 17, 2025
@EdsonAlcala
EdsonAlcalaforce-pushed the feat/near-chain-signatures-support branch from 53a5467 to 47e1901CompareMarch 21, 2025 09:40
@github-actionsgithub-actionsBot added framework extension New framework extension python labels Mar 21, 2025
@EdsonAlcala
EdsonAlcalaforce-pushed the feat/near-chain-signatures-support branch from 47e1901 to a0e0917CompareMarch 21, 2025 10:14
@github-actionsgithub-actionsBot removed framework extension New framework extension python labels Mar 21, 2025
@EdsonAlcala

Copy link
Copy Markdown
Author

hey @murrlincoln, any comments on this PR? Thanks

Comment threadtypescript/agentkit/src/action-providers/near/nearActionProvider.ts Outdated
Comment threadtypescript/agentkit/src/wallet-providers/nearKeypairWalletProvider.ts Outdated
@EdsonAlcala

Copy link
Copy Markdown
Author

@CarsonRoscoe let me know what are your thoughts. Best

@EdsonAlcala

EdsonAlcala commented Apr 18, 2025

Copy link
Copy Markdown
Author

@CarsonRoscoe@murrlincoln I would like to ask you what is the criteria to merge and review PRs. Considering more recent PRs like #665 was merged before this one.

In general this PR has been open since March 13, that means after 36 days we are still here waiting and I have applied all your changes and suggestions.

No more changes have been required from our side.

If there are doubts or suggestions I'm happy to jump on a call and discuss about it. On the other hand, if the PR is not up to your coding standards or is not welcome you can also let me know. Because I have been constantly rebasing and merging and there is not clarity with it. I mean not even the pipeline has run.

@EdsonAlcala

Copy link
Copy Markdown
Author

@CarsonRoscoe@murrlincoln Is this really the way to treat contributors?

@EdsonAlcala

Copy link
Copy Markdown
Author

@CarsonRoscoe@murrlincoln any updates?

@EdsonAlcala

EdsonAlcala commented May 29, 2025

Copy link
Copy Markdown
Author

any updates on this? @CarsonRoscoe@murrlincoln

1 similar comment
@EdsonAlcala

Copy link
Copy Markdown
Author

any updates on this? @CarsonRoscoe@murrlincoln

Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

action providerNew action providerbananadocumentationImprovements or additions to documentationexampleNew example agenttypescriptwallet providerNew wallet provider

Development

Successfully merging this pull request may close these issues.

5 participants

@EdsonAlcala@cb-heimdall@CarsonRoscoe@murrlincoln@Tanker187