MCS 2.0 API

This is a Postman Collection for the Multi-Chain Storage API v1 endpoints. The page below describes different components of our API offering.

Common

Get system config

GET https://mcs-api.filswan.com/api/v1/common/system/params

This endpoint allows you to get system config

{
    "status": "success",
    "code": 200,
    "data": {
        "GAS_LIMIT": 8000000,
        "LOCK_TIME": 6,
        "MINT_CONTRACT_ADDRESS": "0x1A1e5AC88C493e0608C84c60b7bb5f04D9cF50B3",
        "PAYMENT_CONTRACT_ADDRESS": "0x80a186DCD922175019913b274568ab172F6E20b1",
        "PAYMENT_RECIPIENT_ADDRESS": "0xc4fcaAdCb0b00a9501e56215c37B10fAF9e79c0a",
        "PAY_MULTIPLY_FACTOR": 1.5,
        "USDC_ADDRESS": "0xe11A86849d99F524cAC3E7A0Ec1241828e332C62"
    }
}

Get host info

GET https://mcs-api.filswan.com/api/v1/common/host/info

{
    "status": "success",
    "data": {
        "version": "MCS-2.0.0",
        "operating_system": "darwin",
        "architecture": "arm64",
        "cpu_number": 8,
        "current_unix_nano": 1654203545105082000
    }
}

Upload file

Get USDC/Filecoin exchange rate

GET https://mcs-api.filswan.com/api/v1/billing/price/filecoin

This endpoint allows you to get the current exchange rate of USDC against Filecoin.

{
    "status":"success",
    "code":"200",
    "data":173
}

Get average Filecoin statistics.

GET https://api.filswan.com/stats/storage

This endpoint allows you to get average Filecoin storage price.

{
    "data":
    {
        "average_cost_push_message":" FIL",
        "average_data_cost_sealing_1TB":" FIL/TiB",
        "average_gas_cost_sealing_1TB":" FIL/TiB",
        "average_min_piece_size":" Byte",
        "average_price_per_GB_per_year":" FIL/GiB/year",
        "average_verified_price_per_GB_per_year":" FIL/GiB/year"},
        "status":"success"
}

Upload to IPFS

POST https://mcs-api.filswan.com/api/v1/storage/ipfs/upload

This endpoint allows you to upload your file to IPFS server.

Request Body

NameTypeDescription

file*

Binary

file to be uploaded

duration*

String

days for the uploaded file to be kept on miner

file_type*

String

0:uploaded by user, 1:uploaded by nft

wallet_address*

String

wallet address used to pay

{
    "status": "success",
    "code": 200,
    "data": {
        "source_file_upload_id": 4,
        "payload_cid": "QmeHeqoByW6dGSba9joVUiPuyVafTm5m1qsEtRcYBmjtdr",
        "ipfs_url": "http://192.168.88.41:5050/ipfs/QmeHeqoByW6dGSba9joVUiPuyVafTm5m1qsEtRcYBmjtdr",
        "file_size": 1048671,
        "w_cid": "97286d72-78ac-4e9b-b0d9-f213df3c1698QmeHeqoByW6dGSba9joVUiPuyVafTm5m1qsEtRcYBmjtdr"
    }
}

My files

Get uploaded file list

GET https://mcs-api.filswan.com/api/v1/storage/tasks/deals

This endpoint allows you to get a list of your uploaded files.

Path Parameters

NameTypeDescription

file_name

String

file name of the uploaded file

page_size

Number

valid integer, otherwise 10(default)

page_number

Number

if not a valid number, or <=0, then 1, else use provided value

wallet_address*

String

uploaded under this wallet

order_by

String

file_name,file_size,upload_at(default)

is_ascend

String

y:ascend, others: descend(default)

{
    "status": "success",
    "code": 200,
    "data": {
        "source_file_upload": [
            {
                "source_file_upload_id": 1,
                "car_file_id": 1,
                "file_name": "test20",
                "file_size": 1048671,
                "upload_at": 1651507047,
                "duration": 525,
                "pin_status": "Pinned",
                "payload_cid": "bafybeicxl5dk3iqejtbbcj2b77icx45unajw4qrakmd5ag46jlnidykk2y",
                "status": "Processing",
                "token_id": "",
                "mint_address": "",
                "nft_tx_hash": "",
                "offline_deal": [
                    {
                        "id": 1,
                        "car_file_id": 1,
                        "deal_cid": "bafyreihwmwh2jgapiube6wrviax2zolpe26w35w4wy2x6b7q6blff7mpwe",
                        "miner_id": 1,
                        "verified": false,
                        "start_epoch": 926524,
                        "sender_wallet_id": 1,
                        "deal_id": 167814,
                        "status": "Created",
                        "note": null,
                        "on_chain_status": "StorageDealError",
                        "tx_hash_unlock": null,
                        "unlock_at": 0,
                        "create_at": 1651507495,
                        "update_at": 1651516351,
                        "miner_fid": "t03354"
                    }
                ]
            },
            {
                "source_file_upload_id": 2,
                "car_file_id": 2,
                "file_name": "test20",
                "file_size": 1048671,
                "upload_at": 1651509153,
                "duration": 525,
                "pin_status": "Pinned",
                "payload_cid": "bafybeicxl5dk3iqejtbbcj2b77icx45unajw4qrakmd5ag46jlnidykk2y",
                "status": "Processing",
                "token_id": "",
                "mint_address": "",
                "nft_tx_hash": "",
                "offline_deal": [
                    {
                        "id": 2,
                        "car_file_id": 2,
                        "deal_cid": "bafyreic6dd722zindqx6svw4snk5czwn4hi4dprzcps3xkiiklqrz5ay5a",
                        "miner_id": 1,
                        "verified": false,
                        "start_epoch": 926588,
                        "sender_wallet_id": 1,
                        "deal_id": 167815,
                        "status": "Created",
                        "note": null,
                        "on_chain_status": "StorageDealError",
                        "tx_hash_unlock": null,
                        "unlock_at": 0,
                        "create_at": 1651509304,
                        "update_at": 1651516351,
                        "miner_fid": "t03354"
                    }
                ]
            },
            {
                "source_file_upload_id": 3,
                "car_file_id": 0,
                "file_name": "test20",
                "file_size": 1048671,
                "upload_at": 1651516702,
                "duration": 525,
                "pin_status": "Pinned",
                "payload_cid": "",
                "status": "Pending",
                "token_id": "",
                "mint_address": "",
                "nft_tx_hash": "",
                "offline_deal": []
            },
            {
                "source_file_upload_id": 4,
                "car_file_id": 0,
                "file_name": "test20",
                "file_size": 1048671,
                "upload_at": 1651519341,
                "duration": 525,
                "pin_status": "Pinned",
                "payload_cid": "",
                "status": "Pending",
                "token_id": "",
                "mint_address": "",
                "nft_tx_hash": "",
                "offline_deal": []
            }
        ],
        "total_record_count": 4
    }
}

Get deal details

GET https://mcs-api.filswan.com/api/v1/storage/deal/detail/<deal_id>

This endpoint allows you to get deal details and DAO details.

Path Parameters

NameTypeDescription

source_file_upload_id*

String

{
    "status": "success",
    "code": 200,
    "data": {
        "dao_threshold": 2,
        "source_file_upload_deal": {
            "deal_id": 0,
            "deal_cid": "",
            "message_cid": "",
            "height": 0,
            "piece_cid": "",
            "verified_deal": false,
            "storage_price_per_epoch": 0,
            "signature": "",
            "signature_type": "",
            "created_at": 0,
            "piece_size_format": "",
            "start_height": 0,
            "end_height": 0,
            "client": "",
            "client_collateral_format": "",
            "provider": "",
            "provider_tag": "",
            "verified_provider": 0,
            "provider_collateral_format": "",
            "status": 0,
            "network_name": "",
            "storage_price": 0,
            "ipfs_url": "http://192.168.88.41:5050/ipfs/QmeHeqoByW6dGSba9joVUiPuyVafTm5m1qsEtRcYBmjtdr",
            "file_name": "test20",
            "w_cid": "cff75975-144c-4e10-a1d7-ae0c30c1365cQmeHeqoByW6dGSba9joVUiPuyVafTm5m1qsEtRcYBmjtdr",
            "locked_at": 1651507068,
            "locked_fee": "5364546000000000",
            "unlocked": false
        }
    }
}

get deal logs

GET https://mcs-api.filswan.com/api/v1/storage/deal/log/<offline_deal_id>

This endpoint allows you to get offline deal logs

{
    "status": "success",
    "code": 200,
    "data": {
        "offline_deal_log": [
            {
                "id": 1,
                "offline_deal_id": 1,
                "on_chain_status": "StorageDealCheckForAcceptance",
                "on_chain_message": "Provider state: StorageDealWaitingForData",
                "create_at": 1651507615
            },
            {
                "id": 2,
                "offline_deal_id": 1,
                "on_chain_status": "StorageDealCheckForAcceptance",
                "on_chain_message": "Provider state: StorageDealPublish",
                "create_at": 1651507915
            },
            {
                "id": 3,
                "offline_deal_id": 1,
                "on_chain_status": "StorageDealCheckForAcceptance",
                "on_chain_message": "Provider state: StorageDealUnknown",
                "create_at": 1651509124
            }
        ]
    }
}

Get payment information

GET https://mcs-api.filswan.com/api/v1/billing/deal/lockpayment/info

This endpoint allows you to get the specific payment information by payload CID.

Path Parameters

NameTypeDescription

source_file_upload_id*

String

{
    "status": "success",
    "code": 200,
    "data": {
        "w_cid": "cff75975-144c-4e10-a1d7-ae0c30c1365cQmeHeqoByW6dGSba9joVUiPuyVafTm5m1qsEtRcYBmjtdr",
        "pay_amount": "5364546000000000",
        "pay_tx_hash": "0x864cb80257ea9e51d8ac8bedbd367d69b8effd7278db845d72c38a45b68f5fed",
        "token_address": "0xe11A86849d99F524cAC3E7A0Ec1241828e332C62"
    }
}

Record mint info

POST https://mcs-api.filswan.com/api/v1/storage/mint/info

This endpoint allows to record mint info to mcs database.

Request Body

NameTypeDescription

source_file_upload_id*

String

tx_hash*

String

token_id*

String

mint_address*

String

{
    "status": "success",
    "code": 200,
    "data": {
        "id": 1,
        "source_file_upload_id": 1,
        "nft_tx_hash": "ab",
        "mint_address": "eee",
        "token_id": "e",
        "create_at": 1651502337,
        "update_at": 1651502337
    }
}

Billing history

Get billing history

GET https://mcs-api.filswan.com/api/v1/billing

This endpoint allows you to get the billing history related to current wallet account.

Path Parameters

NameTypeDescription

wallet_address*

String

wallet who pay the file

page_size

Number

valid integer, otherwise 10(default)

page_number

Number

valid integer, otherwise 1(default)

file_name

String

file whose file_name include the parameter

order_by

String

pay_amount,unlock_amount,file_name,pay_at(default),unlock_at,deadline

is_ascend

String

y:ascend, others: descend(default)

{
    "status": "success",
    "code": 200,
    "data": {
        "billing": [
            {
                "pay_id": 1,
                "pay_tx_hash": "0x864cb80257ea9e51d8ac8bedbd367d69b8effd7278db845d72c38a45b68f5fed",
                "pay_amount": "5364546000000000",
                "unlock_amount": "",
                "file_name": "test20",
                "payload_cid": "bafybeicxl5dk3iqejtbbcj2b77icx45unajw4qrakmd5ag46jlnidykk2y",
                "pay_at": 1651507068,
                "unlock_at": 0,
                "deadline": 1652025461,
                "network_name": "polygon",
                "token_name": "USDC"
            },
            {
                "pay_id": 2,
                "pay_tx_hash": "0x9d0bd6698230aadfd1c8fafe34db730385173fddeed1275f3c3a93563b16f8c5",
                "pay_amount": "5364546000000000",
                "unlock_amount": "",
                "file_name": "test20",
                "payload_cid": "bafybeicxl5dk3iqejtbbcj2b77icx45unajw4qrakmd5ag46jlnidykk2y",
                "pay_at": 1651509167,
                "unlock_at": 0,
                "deadline": 1652027565,
                "network_name": "polygon",
                "token_name": "USDC"
            }
        ],
        "total_record_count": 2
    }
}

Last updated