850 lines
53 KiB
Python
850 lines
53 KiB
Python
#!/usr/bin/env python3
|
||
"""GNACS数据库完整初始化脚本"""
|
||
import sys
|
||
sys.path.insert(0, '/opt/nac/gnacs-service')
|
||
from pymongo import MongoClient, ASCENDING, DESCENDING
|
||
from datetime import datetime
|
||
|
||
MONGO_URI = "mongodb://gnacs_user:GnacsDB2026!@127.0.0.1:27017/gnacs_db?authSource=admin"
|
||
client = MongoClient(MONGO_URI)
|
||
db = client["gnacs_db"]
|
||
|
||
print("开始初始化GNACS数据库...")
|
||
|
||
# ============================================================
|
||
# 1. 资产大类(20大类)
|
||
# ============================================================
|
||
print("\n[1/4] 初始化20大类资产分类...")
|
||
db.asset_classes.drop()
|
||
|
||
asset_classes = [
|
||
{
|
||
"class_id": "RE", "class_code": "01", "name_cn": "不动产", "name_en": "Real Estate",
|
||
"token_standard": "ACC-20",
|
||
"sub_classes": [
|
||
{"code": "RE01", "name": "住宅物业", "min_kyc": 2, "risk_weight": 0.5},
|
||
{"code": "RE02", "name": "商业地产", "min_kyc": 3, "risk_weight": 0.6},
|
||
{"code": "RE03", "name": "工业地产", "min_kyc": 3, "risk_weight": 0.65},
|
||
{"code": "RE04", "name": "土地使用权", "min_kyc": 3, "risk_weight": 0.7},
|
||
{"code": "RE05", "name": "REITs份额", "min_kyc": 2, "risk_weight": 0.45},
|
||
],
|
||
"gnacs_prefix": "940100", "min_kyc_level": 2, "risk_weight": 0.55,
|
||
"valuation_method": "DCF+ComparableSales", "custodian_type": "CUST",
|
||
"required_docs": ["title_deed", "property_survey", "valuation_report"],
|
||
"description": "包括住宅、商业、工业地产及土地使用权等不动产资产"
|
||
},
|
||
{
|
||
"class_id": "FA", "class_code": "80", "name_cn": "金融资产", "name_en": "Financial Assets",
|
||
"token_standard": "ACC-1400",
|
||
"sub_classes": [
|
||
{"code": "FA01", "name": "股票收益权", "min_kyc": 3, "risk_weight": 0.7},
|
||
{"code": "FA02", "name": "公司债券", "min_kyc": 3, "risk_weight": 0.5},
|
||
{"code": "FA03", "name": "资产支持证券ABS", "min_kyc": 4, "risk_weight": 0.6},
|
||
{"code": "FA04", "name": "不良贷款NPL", "min_kyc": 4, "risk_weight": 0.8},
|
||
{"code": "FA05", "name": "基金份额", "min_kyc": 3, "risk_weight": 0.55},
|
||
{"code": "FA06", "name": "可转换债券", "min_kyc": 3, "risk_weight": 0.6},
|
||
],
|
||
"gnacs_prefix": "800000", "min_kyc_level": 3, "risk_weight": 0.65,
|
||
"valuation_method": "DCF+MarketComparable", "custodian_type": "C001",
|
||
"required_docs": ["prospectus", "financial_statements", "regulatory_approval"],
|
||
"description": "股票、债券、ABS等金融证券类资产,需持牌机构参与"
|
||
},
|
||
{
|
||
"class_id": "CM", "class_code": "02", "name_cn": "大宗商品", "name_en": "Commodities",
|
||
"token_standard": "ACC-1155",
|
||
"sub_classes": [
|
||
{"code": "CM01", "name": "能源(石油/天然气)", "min_kyc": 3, "risk_weight": 0.75},
|
||
{"code": "CM02", "name": "贵金属(黄金/白银)", "min_kyc": 2, "risk_weight": 0.4},
|
||
{"code": "CM03", "name": "工业金属(铜/铝)", "min_kyc": 2, "risk_weight": 0.55},
|
||
{"code": "CM04", "name": "农产品", "min_kyc": 2, "risk_weight": 0.6},
|
||
{"code": "CM05", "name": "矿产资源", "min_kyc": 3, "risk_weight": 0.7},
|
||
],
|
||
"gnacs_prefix": "020000", "min_kyc_level": 2, "risk_weight": 0.6,
|
||
"valuation_method": "SpotPrice+ForwardCurve", "custodian_type": "CUST",
|
||
"required_docs": ["warehouse_receipt", "quality_certificate", "insurance_policy"],
|
||
"description": "能源、金属、农产品等实物大宗商品"
|
||
},
|
||
{
|
||
"class_id": "AT", "class_code": "96", "name_cn": "艺术品与收藏品", "name_en": "Art & Collectibles",
|
||
"token_standard": "ACC-721",
|
||
"sub_classes": [
|
||
{"code": "AT01", "name": "当代艺术品", "min_kyc": 2, "risk_weight": 0.8},
|
||
{"code": "AT02", "name": "古典艺术品", "min_kyc": 3, "risk_weight": 0.85},
|
||
{"code": "AT03", "name": "古董文物", "min_kyc": 3, "risk_weight": 0.9},
|
||
{"code": "AT04", "name": "奢侈品收藏", "min_kyc": 2, "risk_weight": 0.75},
|
||
{"code": "AT05", "name": "数字艺术NFT", "min_kyc": 1, "risk_weight": 0.9},
|
||
{"code": "AT06", "name": "体育纪念品", "min_kyc": 2, "risk_weight": 0.8},
|
||
],
|
||
"gnacs_prefix": "960000", "min_kyc_level": 2, "risk_weight": 0.82,
|
||
"valuation_method": "ExpertAppraisal+AuctionHistory", "custodian_type": "NANO",
|
||
"required_docs": ["provenance_certificate", "expert_appraisal", "insurance_certificate"],
|
||
"description": "艺术品、古董、收藏品等高价值文化资产,每件唯一"
|
||
},
|
||
{
|
||
"class_id": "IP", "class_code": "97", "name_cn": "知识产权", "name_en": "Intellectual Property",
|
||
"token_standard": "ACC-721",
|
||
"sub_classes": [
|
||
{"code": "IP01", "name": "发明专利", "min_kyc": 2, "risk_weight": 0.75},
|
||
{"code": "IP02", "name": "商标权", "min_kyc": 2, "risk_weight": 0.65},
|
||
{"code": "IP03", "name": "版权(文学/音乐/影视)", "min_kyc": 2, "risk_weight": 0.7},
|
||
{"code": "IP04", "name": "软件著作权", "min_kyc": 2, "risk_weight": 0.65},
|
||
{"code": "IP05", "name": "域名资产", "min_kyc": 1, "risk_weight": 0.6},
|
||
{"code": "IP06", "name": "商业秘密", "min_kyc": 3, "risk_weight": 0.8},
|
||
],
|
||
"gnacs_prefix": "970000", "min_kyc_level": 2, "risk_weight": 0.7,
|
||
"valuation_method": "RoyaltyRelief+IncomeBased", "custodian_type": "DIGI",
|
||
"required_docs": ["registration_certificate", "ownership_proof", "valuation_report"],
|
||
"description": "专利、商标、版权等无形知识产权资产"
|
||
},
|
||
{
|
||
"class_id": "CC", "class_code": "98", "name_cn": "碳信用与ESG", "name_en": "Carbon Credits & ESG",
|
||
"token_standard": "ACC-1155",
|
||
"sub_classes": [
|
||
{"code": "CC01", "name": "碳排放配额(EUA)", "min_kyc": 2, "risk_weight": 0.5},
|
||
{"code": "CC02", "name": "自愿减排量(VER)", "min_kyc": 2, "risk_weight": 0.55},
|
||
{"code": "CC03", "name": "可再生能源证书(REC)", "min_kyc": 2, "risk_weight": 0.45},
|
||
{"code": "CC04", "name": "林业碳汇", "min_kyc": 2, "risk_weight": 0.6},
|
||
{"code": "CC05", "name": "蓝碳(海洋碳汇)", "min_kyc": 3, "risk_weight": 0.65},
|
||
],
|
||
"gnacs_prefix": "980000", "min_kyc_level": 2, "risk_weight": 0.52,
|
||
"valuation_method": "MarketPrice+VerificationCost", "custodian_type": "DIGI",
|
||
"required_docs": ["verification_report", "registry_certificate", "project_documentation"],
|
||
"description": "碳排放权、可再生能源证书等ESG环境资产"
|
||
},
|
||
{
|
||
"class_id": "DA", "class_code": "90", "name_cn": "数字原生资产", "name_en": "Digital Native Assets",
|
||
"token_standard": "ACC-20",
|
||
"sub_classes": [
|
||
{"code": "DA01", "name": "封装BTC(wBTC)", "min_kyc": 2, "risk_weight": 0.85},
|
||
{"code": "DA02", "name": "封装ETH(wETH)", "min_kyc": 2, "risk_weight": 0.8},
|
||
{"code": "DA03", "name": "NAC治理代币", "min_kyc": 1, "risk_weight": 0.7},
|
||
{"code": "DA04", "name": "稳定币(USDT/USDC)", "min_kyc": 1, "risk_weight": 0.2},
|
||
],
|
||
"gnacs_prefix": "900000", "min_kyc_level": 1, "risk_weight": 0.75,
|
||
"valuation_method": "MarketPrice", "custodian_type": "DIGI",
|
||
"required_docs": ["source_wallet_proof", "aml_check"],
|
||
"description": "封装跨链资产及NAC原生数字资产"
|
||
},
|
||
{
|
||
"class_id": "IF", "class_code": "07", "name_cn": "基础设施", "name_en": "Infrastructure",
|
||
"token_standard": "ACC-20",
|
||
"sub_classes": [
|
||
{"code": "IF01", "name": "交通基础设施(公路/铁路/港口)", "min_kyc": 4, "risk_weight": 0.45},
|
||
{"code": "IF02", "name": "能源基础设施(电厂/管道)", "min_kyc": 4, "risk_weight": 0.5},
|
||
{"code": "IF03", "name": "通信基础设施(数据中心/光缆)", "min_kyc": 3, "risk_weight": 0.55},
|
||
{"code": "IF04", "name": "公用事业(水务/污水处理)", "min_kyc": 3, "risk_weight": 0.4},
|
||
],
|
||
"gnacs_prefix": "070000", "min_kyc_level": 3, "risk_weight": 0.48,
|
||
"valuation_method": "DCF+RegulatedAssetBase", "custodian_type": "CUST",
|
||
"required_docs": ["concession_agreement", "regulatory_license", "technical_audit"],
|
||
"description": "交通、能源、通信等大型基础设施资产"
|
||
},
|
||
{
|
||
"class_id": "NR", "class_code": "08", "name_cn": "自然资源", "name_en": "Natural Resources",
|
||
"token_standard": "ACC-20",
|
||
"sub_classes": [
|
||
{"code": "NR01", "name": "矿产开采权", "min_kyc": 3, "risk_weight": 0.7},
|
||
{"code": "NR02", "name": "森林资源", "min_kyc": 3, "risk_weight": 0.6},
|
||
{"code": "NR03", "name": "水资源使用权", "min_kyc": 3, "risk_weight": 0.55},
|
||
{"code": "NR04", "name": "渔业捕捞权", "min_kyc": 3, "risk_weight": 0.65},
|
||
],
|
||
"gnacs_prefix": "080000", "min_kyc_level": 3, "risk_weight": 0.63,
|
||
"valuation_method": "ResourceReserve+DCF", "custodian_type": "CUST",
|
||
"required_docs": ["mining_license", "resource_survey", "environmental_assessment"],
|
||
"description": "矿产、森林、水资源等自然资源开采权"
|
||
},
|
||
{
|
||
"class_id": "EQ", "class_code": "09", "name_cn": "企业权益", "name_en": "Equity & Business Rights",
|
||
"token_standard": "ACC-1400",
|
||
"sub_classes": [
|
||
{"code": "EQ01", "name": "未上市股权(Pre-IPO)", "min_kyc": 3, "risk_weight": 0.8},
|
||
{"code": "EQ02", "name": "合伙人权益", "min_kyc": 3, "risk_weight": 0.75},
|
||
{"code": "EQ03", "name": "特许经营权", "min_kyc": 3, "risk_weight": 0.65},
|
||
{"code": "EQ04", "name": "收益权分成", "min_kyc": 3, "risk_weight": 0.7},
|
||
],
|
||
"gnacs_prefix": "090000", "min_kyc_level": 3, "risk_weight": 0.73,
|
||
"valuation_method": "DCF+ComparableTransaction", "custodian_type": "C001",
|
||
"required_docs": ["shareholder_agreement", "financial_audit", "business_license"],
|
||
"description": "未上市企业股权、合伙权益及特许经营权"
|
||
},
|
||
{
|
||
"class_id": "DR", "class_code": "11", "name_cn": "债权资产", "name_en": "Debt & Receivables",
|
||
"token_standard": "ACC-1400",
|
||
"sub_classes": [
|
||
{"code": "DR01", "name": "应收账款", "min_kyc": 3, "risk_weight": 0.55},
|
||
{"code": "DR02", "name": "贷款债权", "min_kyc": 4, "risk_weight": 0.65},
|
||
{"code": "DR03", "name": "租赁债权", "min_kyc": 3, "risk_weight": 0.5},
|
||
{"code": "DR04", "name": "商业票据", "min_kyc": 3, "risk_weight": 0.45},
|
||
],
|
||
"gnacs_prefix": "110000", "min_kyc_level": 3, "risk_weight": 0.54,
|
||
"valuation_method": "PresentValue+CreditRisk", "custodian_type": "C001",
|
||
"required_docs": ["receivable_schedule", "debtor_credit_report", "legal_opinion"],
|
||
"description": "应收账款、贷款债权、租赁债权等债权类资产"
|
||
},
|
||
{
|
||
"class_id": "IN", "class_code": "12", "name_cn": "保险资产", "name_en": "Insurance Assets",
|
||
"token_standard": "ACC-20",
|
||
"sub_classes": [
|
||
{"code": "IN01", "name": "人寿保险保单", "min_kyc": 3, "risk_weight": 0.4},
|
||
{"code": "IN02", "name": "财产保险", "min_kyc": 3, "risk_weight": 0.45},
|
||
{"code": "IN03", "name": "再保险合约", "min_kyc": 4, "risk_weight": 0.5},
|
||
],
|
||
"gnacs_prefix": "120000", "min_kyc_level": 3, "risk_weight": 0.45,
|
||
"valuation_method": "ActuarialValue", "custodian_type": "C001",
|
||
"required_docs": ["policy_document", "actuarial_report", "insurer_rating"],
|
||
"description": "人寿保险、财产保险等保险资产"
|
||
},
|
||
{
|
||
"class_id": "AG", "class_code": "13", "name_cn": "农业资产", "name_en": "Agricultural Assets",
|
||
"token_standard": "ACC-20",
|
||
"sub_classes": [
|
||
{"code": "AG01", "name": "农地使用权", "min_kyc": 2, "risk_weight": 0.5},
|
||
{"code": "AG02", "name": "畜牧资产", "min_kyc": 2, "risk_weight": 0.6},
|
||
{"code": "AG03", "name": "农业设施", "min_kyc": 2, "risk_weight": 0.55},
|
||
{"code": "AG04", "name": "农业收益权", "min_kyc": 2, "risk_weight": 0.65},
|
||
],
|
||
"gnacs_prefix": "130000", "min_kyc_level": 2, "risk_weight": 0.58,
|
||
"valuation_method": "IncomeCapitalization+AssetBased", "custodian_type": "CUST",
|
||
"required_docs": ["land_use_certificate", "agricultural_license", "soil_report"],
|
||
"description": "农地、畜牧、农业设施等农业类资产"
|
||
},
|
||
{
|
||
"class_id": "TR", "class_code": "14", "name_cn": "交通运输资产", "name_en": "Transport Assets",
|
||
"token_standard": "ACC-20",
|
||
"sub_classes": [
|
||
{"code": "TR01", "name": "航空器", "min_kyc": 4, "risk_weight": 0.6},
|
||
{"code": "TR02", "name": "船舶", "min_kyc": 3, "risk_weight": 0.55},
|
||
{"code": "TR03", "name": "铁路车辆", "min_kyc": 4, "risk_weight": 0.5},
|
||
{"code": "TR04", "name": "商用车队", "min_kyc": 3, "risk_weight": 0.6},
|
||
],
|
||
"gnacs_prefix": "140000", "min_kyc_level": 3, "risk_weight": 0.56,
|
||
"valuation_method": "AssetBased+IncomeApproach", "custodian_type": "CUST",
|
||
"required_docs": ["registration_certificate", "airworthiness_certificate", "insurance"],
|
||
"description": "航空器、船舶、铁路车辆等交通运输类资产"
|
||
},
|
||
{
|
||
"class_id": "EQ2", "class_code": "15", "name_cn": "设备与机械", "name_en": "Equipment & Machinery",
|
||
"token_standard": "ACC-20",
|
||
"sub_classes": [
|
||
{"code": "EQ201", "name": "工业设备", "min_kyc": 2, "risk_weight": 0.6},
|
||
{"code": "EQ202", "name": "医疗设备", "min_kyc": 3, "risk_weight": 0.55},
|
||
{"code": "EQ203", "name": "科研设备", "min_kyc": 3, "risk_weight": 0.65},
|
||
{"code": "EQ204", "name": "建筑机械", "min_kyc": 2, "risk_weight": 0.65},
|
||
],
|
||
"gnacs_prefix": "150000", "min_kyc_level": 2, "risk_weight": 0.61,
|
||
"valuation_method": "CostApproach+DepreciationModel", "custodian_type": "CUST",
|
||
"required_docs": ["equipment_certificate", "maintenance_records", "insurance"],
|
||
"description": "工业、医疗、科研等专业设备和机械"
|
||
},
|
||
{
|
||
"class_id": "DT", "class_code": "16", "name_cn": "数据资产", "name_en": "Data Assets",
|
||
"token_standard": "ACC-721",
|
||
"sub_classes": [
|
||
{"code": "DT01", "name": "用户数据集", "min_kyc": 3, "risk_weight": 0.7},
|
||
{"code": "DT02", "name": "商业数据", "min_kyc": 3, "risk_weight": 0.65},
|
||
{"code": "DT03", "name": "科研数据", "min_kyc": 2, "risk_weight": 0.6},
|
||
{"code": "DT04", "name": "地理空间数据", "min_kyc": 3, "risk_weight": 0.65},
|
||
],
|
||
"gnacs_prefix": "160000", "min_kyc_level": 2, "risk_weight": 0.65,
|
||
"valuation_method": "IncomeBased+MarketComparable", "custodian_type": "DIGI",
|
||
"required_docs": ["data_ownership_proof", "privacy_compliance_cert", "data_quality_report"],
|
||
"description": "用户数据、商业数据、科研数据等数字数据资产"
|
||
},
|
||
{
|
||
"class_id": "BR", "class_code": "17", "name_cn": "无形商业资产", "name_en": "Intangible Business Assets",
|
||
"token_standard": "ACC-20",
|
||
"sub_classes": [
|
||
{"code": "BR01", "name": "品牌价值", "min_kyc": 3, "risk_weight": 0.8},
|
||
{"code": "BR02", "name": "商誉", "min_kyc": 3, "risk_weight": 0.85},
|
||
{"code": "BR03", "name": "客户关系", "min_kyc": 3, "risk_weight": 0.75},
|
||
{"code": "BR04", "name": "供应链关系", "min_kyc": 3, "risk_weight": 0.7},
|
||
],
|
||
"gnacs_prefix": "170000", "min_kyc_level": 3, "risk_weight": 0.78,
|
||
"valuation_method": "ReliefFromRoyalty+ExcessEarnings", "custodian_type": "DIGI",
|
||
"required_docs": ["brand_valuation_report", "financial_audit", "legal_opinion"],
|
||
"description": "品牌价值、商誉、客户关系等无形商业资产"
|
||
},
|
||
{
|
||
"class_id": "SP", "class_code": "18", "name_cn": "体育资产", "name_en": "Sports Assets",
|
||
"token_standard": "ACC-721",
|
||
"sub_classes": [
|
||
{"code": "SP01", "name": "球员合同权益", "min_kyc": 3, "risk_weight": 0.85},
|
||
{"code": "SP02", "name": "赛事转播权", "min_kyc": 3, "risk_weight": 0.75},
|
||
{"code": "SP03", "name": "体育场馆", "min_kyc": 4, "risk_weight": 0.6},
|
||
{"code": "SP04", "name": "体育俱乐部股权", "min_kyc": 4, "risk_weight": 0.8},
|
||
],
|
||
"gnacs_prefix": "180000", "min_kyc_level": 3, "risk_weight": 0.75,
|
||
"valuation_method": "IncomeBased+MarketComparable", "custodian_type": "CUST",
|
||
"required_docs": ["contract_copy", "sports_federation_approval", "valuation_report"],
|
||
"description": "球员合同、赛事权益、体育场馆等体育类资产"
|
||
},
|
||
{
|
||
"class_id": "CE", "class_code": "19", "name_cn": "文化娱乐资产", "name_en": "Cultural & Entertainment Assets",
|
||
"token_standard": "ACC-721",
|
||
"sub_classes": [
|
||
{"code": "CE01", "name": "影视版权", "min_kyc": 2, "risk_weight": 0.75},
|
||
{"code": "CE02", "name": "音乐版权", "min_kyc": 2, "risk_weight": 0.7},
|
||
{"code": "CE03", "name": "游戏资产", "min_kyc": 2, "risk_weight": 0.8},
|
||
{"code": "CE04", "name": "演出版权", "min_kyc": 2, "risk_weight": 0.72},
|
||
],
|
||
"gnacs_prefix": "190000", "min_kyc_level": 2, "risk_weight": 0.74,
|
||
"valuation_method": "RoyaltyRelief+IncomeBased", "custodian_type": "DIGI",
|
||
"required_docs": ["copyright_registration", "distribution_agreement", "royalty_history"],
|
||
"description": "影视、音乐、游戏等文化娱乐版权资产"
|
||
},
|
||
{
|
||
"class_id": "CU", "class_code": "99", "name_cn": "自定义资产", "name_en": "Custom Assets",
|
||
"token_standard": "ACC-20",
|
||
"sub_classes": [],
|
||
"gnacs_prefix": "990000", "min_kyc_level": 3, "risk_weight": 0.9,
|
||
"valuation_method": "ExpertAppraisal", "custodian_type": "CUST",
|
||
"required_docs": ["asset_description", "ownership_proof", "expert_opinion"],
|
||
"description": "不属于上述19类的其他特殊资产,需专家评估"
|
||
},
|
||
]
|
||
|
||
for ac in asset_classes:
|
||
ac["created_at"] = datetime.utcnow()
|
||
ac["updated_at"] = datetime.utcnow()
|
||
ac["status"] = "active"
|
||
|
||
result = db.asset_classes.insert_many(asset_classes)
|
||
db.asset_classes.create_index([("class_id", ASCENDING)], unique=True)
|
||
db.asset_classes.create_index([("class_code", ASCENDING)])
|
||
print(f" ✅ 插入 {len(result.inserted_ids)} 个资产大类")
|
||
|
||
# ============================================================
|
||
# 2. 司法辖区注册表(60+辖区)
|
||
# ============================================================
|
||
print("\n[2/4] 初始化60+司法辖区...")
|
||
db.jurisdictions.drop()
|
||
|
||
jurisdictions = [
|
||
# Tier 1 - 高度成熟监管(20个)
|
||
{"code": "US", "name_cn": "美国", "name_en": "United States", "tier": 1, "region": "Americas",
|
||
"regulator": "SEC/CFTC/FinCEN", "aml_framework": "BSA/PATRIOT", "fatf_member": True,
|
||
"crs_participant": False, "fatca_applicable": True, "currency": "USD",
|
||
"forex_control": False, "max_daily_transfer_usd": None,
|
||
"restricted_asset_classes": [], "banned_asset_classes": [],
|
||
"special_rules": {"requires_accredited_investor": True, "sec_reporting": True}},
|
||
{"code": "EU", "name_cn": "欧盟", "name_en": "European Union", "tier": 1, "region": "Europe",
|
||
"regulator": "ESMA/EBA", "aml_framework": "AMLD6", "fatf_member": True,
|
||
"crs_participant": True, "fatca_applicable": False, "currency": "EUR",
|
||
"forex_control": False, "max_daily_transfer_usd": None,
|
||
"restricted_asset_classes": [], "banned_asset_classes": [],
|
||
"special_rules": {"mifid2_applicable": True, "gdpr_applicable": True}},
|
||
{"code": "GB", "name_cn": "英国", "name_en": "United Kingdom", "tier": 1, "region": "Europe",
|
||
"regulator": "FCA/PRA", "aml_framework": "POCA2002", "fatf_member": True,
|
||
"crs_participant": True, "fatca_applicable": False, "currency": "GBP",
|
||
"forex_control": False, "max_daily_transfer_usd": None,
|
||
"restricted_asset_classes": [], "banned_asset_classes": [],
|
||
"special_rules": {"fca_authorization_required": True}},
|
||
{"code": "SG", "name_cn": "新加坡", "name_en": "Singapore", "tier": 1, "region": "ASEAN",
|
||
"regulator": "MAS", "aml_framework": "CDSA/PSOA", "fatf_member": True,
|
||
"crs_participant": True, "fatca_applicable": False, "currency": "SGD",
|
||
"forex_control": False, "max_daily_transfer_usd": None,
|
||
"restricted_asset_classes": [], "banned_asset_classes": [],
|
||
"special_rules": {"mas_license_required": True, "rwa_friendly": True}},
|
||
{"code": "HK", "name_cn": "香港", "name_en": "Hong Kong", "tier": 1, "region": "Asia",
|
||
"regulator": "SFC/HKMA", "aml_framework": "AMLO", "fatf_member": True,
|
||
"crs_participant": True, "fatca_applicable": False, "currency": "HKD",
|
||
"forex_control": False, "max_daily_transfer_usd": None,
|
||
"restricted_asset_classes": [], "banned_asset_classes": [],
|
||
"special_rules": {"sfc_license_required": True, "virtual_asset_regulated": True}},
|
||
{"code": "JP", "name_cn": "日本", "name_en": "Japan", "tier": 1, "region": "Asia",
|
||
"regulator": "FSA/JFSA", "aml_framework": "AMLCFT", "fatf_member": True,
|
||
"crs_participant": True, "fatca_applicable": False, "currency": "JPY",
|
||
"forex_control": False, "max_daily_transfer_usd": None,
|
||
"restricted_asset_classes": [], "banned_asset_classes": [],
|
||
"special_rules": {"fsa_registration_required": True}},
|
||
{"code": "AE", "name_cn": "阿联酋", "name_en": "United Arab Emirates", "tier": 1, "region": "GCC",
|
||
"regulator": "ADGM/DIFC/SCA", "aml_framework": "FATF", "fatf_member": True,
|
||
"crs_participant": True, "fatca_applicable": False, "currency": "AED",
|
||
"forex_control": False, "max_daily_transfer_usd": None,
|
||
"restricted_asset_classes": [], "banned_asset_classes": [],
|
||
"special_rules": {"free_zone_benefits": True, "rwa_hub": True}},
|
||
{"code": "CH", "name_cn": "瑞士", "name_en": "Switzerland", "tier": 1, "region": "Europe",
|
||
"regulator": "FINMA", "aml_framework": "AMLA", "fatf_member": True,
|
||
"crs_participant": True, "fatca_applicable": False, "currency": "CHF",
|
||
"forex_control": False, "max_daily_transfer_usd": None,
|
||
"restricted_asset_classes": [], "banned_asset_classes": [],
|
||
"special_rules": {"finma_license_required": True, "crypto_valley": True}},
|
||
{"code": "DE", "name_cn": "德国", "name_en": "Germany", "tier": 1, "region": "Europe",
|
||
"regulator": "BaFin", "aml_framework": "AMLD6", "fatf_member": True,
|
||
"crs_participant": True, "fatca_applicable": False, "currency": "EUR",
|
||
"forex_control": False, "max_daily_transfer_usd": None,
|
||
"restricted_asset_classes": [], "banned_asset_classes": [],
|
||
"special_rules": {"bafin_authorization_required": True}},
|
||
{"code": "FR", "name_cn": "法国", "name_en": "France", "tier": 1, "region": "Europe",
|
||
"regulator": "AMF/ACPR", "aml_framework": "AMLD6", "fatf_member": True,
|
||
"crs_participant": True, "fatca_applicable": False, "currency": "EUR",
|
||
"forex_control": False, "max_daily_transfer_usd": None,
|
||
"restricted_asset_classes": [], "banned_asset_classes": [],
|
||
"special_rules": {"amf_visa_required": True}},
|
||
{"code": "CA", "name_cn": "加拿大", "name_en": "Canada", "tier": 1, "region": "Americas",
|
||
"regulator": "OSC/CSA/FINTRAC", "aml_framework": "PCMLTFA", "fatf_member": True,
|
||
"crs_participant": True, "fatca_applicable": False, "currency": "CAD",
|
||
"forex_control": False, "max_daily_transfer_usd": None,
|
||
"restricted_asset_classes": [], "banned_asset_classes": [],
|
||
"special_rules": {"provincial_regulation": True}},
|
||
{"code": "AU", "name_cn": "澳大利亚", "name_en": "Australia", "tier": 1, "region": "Oceania",
|
||
"regulator": "ASIC/AUSTRAC", "aml_framework": "AML/CTF", "fatf_member": True,
|
||
"crs_participant": True, "fatca_applicable": False, "currency": "AUD",
|
||
"forex_control": False, "max_daily_transfer_usd": None,
|
||
"restricted_asset_classes": [], "banned_asset_classes": [],
|
||
"special_rules": {"asic_license_required": True}},
|
||
{"code": "LU", "name_cn": "卢森堡", "name_en": "Luxembourg", "tier": 1, "region": "Europe",
|
||
"regulator": "CSSF", "aml_framework": "AMLD6", "fatf_member": True,
|
||
"crs_participant": True, "fatca_applicable": False, "currency": "EUR",
|
||
"forex_control": False, "max_daily_transfer_usd": None,
|
||
"restricted_asset_classes": [], "banned_asset_classes": [],
|
||
"special_rules": {"fund_domicile_preferred": True}},
|
||
{"code": "KY", "name_cn": "开曼群岛", "name_en": "Cayman Islands", "tier": 1, "region": "Americas",
|
||
"regulator": "CIMA", "aml_framework": "POCL", "fatf_member": False,
|
||
"crs_participant": True, "fatca_applicable": False, "currency": "KYD",
|
||
"forex_control": False, "max_daily_transfer_usd": None,
|
||
"restricted_asset_classes": [], "banned_asset_classes": [],
|
||
"special_rules": {"offshore_fund_preferred": True, "no_capital_gains_tax": True}},
|
||
{"code": "BM", "name_cn": "百慕大", "name_en": "Bermuda", "tier": 1, "region": "Americas",
|
||
"regulator": "BMA", "aml_framework": "POCA", "fatf_member": False,
|
||
"crs_participant": True, "fatca_applicable": False, "currency": "BMD",
|
||
"forex_control": False, "max_daily_transfer_usd": None,
|
||
"restricted_asset_classes": [], "banned_asset_classes": [],
|
||
"special_rules": {"insurance_hub": True, "digital_asset_friendly": True}},
|
||
{"code": "MT", "name_cn": "马耳他", "name_en": "Malta", "tier": 1, "region": "Europe",
|
||
"regulator": "MFSA/MDIA", "aml_framework": "AMLD6", "fatf_member": True,
|
||
"crs_participant": True, "fatca_applicable": False, "currency": "EUR",
|
||
"forex_control": False, "max_daily_transfer_usd": None,
|
||
"restricted_asset_classes": [], "banned_asset_classes": [],
|
||
"special_rules": {"blockchain_island": True, "vfa_framework": True}},
|
||
{"code": "LI", "name_cn": "列支敦士登", "name_en": "Liechtenstein", "tier": 1, "region": "Europe",
|
||
"regulator": "FMA", "aml_framework": "TVTG", "fatf_member": True,
|
||
"crs_participant": True, "fatca_applicable": False, "currency": "CHF",
|
||
"forex_control": False, "max_daily_transfer_usd": None,
|
||
"restricted_asset_classes": [], "banned_asset_classes": [],
|
||
"special_rules": {"token_act": True, "rwa_progressive": True}},
|
||
{"code": "IE", "name_cn": "爱尔兰", "name_en": "Ireland", "tier": 1, "region": "Europe",
|
||
"regulator": "CBI", "aml_framework": "AMLD6", "fatf_member": True,
|
||
"crs_participant": True, "fatca_applicable": False, "currency": "EUR",
|
||
"forex_control": False, "max_daily_transfer_usd": None,
|
||
"restricted_asset_classes": [], "banned_asset_classes": [],
|
||
"special_rules": {"eu_fund_passporting": True}},
|
||
{"code": "NL", "name_cn": "荷兰", "name_en": "Netherlands", "tier": 1, "region": "Europe",
|
||
"regulator": "AFM/DNB", "aml_framework": "AMLD6", "fatf_member": True,
|
||
"crs_participant": True, "fatca_applicable": False, "currency": "EUR",
|
||
"forex_control": False, "max_daily_transfer_usd": None,
|
||
"restricted_asset_classes": [], "banned_asset_classes": [],
|
||
"special_rules": {}},
|
||
{"code": "KR", "name_cn": "韩国", "name_en": "South Korea", "tier": 1, "region": "Asia",
|
||
"regulator": "FSC/FSS", "aml_framework": "AMLCFT", "fatf_member": True,
|
||
"crs_participant": True, "fatca_applicable": False, "currency": "KRW",
|
||
"forex_control": False, "max_daily_transfer_usd": None,
|
||
"restricted_asset_classes": [], "banned_asset_classes": [],
|
||
"special_rules": {"virtual_asset_act": True}},
|
||
|
||
# Tier 2 - 中等成熟监管(25个)
|
||
{"code": "CN", "name_cn": "中国大陆", "name_en": "China Mainland", "tier": 2, "region": "Asia",
|
||
"regulator": "CSRC/PBOC/SAFE", "aml_framework": "AML_LAW", "fatf_member": True,
|
||
"crs_participant": True, "fatca_applicable": False, "currency": "CNY",
|
||
"forex_control": True, "max_daily_transfer_usd": 50000,
|
||
"restricted_asset_classes": ["DA", "FA"], "banned_asset_classes": [],
|
||
"special_rules": {"safe_reporting_required": True, "crypto_trading_restricted": True,
|
||
"cross_border_approval_required": True}},
|
||
{"code": "TW", "name_cn": "台湾", "name_en": "Taiwan", "tier": 2, "region": "Asia",
|
||
"regulator": "FSC_TW", "aml_framework": "AMLCFT", "fatf_member": False,
|
||
"crs_participant": True, "fatca_applicable": False, "currency": "TWD",
|
||
"forex_control": True, "max_daily_transfer_usd": 5000000,
|
||
"restricted_asset_classes": [], "banned_asset_classes": [],
|
||
"special_rules": {}},
|
||
{"code": "IN", "name_cn": "印度", "name_en": "India", "tier": 2, "region": "Asia",
|
||
"regulator": "SEBI/RBI", "aml_framework": "PMLA", "fatf_member": True,
|
||
"crs_participant": True, "fatca_applicable": False, "currency": "INR",
|
||
"forex_control": True, "max_daily_transfer_usd": 250000,
|
||
"restricted_asset_classes": ["DA"], "banned_asset_classes": [],
|
||
"special_rules": {"fema_compliance_required": True}},
|
||
{"code": "BR", "name_cn": "巴西", "name_en": "Brazil", "tier": 2, "region": "Americas",
|
||
"regulator": "CVM/BCB", "aml_framework": "COAF", "fatf_member": True,
|
||
"crs_participant": True, "fatca_applicable": False, "currency": "BRL",
|
||
"forex_control": True, "max_daily_transfer_usd": None,
|
||
"restricted_asset_classes": [], "banned_asset_classes": [],
|
||
"special_rules": {}},
|
||
{"code": "SA", "name_cn": "沙特阿拉伯", "name_en": "Saudi Arabia", "tier": 2, "region": "GCC",
|
||
"regulator": "CMA/SAMA", "aml_framework": "FATF", "fatf_member": True,
|
||
"crs_participant": True, "fatca_applicable": False, "currency": "SAR",
|
||
"forex_control": False, "max_daily_transfer_usd": None,
|
||
"restricted_asset_classes": [], "banned_asset_classes": [],
|
||
"special_rules": {"shariah_compliance_optional": True, "vision2030": True}},
|
||
{"code": "QA", "name_cn": "卡塔尔", "name_en": "Qatar", "tier": 2, "region": "GCC",
|
||
"regulator": "QFC/QFMA", "aml_framework": "FATF", "fatf_member": True,
|
||
"crs_participant": True, "fatca_applicable": False, "currency": "QAR",
|
||
"forex_control": False, "max_daily_transfer_usd": None,
|
||
"restricted_asset_classes": [], "banned_asset_classes": [],
|
||
"special_rules": {"qfc_framework": True}},
|
||
{"code": "MY", "name_cn": "马来西亚", "name_en": "Malaysia", "tier": 2, "region": "ASEAN",
|
||
"regulator": "SC_MY/BNM", "aml_framework": "AMLATFPUAA", "fatf_member": True,
|
||
"crs_participant": True, "fatca_applicable": False, "currency": "MYR",
|
||
"forex_control": False, "max_daily_transfer_usd": None,
|
||
"restricted_asset_classes": [], "banned_asset_classes": [],
|
||
"special_rules": {"islamic_finance_hub": True}},
|
||
{"code": "TH", "name_cn": "泰国", "name_en": "Thailand", "tier": 2, "region": "ASEAN",
|
||
"regulator": "SEC_TH/BOT", "aml_framework": "AMLA_TH", "fatf_member": True,
|
||
"crs_participant": True, "fatca_applicable": False, "currency": "THB",
|
||
"forex_control": False, "max_daily_transfer_usd": None,
|
||
"restricted_asset_classes": [], "banned_asset_classes": [],
|
||
"special_rules": {}},
|
||
{"code": "ZA", "name_cn": "南非", "name_en": "South Africa", "tier": 2, "region": "Africa",
|
||
"regulator": "FSCA/SARB", "aml_framework": "FIC_ACT", "fatf_member": True,
|
||
"crs_participant": True, "fatca_applicable": False, "currency": "ZAR",
|
||
"forex_control": True, "max_daily_transfer_usd": 1000000,
|
||
"restricted_asset_classes": [], "banned_asset_classes": [],
|
||
"special_rules": {}},
|
||
{"code": "MX", "name_cn": "墨西哥", "name_en": "Mexico", "tier": 2, "region": "Americas",
|
||
"regulator": "CNBV/BANXICO", "aml_framework": "LFPIORPI", "fatf_member": True,
|
||
"crs_participant": True, "fatca_applicable": False, "currency": "MXN",
|
||
"forex_control": False, "max_daily_transfer_usd": None,
|
||
"restricted_asset_classes": [], "banned_asset_classes": [],
|
||
"special_rules": {}},
|
||
{"code": "TR", "name_cn": "土耳其", "name_en": "Turkey", "tier": 2, "region": "Europe",
|
||
"regulator": "CMB/BDDK", "aml_framework": "MASAK", "fatf_member": True,
|
||
"crs_participant": True, "fatca_applicable": False, "currency": "TRY",
|
||
"forex_control": False, "max_daily_transfer_usd": None,
|
||
"restricted_asset_classes": [], "banned_asset_classes": [],
|
||
"special_rules": {}},
|
||
{"code": "AR", "name_cn": "阿根廷", "name_en": "Argentina", "tier": 2, "region": "Americas",
|
||
"regulator": "CNV/BCRA", "aml_framework": "UIF", "fatf_member": True,
|
||
"crs_participant": True, "fatca_applicable": False, "currency": "ARS",
|
||
"forex_control": True, "max_daily_transfer_usd": None,
|
||
"restricted_asset_classes": [], "banned_asset_classes": [],
|
||
"special_rules": {"currency_controls": True}},
|
||
{"code": "EG", "name_cn": "埃及", "name_en": "Egypt", "tier": 2, "region": "Africa",
|
||
"regulator": "FRA/CBE", "aml_framework": "FATF", "fatf_member": True,
|
||
"crs_participant": True, "fatca_applicable": False, "currency": "EGP",
|
||
"forex_control": True, "max_daily_transfer_usd": None,
|
||
"restricted_asset_classes": [], "banned_asset_classes": [],
|
||
"special_rules": {}},
|
||
{"code": "PL", "name_cn": "波兰", "name_en": "Poland", "tier": 2, "region": "Europe",
|
||
"regulator": "KNF", "aml_framework": "AMLD6", "fatf_member": True,
|
||
"crs_participant": True, "fatca_applicable": False, "currency": "PLN",
|
||
"forex_control": False, "max_daily_transfer_usd": None,
|
||
"restricted_asset_classes": [], "banned_asset_classes": [],
|
||
"special_rules": {}},
|
||
{"code": "SE", "name_cn": "瑞典", "name_en": "Sweden", "tier": 2, "region": "Europe",
|
||
"regulator": "Finansinspektionen", "aml_framework": "AMLD6", "fatf_member": True,
|
||
"crs_participant": True, "fatca_applicable": False, "currency": "SEK",
|
||
"forex_control": False, "max_daily_transfer_usd": None,
|
||
"restricted_asset_classes": [], "banned_asset_classes": [],
|
||
"special_rules": {}},
|
||
{"code": "NO", "name_cn": "挪威", "name_en": "Norway", "tier": 2, "region": "Europe",
|
||
"regulator": "Finanstilsynet", "aml_framework": "AMLD6", "fatf_member": True,
|
||
"crs_participant": True, "fatca_applicable": False, "currency": "NOK",
|
||
"forex_control": False, "max_daily_transfer_usd": None,
|
||
"restricted_asset_classes": [], "banned_asset_classes": [],
|
||
"special_rules": {}},
|
||
{"code": "DK", "name_cn": "丹麦", "name_en": "Denmark", "tier": 2, "region": "Europe",
|
||
"regulator": "Finanstilsynet_DK", "aml_framework": "AMLD6", "fatf_member": True,
|
||
"crs_participant": True, "fatca_applicable": False, "currency": "DKK",
|
||
"forex_control": False, "max_daily_transfer_usd": None,
|
||
"restricted_asset_classes": [], "banned_asset_classes": [],
|
||
"special_rules": {}},
|
||
{"code": "ES", "name_cn": "西班牙", "name_en": "Spain", "tier": 2, "region": "Europe",
|
||
"regulator": "CNMV/BDE", "aml_framework": "AMLD6", "fatf_member": True,
|
||
"crs_participant": True, "fatca_applicable": False, "currency": "EUR",
|
||
"forex_control": False, "max_daily_transfer_usd": None,
|
||
"restricted_asset_classes": [], "banned_asset_classes": [],
|
||
"special_rules": {}},
|
||
{"code": "IT", "name_cn": "意大利", "name_en": "Italy", "tier": 2, "region": "Europe",
|
||
"regulator": "CONSOB/Banca_Italia", "aml_framework": "AMLD6", "fatf_member": True,
|
||
"crs_participant": True, "fatca_applicable": False, "currency": "EUR",
|
||
"forex_control": False, "max_daily_transfer_usd": None,
|
||
"restricted_asset_classes": [], "banned_asset_classes": [],
|
||
"special_rules": {}},
|
||
{"code": "PT", "name_cn": "葡萄牙", "name_en": "Portugal", "tier": 2, "region": "Europe",
|
||
"regulator": "CMVM/BdP", "aml_framework": "AMLD6", "fatf_member": True,
|
||
"crs_participant": True, "fatca_applicable": False, "currency": "EUR",
|
||
"forex_control": False, "max_daily_transfer_usd": None,
|
||
"restricted_asset_classes": [], "banned_asset_classes": [],
|
||
"special_rules": {"golden_visa": True, "nhr_tax_regime": True}},
|
||
{"code": "GR", "name_cn": "希腊", "name_en": "Greece", "tier": 2, "region": "Europe",
|
||
"regulator": "HCMC", "aml_framework": "AMLD6", "fatf_member": True,
|
||
"crs_participant": True, "fatca_applicable": False, "currency": "EUR",
|
||
"forex_control": False, "max_daily_transfer_usd": None,
|
||
"restricted_asset_classes": [], "banned_asset_classes": [],
|
||
"special_rules": {}},
|
||
{"code": "CZ", "name_cn": "捷克", "name_en": "Czech Republic", "tier": 2, "region": "Europe",
|
||
"regulator": "CNB", "aml_framework": "AMLD6", "fatf_member": True,
|
||
"crs_participant": True, "fatca_applicable": False, "currency": "CZK",
|
||
"forex_control": False, "max_daily_transfer_usd": None,
|
||
"restricted_asset_classes": [], "banned_asset_classes": [],
|
||
"special_rules": {}},
|
||
{"code": "HU", "name_cn": "匈牙利", "name_en": "Hungary", "tier": 2, "region": "Europe",
|
||
"regulator": "MNB", "aml_framework": "AMLD6", "fatf_member": True,
|
||
"crs_participant": True, "fatca_applicable": False, "currency": "HUF",
|
||
"forex_control": False, "max_daily_transfer_usd": None,
|
||
"restricted_asset_classes": [], "banned_asset_classes": [],
|
||
"special_rules": {}},
|
||
{"code": "RO", "name_cn": "罗马尼亚", "name_en": "Romania", "tier": 2, "region": "Europe",
|
||
"regulator": "ASF/BNR", "aml_framework": "AMLD6", "fatf_member": True,
|
||
"crs_participant": True, "fatca_applicable": False, "currency": "RON",
|
||
"forex_control": False, "max_daily_transfer_usd": None,
|
||
"restricted_asset_classes": [], "banned_asset_classes": [],
|
||
"special_rules": {}},
|
||
{"code": "PH", "name_cn": "菲律宾", "name_en": "Philippines", "tier": 2, "region": "ASEAN",
|
||
"regulator": "SEC_PH/BSP", "aml_framework": "AMLA_PH", "fatf_member": True,
|
||
"crs_participant": True, "fatca_applicable": False, "currency": "PHP",
|
||
"forex_control": False, "max_daily_transfer_usd": None,
|
||
"restricted_asset_classes": [], "banned_asset_classes": [],
|
||
"special_rules": {}},
|
||
|
||
# Tier 3 - 新兴市场(15个)
|
||
{"code": "ID", "name_cn": "印度尼西亚", "name_en": "Indonesia", "tier": 3, "region": "ASEAN",
|
||
"regulator": "OJK/BI", "aml_framework": "PPATK", "fatf_member": True,
|
||
"crs_participant": True, "fatca_applicable": False, "currency": "IDR",
|
||
"forex_control": True, "max_daily_transfer_usd": None,
|
||
"restricted_asset_classes": ["DA"], "banned_asset_classes": [],
|
||
"special_rules": {"crypto_regulated_as_commodity": True}},
|
||
{"code": "VN", "name_cn": "越南", "name_en": "Vietnam", "tier": 3, "region": "ASEAN",
|
||
"regulator": "SSC/SBV", "aml_framework": "AML_VN", "fatf_member": False,
|
||
"crs_participant": False, "fatca_applicable": False, "currency": "VND",
|
||
"forex_control": True, "max_daily_transfer_usd": None,
|
||
"restricted_asset_classes": ["DA", "FA"], "banned_asset_classes": [],
|
||
"special_rules": {}},
|
||
{"code": "NG", "name_cn": "尼日利亚", "name_en": "Nigeria", "tier": 3, "region": "Africa",
|
||
"regulator": "SEC_NG/CBN", "aml_framework": "EFCC", "fatf_member": False,
|
||
"crs_participant": False, "fatca_applicable": False, "currency": "NGN",
|
||
"forex_control": True, "max_daily_transfer_usd": None,
|
||
"restricted_asset_classes": [], "banned_asset_classes": [],
|
||
"special_rules": {"enhanced_due_diligence": True}},
|
||
{"code": "KE", "name_cn": "肯尼亚", "name_en": "Kenya", "tier": 3, "region": "Africa",
|
||
"regulator": "CMA_KE/CBK", "aml_framework": "POCAMLA", "fatf_member": False,
|
||
"crs_participant": False, "fatca_applicable": False, "currency": "KES",
|
||
"forex_control": False, "max_daily_transfer_usd": None,
|
||
"restricted_asset_classes": [], "banned_asset_classes": [],
|
||
"special_rules": {}},
|
||
{"code": "RU", "name_cn": "俄罗斯", "name_en": "Russia", "tier": 3, "region": "Europe",
|
||
"regulator": "CBR/Rosfinmonitoring", "aml_framework": "FATF", "fatf_member": True,
|
||
"crs_participant": True, "fatca_applicable": False, "currency": "RUB",
|
||
"forex_control": True, "max_daily_transfer_usd": None,
|
||
"restricted_asset_classes": [], "banned_asset_classes": [],
|
||
"special_rules": {"sanctions_risk": True, "enhanced_due_diligence": True}},
|
||
{"code": "PK", "name_cn": "巴基斯坦", "name_en": "Pakistan", "tier": 3, "region": "Asia",
|
||
"regulator": "SECP/SBP", "aml_framework": "AML_ACT", "fatf_member": True,
|
||
"crs_participant": False, "fatca_applicable": False, "currency": "PKR",
|
||
"forex_control": True, "max_daily_transfer_usd": None,
|
||
"restricted_asset_classes": [], "banned_asset_classes": [],
|
||
"special_rules": {"enhanced_due_diligence": True}},
|
||
{"code": "BD", "name_cn": "孟加拉国", "name_en": "Bangladesh", "tier": 3, "region": "Asia",
|
||
"regulator": "BSEC/BB", "aml_framework": "MLPA", "fatf_member": False,
|
||
"crs_participant": False, "fatca_applicable": False, "currency": "BDT",
|
||
"forex_control": True, "max_daily_transfer_usd": None,
|
||
"restricted_asset_classes": [], "banned_asset_classes": [],
|
||
"special_rules": {}},
|
||
{"code": "ET", "name_cn": "埃塞俄比亚", "name_en": "Ethiopia", "tier": 3, "region": "Africa",
|
||
"regulator": "ECSC/NBE", "aml_framework": "AML_ET", "fatf_member": False,
|
||
"crs_participant": False, "fatca_applicable": False, "currency": "ETB",
|
||
"forex_control": True, "max_daily_transfer_usd": None,
|
||
"restricted_asset_classes": [], "banned_asset_classes": [],
|
||
"special_rules": {}},
|
||
{"code": "GH", "name_cn": "加纳", "name_en": "Ghana", "tier": 3, "region": "Africa",
|
||
"regulator": "SEC_GH/BOG", "aml_framework": "AMLCFT_GH", "fatf_member": False,
|
||
"crs_participant": False, "fatca_applicable": False, "currency": "GHS",
|
||
"forex_control": False, "max_daily_transfer_usd": None,
|
||
"restricted_asset_classes": [], "banned_asset_classes": [],
|
||
"special_rules": {}},
|
||
{"code": "TZ", "name_cn": "坦桑尼亚", "name_en": "Tanzania", "tier": 3, "region": "Africa",
|
||
"regulator": "CMSA/BOT", "aml_framework": "POCA_TZ", "fatf_member": False,
|
||
"crs_participant": False, "fatca_applicable": False, "currency": "TZS",
|
||
"forex_control": False, "max_daily_transfer_usd": None,
|
||
"restricted_asset_classes": [], "banned_asset_classes": [],
|
||
"special_rules": {}},
|
||
{"code": "UZ", "name_cn": "乌兹别克斯坦", "name_en": "Uzbekistan", "tier": 3, "region": "Asia",
|
||
"regulator": "ARDFM", "aml_framework": "AML_UZ", "fatf_member": False,
|
||
"crs_participant": False, "fatca_applicable": False, "currency": "UZS",
|
||
"forex_control": True, "max_daily_transfer_usd": None,
|
||
"restricted_asset_classes": [], "banned_asset_classes": [],
|
||
"special_rules": {"crypto_friendly": True}},
|
||
{"code": "KZ", "name_cn": "哈萨克斯坦", "name_en": "Kazakhstan", "tier": 3, "region": "Asia",
|
||
"regulator": "AFSA/NBK", "aml_framework": "AML_KZ", "fatf_member": True,
|
||
"crs_participant": True, "fatca_applicable": False, "currency": "KZT",
|
||
"forex_control": False, "max_daily_transfer_usd": None,
|
||
"restricted_asset_classes": [], "banned_asset_classes": [],
|
||
"special_rules": {"aifc_framework": True}},
|
||
{"code": "AZ", "name_cn": "阿塞拜疆", "name_en": "Azerbaijan", "tier": 3, "region": "Asia",
|
||
"regulator": "FIMSA/CBA", "aml_framework": "AML_AZ", "fatf_member": False,
|
||
"crs_participant": False, "fatca_applicable": False, "currency": "AZN",
|
||
"forex_control": False, "max_daily_transfer_usd": None,
|
||
"restricted_asset_classes": [], "banned_asset_classes": [],
|
||
"special_rules": {}},
|
||
{"code": "UG", "name_cn": "乌干达", "name_en": "Uganda", "tier": 3, "region": "Africa",
|
||
"regulator": "CMA_UG/BOU", "aml_framework": "AML_UG", "fatf_member": False,
|
||
"crs_participant": False, "fatca_applicable": False, "currency": "UGX",
|
||
"forex_control": False, "max_daily_transfer_usd": None,
|
||
"restricted_asset_classes": [], "banned_asset_classes": [],
|
||
"special_rules": {}},
|
||
{"code": "MN", "name_cn": "蒙古国", "name_en": "Mongolia", "tier": 3, "region": "Asia",
|
||
"regulator": "FRC/BOM", "aml_framework": "AML_MN", "fatf_member": False,
|
||
"crs_participant": False, "fatca_applicable": False, "currency": "MNT",
|
||
"forex_control": False, "max_daily_transfer_usd": None,
|
||
"restricted_asset_classes": [], "banned_asset_classes": [],
|
||
"special_rules": {}},
|
||
|
||
# 特殊辖区
|
||
{"code": "GLOBAL", "name_cn": "全球通用", "name_en": "Global", "tier": 0, "region": "Global",
|
||
"regulator": "FATF", "aml_framework": "FATF_40", "fatf_member": True,
|
||
"crs_participant": True, "fatca_applicable": False, "currency": "USD",
|
||
"forex_control": False, "max_daily_transfer_usd": None,
|
||
"restricted_asset_classes": [], "banned_asset_classes": [],
|
||
"special_rules": {"base_kyc_required": True, "aml_screening_required": True}},
|
||
]
|
||
|
||
for j in jurisdictions:
|
||
j["created_at"] = datetime.utcnow()
|
||
j["updated_at"] = datetime.utcnow()
|
||
j["status"] = "active"
|
||
|
||
result = db.jurisdictions.insert_many(jurisdictions)
|
||
db.jurisdictions.create_index([("code", ASCENDING)], unique=True)
|
||
db.jurisdictions.create_index([("tier", ASCENDING)])
|
||
db.jurisdictions.create_index([("region", ASCENDING)])
|
||
print(f" ✅ 插入 {len(result.inserted_ids)} 个司法辖区")
|
||
|
||
# ============================================================
|
||
# 3. 合规规则矩阵(关键辖区×资产类别)
|
||
# ============================================================
|
||
print("\n[3/4] 初始化合规规则矩阵...")
|
||
db.compliance_rules.drop()
|
||
|
||
# 关键规则:主要辖区 × 主要资产类别
|
||
key_rules = [
|
||
# 中国 × 不动产
|
||
{"jurisdiction": "CN", "asset_class": "RE", "transaction_type": "domestic",
|
||
"min_kyc_level": 2, "max_single_amount_usd": 10000000,
|
||
"required_docs": ["title_deed", "property_survey", "valuation_report", "tax_clearance"],
|
||
"tax_rate": 0.03, "withholding_tax": 0.0, "capital_gains_tax": 0.20,
|
||
"regulatory_approval_required": False, "notes": "国内不动产交易,需缴纳契税"},
|
||
{"jurisdiction": "CN", "asset_class": "RE", "transaction_type": "cross_border_export",
|
||
"min_kyc_level": 3, "max_single_amount_usd": 50000,
|
||
"required_docs": ["title_deed", "safe_approval", "tax_clearance", "forex_registration"],
|
||
"tax_rate": 0.20, "withholding_tax": 0.10, "capital_gains_tax": 0.20,
|
||
"regulatory_approval_required": True,
|
||
"notes": "境外投资者购买中国不动产,需SAFE外汇局审批,年度限额5万美元"},
|
||
# 美国 × 不动产
|
||
{"jurisdiction": "US", "asset_class": "RE", "transaction_type": "domestic",
|
||
"min_kyc_level": 2, "max_single_amount_usd": None,
|
||
"required_docs": ["title_insurance", "property_appraisal", "environmental_report"],
|
||
"tax_rate": 0.0, "withholding_tax": 0.0, "capital_gains_tax": 0.20,
|
||
"regulatory_approval_required": False, "notes": "美国国内不动产交易"},
|
||
{"jurisdiction": "US", "asset_class": "RE", "transaction_type": "cross_border_import",
|
||
"min_kyc_level": 3, "max_single_amount_usd": None,
|
||
"required_docs": ["title_insurance", "firpta_certificate", "aml_check", "fatca_form"],
|
||
"tax_rate": 0.0, "withholding_tax": 0.15, "capital_gains_tax": 0.20,
|
||
"regulatory_approval_required": False,
|
||
"notes": "外国人购买美国不动产,FIRPTA预提税15%"},
|
||
# 新加坡 × 金融资产
|
||
{"jurisdiction": "SG", "asset_class": "FA", "transaction_type": "domestic",
|
||
"min_kyc_level": 3, "max_single_amount_usd": None,
|
||
"required_docs": ["mas_license", "prospectus", "cdd_report"],
|
||
"tax_rate": 0.0, "withholding_tax": 0.0, "capital_gains_tax": 0.0,
|
||
"regulatory_approval_required": True,
|
||
"notes": "新加坡无资本利得税,需MAS牌照"},
|
||
# 香港 × 艺术品
|
||
{"jurisdiction": "HK", "asset_class": "AT", "transaction_type": "domestic",
|
||
"min_kyc_level": 2, "max_single_amount_usd": None,
|
||
"required_docs": ["provenance_certificate", "expert_appraisal"],
|
||
"tax_rate": 0.0, "withholding_tax": 0.0, "capital_gains_tax": 0.0,
|
||
"regulatory_approval_required": False,
|
||
"notes": "香港无资本利得税,艺术品交易自由"},
|
||
# 全球通用 × 碳信用
|
||
{"jurisdiction": "GLOBAL", "asset_class": "CC", "transaction_type": "domestic",
|
||
"min_kyc_level": 2, "max_single_amount_usd": None,
|
||
"required_docs": ["verification_report", "registry_certificate"],
|
||
"tax_rate": 0.0, "withholding_tax": 0.0, "capital_gains_tax": 0.0,
|
||
"regulatory_approval_required": False,
|
||
"notes": "碳信用全球通用基础规则"},
|
||
# 阿联酋 × 所有资产(RWA友好)
|
||
{"jurisdiction": "AE", "asset_class": "ALL", "transaction_type": "domestic",
|
||
"min_kyc_level": 2, "max_single_amount_usd": None,
|
||
"required_docs": ["uae_id", "source_of_funds"],
|
||
"tax_rate": 0.0, "withholding_tax": 0.0, "capital_gains_tax": 0.0,
|
||
"regulatory_approval_required": False,
|
||
"notes": "阿联酋无个人所得税和资本利得税,RWA友好辖区"},
|
||
# 欧盟 × 金融资产
|
||
{"jurisdiction": "EU", "asset_class": "FA", "transaction_type": "domestic",
|
||
"min_kyc_level": 3, "max_single_amount_usd": None,
|
||
"required_docs": ["mifid2_kyc", "prospectus", "mica_compliance"],
|
||
"tax_rate": 0.0, "withholding_tax": 0.0, "capital_gains_tax": 0.25,
|
||
"regulatory_approval_required": True,
|
||
"notes": "欧盟MiFID2和MiCA监管框架"},
|
||
# 中国 × 数字资产(限制)
|
||
{"jurisdiction": "CN", "asset_class": "DA", "transaction_type": "domestic",
|
||
"min_kyc_level": 4, "max_single_amount_usd": 0,
|
||
"required_docs": [],
|
||
"tax_rate": 0.0, "withholding_tax": 0.0, "capital_gains_tax": 0.0,
|
||
"regulatory_approval_required": True,
|
||
"notes": "中国大陆禁止加密货币交易,仅限持牌机构特殊用途"},
|
||
]
|
||
|
||
for rule in key_rules:
|
||
rule["created_at"] = datetime.utcnow()
|
||
rule["updated_at"] = datetime.utcnow()
|
||
rule["status"] = "active"
|
||
rule["version"] = "1.0"
|
||
|
||
result = db.compliance_rules.insert_many(key_rules)
|
||
db.compliance_rules.create_index([("jurisdiction", ASCENDING), ("asset_class", ASCENDING), ("transaction_type", ASCENDING)])
|
||
print(f" ✅ 插入 {len(result.inserted_ids)} 条合规规则")
|
||
|
||
# ============================================================
|
||
# 4. 双边税收协定(关键协定)
|
||
# ============================================================
|
||
print("\n[4/4] 初始化双边税收协定...")
|
||
db.tax_treaties.drop()
|
||
|
||
tax_treaties = [
|
||
{"source": "CN", "target": "HK", "treaty_code": "CN-HK-2006",
|
||
"reduced_withholding_dividends": 0.05, "reduced_withholding_interest": 0.07,
|
||
"reduced_withholding_royalties": 0.07, "capital_gains_exempt": False,
|
||
"effective_date": "2006-12-08", "notes": "中国大陆-香港税收安排"},
|
||
{"source": "CN", "target": "SG", "treaty_code": "CN-SG-2007",
|
||
"reduced_withholding_dividends": 0.05, "reduced_withholding_interest": 0.07,
|
||
"reduced_withholding_royalties": 0.06, "capital_gains_exempt": False,
|
||
"effective_date": "2007-01-01", "notes": "中新税收协定"},
|
||
{"source": "CN", "target": "AE", "treaty_code": "CN-AE-1993",
|
||
"reduced_withholding_dividends": 0.0, "reduced_withholding_interest": 0.07,
|
||
"reduced_withholding_royalties": 0.10, "capital_gains_exempt": True,
|
||
"effective_date": "1993-01-01", "notes": "中阿税收协定"},
|
||
{"source": "US", "target": "GB", "treaty_code": "US-GB-2001",
|
||
"reduced_withholding_dividends": 0.05, "reduced_withholding_interest": 0.0,
|
||
"reduced_withholding_royalties": 0.0, "capital_gains_exempt": False,
|
||
"effective_date": "2003-03-31", "notes": "美英税收协定"},
|
||
{"source": "SG", "target": "HK", "treaty_code": "SG-HK-2009",
|
||
"reduced_withholding_dividends": 0.0, "reduced_withholding_interest": 0.0,
|
||
"reduced_withholding_royalties": 0.05, "capital_gains_exempt": True,
|
||
"effective_date": "2010-01-01", "notes": "新港税收协定"},
|
||
{"source": "CN", "target": "US", "treaty_code": "NONE",
|
||
"reduced_withholding_dividends": 0.10, "reduced_withholding_interest": 0.10,
|
||
"reduced_withholding_royalties": 0.10, "capital_gains_exempt": False,
|
||
"effective_date": None, "notes": "中美无全面税收协定,适用各自国内税率"},
|
||
]
|
||
|
||
for treaty in tax_treaties:
|
||
treaty["created_at"] = datetime.utcnow()
|
||
treaty["updated_at"] = datetime.utcnow()
|
||
|
||
result = db.tax_treaties.insert_many(tax_treaties)
|
||
db.tax_treaties.create_index([("source", ASCENDING), ("target", ASCENDING)], unique=True)
|
||
print(f" ✅ 插入 {len(result.inserted_ids)} 条税收协定")
|
||
|
||
# 创建GNACS编码注册表索引
|
||
db.gnacs_codes.create_index([("gnacs_code", ASCENDING)], unique=True)
|
||
db.gnacs_codes.create_index([("asset_id", ASCENDING)])
|
||
|
||
print("\n" + "=" * 50)
|
||
print("✅ GNACS数据库初始化完成!")
|
||
print(f" - 资产大类: {db.asset_classes.count_documents({})} 条")
|
||
print(f" - 司法辖区: {db.jurisdictions.count_documents({})} 条")
|
||
print(f" - 合规规则: {db.compliance_rules.count_documents({})} 条")
|
||
print(f" - 税收协定: {db.tax_treaties.count_documents({})} 条")
|
||
|
||
client.close()
|
||
|