langchain-send21
send21 tools for LangChain. Let an agent prepare a pay link and check its status without holding keys.
send21 is non-custodial software that prepares payment instructions. It never holds keys or funds, never signs and never broadcasts. The scoped API key this package uses can create a pay link but cannot move money: the payer signs in their own wallet.
Not an official LangChain package. Questions: info@send21.io
- Website: https://send21.io
- Docs: https://send21.io/docs (MCP server: https://send21.io/docs/mcp, webhooks: https://send21.io/docs/webhooks)
- Examples and source: https://github.com/send21io/send21-examples
Install
pip install langchain-send21
export SEND21_API_KEY=s21_... # scopes: drafts:write, drafts:read (https://send21.io/api-keys)
Use
from langchain.agents import create_agent
from langchain_send21 import PayOption, Send21Toolkit
tools = Send21Toolkit(receive_options=[
PayOption(currency="Usdc", network="Solana", address="<your-solana-address>"),
PayOption(currency="Btc", network="Mainnet", address="name@wallet.com", method="Lightning"),
]).get_tools()
agent = create_agent("openai:gpt-5-mini", tools=tools)
agent.invoke({"messages": [{"role": "user", "content": "Create a pay link for 40 EUR for order inv-1042."}]})
send21_create_pay_link(fiat_amount, fiat_currency, order_id?, memo?, decline_note?)returnspay_link,payment_request_id,status,expires_at. Receiving addresses come from your code, never from the model. Each call uses a fresh idempotency key, and with anorder_ida retry returns the open link instead of creating a second one.send21_get_pay_link_status(payment_request_id)returnsOpen,Completed,CancelledorExpiredplus any "what changed" notes.
Supported pairs: BTC on Bitcoin and Lightning; USDC on Solana, Ethereum, Base, Arbitrum, Polygon; USDT on Solana and Ethereum; EURC on Solana, Ethereum, Base; SOL; ETH on Ethereum, Base, Arbitrum. Others are refused before any API call.
Already using MCP? langchain-mcp-adapters can load all 11 tools from https://send21.io/mcp directly.
Develop
pip install -e '.[test]' && pytest # offline, mocked HTTP
MIT
Metadata
Release files for langchain-send21 0.1.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| langchain_send21-0.1.1.tar.gz | 4.4 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| langchain_send21-0.1.1-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 9.1 kB
Release files / langchain_send21-0.1.1.tar.gz
| Download URL | langchain_send21-0.1.1.tar.gz |
|---|---|
| Size | 4.4 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
a919d40e4d88c0b5398a6217a74f3177b0a3bd201dc1413d1f5cc8e70ab4040e
|
|
BLAKE2b-256 checksum How to use checksums |
e6f277aa37edfcb64f8138506ff3598039f2a6a510fdcf331463714fba6fd2e0
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.5
|
Release files / langchain_send21-0.1.1-py3-none-any.whl
| Download URL | langchain_send21-0.1.1-py3-none-any.whl |
|---|---|
| Size | 4.8 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
4b8cae62d4a7b6d603938e3af956330ffe49dbff5757c4160b9b7357208f6ee2
|
|
BLAKE2b-256 checksum How to use checksums |
4d1acb66c95843f4b39a2850342da5fe6df05da8abde88dea232701c250ce34f
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.5
|