Skip to main content
POST
/
v1
/
w3s
/
contracts
/
import
Import a contract
curl --request POST \
  --url https://api.circle.com/v1/w3s/contracts/import \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '{
  "idempotencyKey": "a0eebc99-9c0b-4ef8-bb6d-6bb9bd380a11",
  "name": "First Contract",
  "description": "My first hello world contract",
  "address": "0x1e124d7384cd34448ea5907bd0052a79355ab5eb",
  "blockchain": "MATIC-AMOY"
}'
{
  "data": {
    "contract": {
      "id": "c4d1da72-111e-4d52-bdbf-2e74a2d803d5",
      "deployerWalletID": "f39e3dbd-84af-4d3d-b5ac-98fbe047ce6a",
      "deploymentTransactionId": "00ca46f3-c31b-4e3a-92a9-068d4ff26a63",
      "txHash": "0x4a25cc5e661d8504b59c5f38ba93f010e8518966f00e2ceda7955c4b8621357d",
      "abiJson": "[{\"inputs\": [],\"stateMutability\": \"nonpayable\",\"type\": \"constructor\"},...",
      "archived": false,
      "blockchain": "MATIC-AMOY",
      "contractAddress": "0x1e124d7384cd34448ea5907bd0052a79355ab5eb",
      "contractInputType": "IMPORT",
      "deployerAddress": "0x1bf9ad0cc2ad298c69a2995aa806ee832788218c",
      "deployerUserID": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
      "deploymentErrorReason": "<string>",
      "deploymentErrorDetails": "<string>",
      "name": "First Contract",
      "description": "My first hello world contract",
      "status": "PENDING",
      "verificationStatus": "UNVERIFIED",
      "metadataLink": "https://ipfs.io/ipfs/Qme7ss3ARVgxv6rXqVPiikMJ8u2NLgmgszg13pYrDKEoiu",
      "updateDate": "2023-01-01T12:04:05Z",
      "createDate": "2023-01-01T12:04:05Z",
      "sourceCode": [
        {
          "fileName": "openzeppelin-solidity/contracts/math/SafeMath.sol",
          "fileContent": "pragma solidity ^0.4.24;\n\n/**\n * @title SafeMath\n * @dev Math operations with safety checks..."
        }
      ],
      "functions": [
        {
          "name": "approve",
          "stateMutability": "nonpayable",
          "type": "function",
          "inputs": [
            {
              "components": [
                "<any>"
              ],
              "indexed": true,
              "name": "to",
              "type": "address",
              "flattenedType": "<string>"
            }
          ],
          "outputs": [
            {
              "components": [
                "<any>"
              ],
              "indexed": true,
              "name": "to",
              "type": "address",
              "flattenedType": "<string>"
            }
          ]
        }
      ],
      "events": [
        {
          "name": "Approval",
          "type": "event",
          "anonymous": false,
          "inputs": [
            {
              "components": [
                "<any>"
              ],
              "indexed": true,
              "name": "to",
              "type": "address",
              "flattenedType": "<string>"
            }
          ]
        }
      ],
      "implementationContract": {}
    }
  }
}

Authorizations

Authorization
string
header
required

Circle's API Keys are formatted in the following structure "PREFIX:ID:SECRET". All three parts are requred to make a successful request.

Headers

X-Request-Id
string

Developer-provided parameter used to identify this request. Useful when communicating with Circle Support.

Example:

"2adba88e-9d63-44bc-b975-9b6ae3440dde"

Body

application/json

Import contract request

idempotencyKey
string<uuid>
required

Universally unique identifier (UUID v4) idempotency key. This key is utilized to ensure exactly-once execution of mutating requests. To create a UUIDv4 go to uuidgenerator.net. If the same key is reused, it will be treated as the same request and the original response will be returned.

Example:

"a0eebc99-9c0b-4ef8-bb6d-6bb9bd380a11"

name
string
required

The name for a contract. Must be alphanumeric [a-zA-Z0-9].

Example:

"First Contract"

address
string
required

The on-chain address of this contract.

Example:

"0x1e124d7384cd34448ea5907bd0052a79355ab5eb"

blockchain
enum<string>
required

The blockchain network that the resource is to be created on or is currently on. Required along with sourceAddress if you don't provide walletId. The blockchain and walletId fields are mutually exclusive.

Available options:
ETH,
ETH-SEPOLIA,
MATIC,
MATIC-AMOY,
ARB,
ARB-SEPOLIA,
UNI,
UNI-SEPOLIA,
BASE,
BASE-SEPOLIA,
OP,
OP-SEPOLIA
Example:

"MATIC-AMOY"

description
string

The description for a contract.

Example:

"My first hello world contract"

Response

Idempotent request. Contract was already imported.

data
object
required