Skip to main content

ccip-terminal Documentation

ccip-terminal is a Python package and CLI for managing cross-chain token transfers using Chainlink CCIP.

The package can be considered a self-custodial bridge; it supports batch transfers, scheduled jobs, CCIP status monitoring, and address book utilities.

For now the package only supports USDC; other currencies will be added later.

This package supports testnet CCIP as well.

Installation

# Install via uv
pip install uv  # Only if not already installed
uv pip install ccip_terminal[all] # For both core and scheduler packages

# By name
uv pip install ccip-terminal # Base library
uv pip install ccip-terminal[scheduler]
uv pip install ccip-terminal[all] #Both base and scheduler 

CLI Usage

uv run python cli.py [COMMAND] [OPTIONS]

Commands

transfer

Send a USDC transfer via Chainlink CCIP.

Options

Option Description
--to Destination wallet address
--dest Destination chain
--amount Amount to send
--source (optional) Source chain (default: ethereum)
--batch-file (optional) Path to batch JSON or CSV file
--account-index (optional) Account index to use
--wait-status (optional) Wait for CCIP Tx to Finalize
--notify-email (optional) Email address to notify
--estimate (optional) A Fee Estimate Value

Examples

Single Transfer:

python cli.py transfer --to 0xabc... --dest arbitrum --amount 10

Batch Transfer:

python cli.py transfer --batch-file ./transfers/batch.json

ccip-status

Check the status of a CCIP message.

Options

Option Description
--message-id CCIP message ID (with 0x)
--dest-chain Destination chain
--wait (optional) Wait for confirmation
--timeout (optional) Max wait time in seconds
--interval (optional) Polling interval in seconds

Example

python cli.py ccip-status --message-id 0xabc... --dest-chain optimism

schedule-transfer

Schedule a recurring transfer using cron.

Options

Option Description
--to Destination wallet address
--amount Amount to send
--dest Destination chain
--source (optional) Source chain
--account-index (optional) Account index
--cron Cron expression

Example

python cli.py schedule-transfer --to 0xabc... --amount 5 --dest optimism --cron "0 9 * * *"

address

Manage a local address book.

Subcommands

  • add → Save a new address
  • list → View saved addresses
  • remove → Delete an address by name

Examples

python cli.py address add --name Alice --address 0xabc...
python cli.py address list
python cli.py address remove --name Alice

Project Structure

ccip_terminal/
├── cli.py
├── ccip_terminal/
│   ├── core.py
│   ├── ccip.py
│   ├── logger.py
│   ├── accounts.py
│   ├── env.py
│   └── ...
├── scheduler/
│   └── ...
├── address_book.json
├── README.md

Environment Variables

Create a .env file and include:

PRIVATE_KEYS=
COINGECKO_API_KEY =
ALCHEMY_API_KEY =
INFURA_API_KEY =
NOTIFY_EMAIL =
ETHERSCAN_API_KEY =
SMTP_SERVER=
SMTP_PORT=587
SMTP_USER=
SMTP_PASSWORD=
NETWORK_TYPE=

INFURA_API_KEY is the only required variable, but ETHERSCAN_API_KEY is also reccomended for accurate gas estimation.

NETWORK_TYPE environment variable expects either "testnet" or "mainnet", and defaults to "mainnet"

License

MIT License

Contact Info

Metadata

Release files for ccip-terminal 0.1.3

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for ccip-terminal 0.1.3
File Size Uploaded
ccip_terminal-0.1.3.tar.gz 31.2 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for ccip-terminal 0.1.3
File Interpreter ABI Platform
ccip_terminal-0.1.3-py3-none-any.whl Python 3 none any Details

Total release size: 65.5 kB

Release files / ccip_terminal-0.1.3.tar.gz

Download URL ccip_terminal-0.1.3.tar.gz
Size 31.2 kB
Tags Source
SHA-256 checksum
How to use checksums
861907de84f937e406b8d5bc0aa2c7dc9e5369ab69abf3125b3fc06391329f9b
BLAKE2b-256 checksum
How to use checksums
f7b2bb68ff29a70e2aaa81131fba5f8ebb8d4868c39a813a59b6fce9a62a9521
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.3

Release files / ccip_terminal-0.1.3-py3-none-any.whl

Download URL ccip_terminal-0.1.3-py3-none-any.whl
Size 34.3 kB
Tags Python 3
SHA-256 checksum
How to use checksums
424e14caca7cd5e2ed47897997adaa4c7d5a021e7769b1a6937e5bac403bd667
BLAKE2b-256 checksum
How to use checksums
e6590d1b08b360b0789b025be0046a7694e15cad90f3064c6795d038a9c4a361
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.3

Release history Release notifications | RSS feed

This release

0.1.3 This release

2 release files

0.1.2

2 release files

0.1.1

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page