{"id":22834839,"url":"https://github.com/circlefin/sui-cctp","last_synced_at":"2025-08-31T23:36:10.672Z","repository":{"id":267484770,"uuid":"865593173","full_name":"circlefin/sui-cctp","owner":"circlefin","description":"Official repository for Sui smart contracts used by the Cross-Chain Transfer Protocol","archived":false,"fork":false,"pushed_at":"2025-08-22T03:35:03.000Z","size":1437,"stargazers_count":11,"open_issues_count":4,"forks_count":8,"subscribers_count":8,"default_branch":"master","last_synced_at":"2025-08-28T16:51:30.734Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Move","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/circlefin.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2024-09-30T19:35:57.000Z","updated_at":"2025-08-12T10:30:51.000Z","dependencies_parsed_at":null,"dependency_job_id":"6239ee24-27f6-4f9b-a770-26ac8fc20313","html_url":"https://github.com/circlefin/sui-cctp","commit_stats":null,"previous_names":["circlefin/sui-cctp"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/circlefin/sui-cctp","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/circlefin%2Fsui-cctp","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/circlefin%2Fsui-cctp/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/circlefin%2Fsui-cctp/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/circlefin%2Fsui-cctp/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/circlefin","download_url":"https://codeload.github.com/circlefin/sui-cctp/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/circlefin%2Fsui-cctp/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":273054197,"owners_count":25037542,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-08-31T02:00:09.071Z","response_time":79,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-12-12T22:07:40.174Z","updated_at":"2025-08-31T23:36:10.650Z","avatar_url":"https://github.com/circlefin.png","language":"Move","funding_links":[],"categories":[],"sub_categories":[],"readme":"# sui-cctp\n\nOfficial repository for Sui smart contracts used by the Cross-Chain Transfer Protocol.\n\n[CCTP Documentation](https://developers.circle.com/stablecoins/cctp-getting-started)\n\n## Getting Started\n\n### Prerequisites\n\nBefore you can get started working on the contracts in this repository, make sure you have the following prerequisites installed:\n\n1. [Install Rust.](https://doc.rust-lang.org/book/ch01-01-installation.html#installing-rustup-on-linux-or-macos)\n\n2. Install Sui from source:\n\n    ```bash\n    ./setup.sh\n    ```\n\n### IDE\n\n- VSCode is recommended for developing Move for Sui.\n- [Move (Extension)](https://marketplace.visualstudio.com/items?itemName=mysten.move) is a language server extension for Move. **Note**: additional installation steps required. Please follow the plugin's installation guide.\n- [Move Syntax](https://marketplace.visualstudio.com/items?itemName=damirka.move-syntax) a simple syntax highlighting extension for Move.\n\n### Build and Test Contracts\n\n1. Compile Move contracts from project root:\n\n    ```bash\n    sui move build --path packages/message_transmitter\n    sui move build --path packages/token_messenger_minter\n    ```\n\n2. Run tests and see test coverage:\n\n    ```bash\n    ./test_and_cov.sh\n    ```\n\n3. If test coverage is \u003c 100%, view the coverage line by line:\n\n    ```bash\n    sui move coverage source --path packages/{package_path} --module {module_name}\n    ```\n\n### Publish Contracts Locally\n\n1. Set up local Sui node and EVM network (optional):\n\n    ```bash\n    ./run.sh start_network\n    # Optional, only if you want to run E2E tests\n    ./setup-evm-contracts.sh\n    ```\n\n2. Run the `configure_manifest.sh` script to update to the required localnet manifests:\n\n    ```bash\n    ./configure_manifest.sh localnet\n    ```\n\n3. Enter the `scripts` folder and rename the provided `.env.example` to `.env`. If the `DEPLOYER_PRIVATE_KEY` field is not set, then the deployment script will automatically generate a new keypair. Then, deploy the contracts.\n\n    ```bash\n    cp .env.example .env\n    yarn install\n    yarn deploy-local\n    ```\n\nThe local containers and Sui node can be stopped with:\n\n```bash\n./run.sh stop_network\n./docker-stop-containers.sh\n```\n\n### Run Localnet Example Scripts\n\n1. Publish contracts locally, following the steps above.\n\n2. Run the example script for Sui -\u003e EVM:\n\n    ```bash\n    cd scripts\n    yarn deposit-for-burn-example\n    ```\n\n3. Run the example script for EVM -\u003e Sui:\n\n    ```bash\n    yarn receive-message-example\n    ```\n\n### Run E2E Tests\n\n1. Publish contracts locally, following the steps above.\n\n2. Run the test script:\n\n    ```bash\n    yarn test-local\n    ```\n\n### Published Bytecode Verification\n\n1. Ensure [Sui CLI](https://docs.sui.io/guides/developer/getting-started/sui-install) is installed.\n\n2. And the desired environment configured:\n\n```bash\nsui client switch --env {testnet|mainnet}\n```\n\n3. Set all published addresses in the move.toml files OR use the\n[testnet](https://github.com/circlefin/sui-cctp/tree/testnet)/[mainnet](https://github.com/circlefin/sui-cctp/tree/mainnet) (coming soon) \nbranches which contain `Move.lock` files that use Sui's\n[Automated Address Management](https://docs.sui.io/concepts/sui-move-concepts/packages/automated-address-management)\nfor Testnet and Mainnet (coming soon) addresses.\n\n4. Published packages can then be verified with:\n\n```bash\n./run.sh verify_on_chain packages/message_transmitter\n./run.sh verify_on_chain packages/token_messenger_minter\n```\n\n## CCTP as a Dependency\n\nThe [testnet](https://github.com/circlefin/sui-cctp/tree/testnet) and [mainnet](https://github.com/circlefin/sui-cctp/tree/mainnet) (coming soon)\nbranches contain `Move.lock` files that use Sui's\n[Automated Address Management](https://docs.sui.io/concepts/sui-move-concepts/packages/automated-address-management)\nfor Testnet and Mainnet (coming soon) addresses. It also references stablecoin-sui dependencies which uses automated address management as well.\n\nDeployed bytecode can be verified by following the steps in the previous section.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcirclefin%2Fsui-cctp","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcirclefin%2Fsui-cctp","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcirclefin%2Fsui-cctp/lists"}