Skip to main content

ComplianceResource

Access via urblock.compliance.

Manage T-REX modular compliance: deploy modules, add rules, bind tokens, and check compliance.

Methods

createModule(params)

Deploy a new compliance module.

const module = await urblock.compliance.createModule({
name: "CountryRestrictions",
network: "polygon_amoy",
rules: [
{ type: "country_restrict", countries: [408], allowed: false },
],
idempotency_key: "compliance-001",
});

Returns: ComplianceModuleResponse


listModules(params?)

List compliance modules.

const modules = await urblock.compliance.listModules({ limit: 10 });

Returns: ListResponse<ComplianceModuleListItem>


retrieveModule(id)

Get a compliance module by ID.

const module = await urblock.compliance.retrieveModule("cmp_abc123");

Returns: ComplianceModuleResponse


addRule(id, params)

Add a rule to a compliance module.

const tx = await urblock.compliance.addRule("cmp_abc123", {
type: "country_restrict",
countries: [408],
allowed: false,
idempotency_key: "rule-001",
});

Returns: TransactionShortResponse


removeModule(id, params)

Remove a compliance module from a token.

const tx = await urblock.compliance.removeModule("cmp_abc123", {
module_address: "0x...",
idempotency_key: "remove-module-001",
});

Returns: TransactionShortResponse


bindToken(id, params)

Bind a compliance module to a token.

const tx = await urblock.compliance.bindToken("cmp_abc123", {
token_address: "0x...",
idempotency_key: "bind-001",
});

Returns: TransactionShortResponse


unbindToken(id, params)

Unbind a compliance module from a token.

const tx = await urblock.compliance.unbindToken("cmp_abc123", {
token_address: "0x...",
idempotency_key: "unbind-001",
});

Returns: TransactionShortResponse


checkCompliance(tokenId, params)

Check if a transfer is compliant.

const result = await urblock.compliance.checkCompliance("tok_abc123", {
from: "0x...",
to: "0x...",
amount: "1000000000000000000",
});

Returns: ComplianceCheckResponse


getModulesOnChain(params)

Get compliance modules bound on-chain.

const result = await urblock.compliance.getModulesOnChain({
contract_address: "0x...",
network: "polygon_amoy",
});

Returns: ComplianceModulesOnChainResponse


isModuleBound(params)

Check if a specific module is bound to a compliance contract.

const result = await urblock.compliance.isModuleBound({
contract_address: "0x...",
network: "polygon_amoy",
module_address: "0x...",
});

Returns: ComplianceModuleBoundResponse


isTokenBound(params)

Check if a token is bound to a compliance contract.

const result = await urblock.compliance.isTokenBound({
contract_address: "0x...",
network: "polygon_amoy",
token_address: "0x...",
});

Returns: ComplianceTokenBoundResponse