Skip to main content

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)

The package mmisdk has been renamed metamask-institutional.sdk, and is no longer maintained under the name mmisdk. Please use instead metamask-institutional.sdk.

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.

Banner

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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

mmisdk-0.5.0.tar.gz (231.7 kB view details)

Uploaded Source

Built Distribution

mmisdk-0.5.0-py3-none-any.whl (57.2 kB view details)

Uploaded Python 3

File details

Details for the file mmisdk-0.5.0.tar.gz.

File metadata

  • Download URL: mmisdk-0.5.0.tar.gz
  • Upload date:
  • Size: 231.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.1 CPython/3.10.6

File hashes

Hashes for mmisdk-0.5.0.tar.gz
Algorithm Hash digest
SHA256 50e8b796b8a0dd0a70d339315629ed61f08c675a11a73291067211918709e536
MD5 3a43afdcac326aaba5e94795076f1a6a
BLAKE2b-256 569769d6c56511a038aab2f4df3bdd2e6e8544db53f511fe0741687090ce811c

See more details on using hashes here.

File details

Details for the file mmisdk-0.5.0-py3-none-any.whl.

File metadata

  • Download URL: mmisdk-0.5.0-py3-none-any.whl
  • Upload date:
  • Size: 57.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.1 CPython/3.10.6

File hashes

Hashes for mmisdk-0.5.0-py3-none-any.whl
Algorithm Hash digest
SHA256 522bd42c221a33ec2036a2bb0aa69c4ba8e1f4572ad33ddcb416371057570d1d
MD5 9c6f0336657e5edec5e6b16e978dbb59
BLAKE2b-256 ed68c59548fba9a27da8c3b0f292ed2c7b20166150baaf0a5a2f321406c8ffc7

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page