# 如何理解智能合约 **Published by:** [Chris Gao](https://paragraph.com/@sec-dao/) **Published on:** 2022-05-12 **URL:** https://paragraph.com/@sec-dao/6rutoA8q3FGctKEYty3D ## Content 智能合约是一种可以运行在区块链上的代码。 它是以太坊上一种特殊的账户,即智能合约账户;另外还有用户账户。 智能合约账户与用户账户的区别: 用户账户: 1、地址:即钱包地址 2、余额:金额,指以太币(针对以太坊) 智能合约账户: 1、地址:存放以太币余额,同时也是智能合约的唯一标识;创建后生成的。PS:智能合约创建,是以太坊交易的其中之一; 2、余额 3、状态:智能合约中变量的状态,这个可以更改(通过针对智能合约的函数调用) 4、代码:智能合约的字节码,这个在区块链中是不可改变的。 如何调用智能合约 1、转换要调用的函数为hex,一个hash地址,取前几位作为标识; 2、将这个hex作为data放入交易data中 3、交易的to设置为智能合约地址;from为当前调用者。 4、利用私钥将本次的交易数据进行签名; 5、将本笔交易transaction发送到以太坊网络等待记录。 { from: 调用者的地址 to: '0x1111....’, //合约地址 value: 0.0 data: ‘0x1111106……………000011111’ 函数标识和参数信息 } 智能合约账户的地址 1、针对NFT,如果mint,默认会将金额转到NFT所在的智能合约地址;? 2、针对代币,默认会将购买的以太币转入到代币所在的智能合约地址;? ## Publication Information - [Chris Gao](https://paragraph.com/@sec-dao/): Publication homepage - [All Posts](https://paragraph.com/@sec-dao/): More posts from this publication - [RSS Feed](https://api.paragraph.com/blogs/rss/@sec-dao): Subscribe to updates