Python library to create and submit Ethereum transactions to custodians connected with MetaMask Institutional; the most trusted DeFi wallet and Web3 gateway for organizations.
Project description
MetaMask Institutional SDK (Beta)
A Python library to create and submit Ethereum transactions to custodians connected with MetaMask Institutional; the most trusted DeFi wallet and Web3 gateway for organizations.
BETA DISCLAIMER. By using this library, you acknowledge the technology is still in Beta access and for internal testing purposes only. You are responsible for your use of the Beta access to Open Source SDK and ConsenSys is not responsible for any bugs, deficiencies or issues that may occur.
Usage
Use this SDK to programmatically create Ethereum transactions, and submit them to custodians connected with MetaMask Institutional. Automate trading strategies on your wallets under custody, and still benefit from the institutional-grade security of your favorite qualified custodian and custody provider.
Getting started
Setting up
$ pip install mmisdk
>>> from mmisdk import CustodianFactory
>>> factory = CustodianFactory()
>>> custodian = factory.create_for("qredo", "YOUR-TOKEN")
Use the custodian's Factory name param in the table below to instantiate a client for the right custodian.
Custodian | Supported | As of version | Factory name param |
---|---|---|---|
Bitgo | ✅ | 0.3.0 |
"bitgo" |
Cactus | ✅ | 0.2.0 |
"cactus" |
FPG | ✅ | 0.4.0 |
"fpg-prod" |
Gnosis Safe | ✅ | 0.4.0 |
"gnosis-safe" |
Qredo | ✅ | 0.2.0 |
"qredo" |
Saturn | ✅ | 0.4.0 |
"saturn" |
Creating a transaction
import os
from mmisdk import CustodianFactory
# Instantiate the factory
factory = CustodianFactory()
# Grab your token from the environment, or anywhere else
token = os.environ["MMISDK_TOKEN_QREDO"]
# Create the custodian, using the factory
custodian = factory.create_for("qredo", token)
# Build tx details
tx_params = {
"from": "0x62468FD916bF27A3b76d3de2e5280e53078e13E1",
"to": "0x62468FD916bF27A3b76d3de2e5280e53078e13E1",
"value": "100000000000000000", # in Wei
"gas": "21000",
"gasPrice": "1000",
# "data": "0xsomething",
# "type": "2"
# "maxPriorityFeePerGas": "12321321",
# "maxFeePerGas": "12321321",
}
qredo_extra_params = {
"chainID": "3",
}
# Create the tx from details and send it to the custodian
transaction = custodian.create_transaction(tx_params, qredo_extra_params)
print(type(transaction))
# <class 'mmisdk.common.transaction.Transaction'>
print(transaction)
# id='2EzDJkLVIjmH6LZQ2W1T4wPcTtK'
# type='1'
# from_='0x62468FD916bF27A3b76d3de2e5280e53078e13E1'
# to='0x62468FD916bF27A3b76d3de2e5280e53078e13E1'
# value='100000000000000000'
# gas='21000'
# gasPrice='1000'
# maxPriorityFeePerGas=None
# maxFeePerGas=None
# nonce='0'
# data=''
# hash=''
# status=TransactionStatus(finished=False, submitted=False, signed=False, success=False, displayText='Created', reason='Unknown')
Getting a transaction
import os
from mmisdk import CustodianFactory
# Instantiate the factory
factory = CustodianFactory()
# Grab your token from the environment, or anywhere else
token = os.environ["MMISDK_TOKEN_CACTUS"]
# Create the custodian, using the factory
custodian = factory.create_for("cactus", token)
# Get the transaction
transaction = custodian.get_transaction("5CM05NCLMRD888888000800", 5)
print(type(transaction))
# <class 'mmisdk.common.transaction.Transaction'>
print(transaction)
# id='5CM05NCLMRD888888000800'
# type='1'
# from_='0xFA42B2eCf59abD6d6BD4BF07021D870E2FC0eF20'
# to=None
# value=None
# gas='133997'
# gasPrice='2151'
# maxPriorityFeePerGas=None
# maxFeePerGas=None
# nonce=''
# data=None
# hash=None
# status=TransactionStatus(finished=False, submitted=False, signed=False, success=False, displayText='Created', reason='Unknown')
Examples
Continue on the page Examples to see all code examples.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file mmisdk-0.4.6.tar.gz
.
File metadata
- Download URL: mmisdk-0.4.6.tar.gz
- Upload date:
- Size: 231.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.1 CPython/3.10.7
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | e452475c4f98682cb6f95960e024077febd3638b10dc056cbe7b636f5a7691bd |
|
MD5 | e4fc761cc69c88efe7022efa81d8786c |
|
BLAKE2b-256 | 6ec78cddb15df9744feca258c9b0b6c1c185b388fc8ac8d29eaf42a992643824 |
File details
Details for the file mmisdk-0.4.6-py3-none-any.whl
.
File metadata
- Download URL: mmisdk-0.4.6-py3-none-any.whl
- Upload date:
- Size: 57.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.1 CPython/3.10.7
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | ba551addde2d0b77a7b70b2ff75d0385fe41e76aeb572642048dd5c17aceb7f3 |
|
MD5 | ea2abde8a7cf416440789f296dc9b110 |
|
BLAKE2b-256 | 12adce8460cbe1011101bc98ff34fe966f0a2e8f05cbf8a57e2c171e46920dfc |